mirror of
https://github.com/hcengineering/platform.git
synced 2024-12-30 15:07:50 +03:00
1b598b9ad8
Signed-off-by: Jasmin <jasmin@hardcoreeng.com>
1351 lines
59 KiB
TypeScript
1351 lines
59 KiB
TypeScript
import { expect, test } from '@playwright/test'
|
|
import {
|
|
attachScreenshot,
|
|
DocumentURI,
|
|
generateId,
|
|
getQaraManagerPage,
|
|
getSecondPage,
|
|
HomepageURI,
|
|
PlatformSetting,
|
|
PlatformURI
|
|
} from '../utils'
|
|
import { allure } from 'allure-playwright'
|
|
import { DocumentsPage } from '../model/documents/documents-page'
|
|
import { Content, DocumentDetails, DocumentRights, DocumentStatus, NewDocument } from '../model/types'
|
|
import { DocumentContentPage } from '../model/documents/document-content-page'
|
|
import { DocumentCommentsPage } from '../model/documents/document-comments-page'
|
|
import { prepareDocumentStep } from './common-documents-steps'
|
|
import { DocumentApprovalsPage } from '../model/documents/document-approvals-page'
|
|
import { DocumentReleasePage } from '../model/documents/document-release-page'
|
|
import { DocumentReasonAndImpactPage } from '../model/documents/document-reason-impact-page'
|
|
import { LeftSideMenuPage } from '../model/left-side-menu-page'
|
|
import { DocumentHistoryPage } from '../model/documents/document-history-page'
|
|
import { faker } from '@faker-js/faker'
|
|
|
|
test.use({
|
|
storageState: PlatformSetting
|
|
})
|
|
|
|
test.describe('QMS. Documents tests', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await (await page.goto(`${PlatformURI}/${HomepageURI}`))?.finished()
|
|
})
|
|
|
|
test.afterEach(async ({ browser }) => {
|
|
const contexts = browser.contexts()
|
|
for (const context of contexts) {
|
|
await context.close()
|
|
}
|
|
})
|
|
|
|
test('TESTS-123. Create a document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to create a new document')
|
|
await allure.tms('TESTS-123', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-123')
|
|
const newDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `New Document-${generateId()}`,
|
|
description: `New Document description-${generateId()}`
|
|
}
|
|
await prepareDocumentStep(page, newDocument)
|
|
|
|
await test.step('2. Check document information', async () => {
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await documentContentPage.checkDocumentTitle(newDocument.title)
|
|
})
|
|
|
|
await attachScreenshot('TESTS-123_create_document.png', page)
|
|
})
|
|
|
|
test('TESTS-124. Edit document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to edit the created document')
|
|
await allure.tms('TESTS-124', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-124')
|
|
const editDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Edit Document-${generateId()}`,
|
|
description: `Edit Document description-${generateId()}`
|
|
}
|
|
const newContent: Content = {
|
|
sectionTitle: `Overview-${generateId()}`,
|
|
content: `New content-${generateId()}!!!!`
|
|
}
|
|
await prepareDocumentStep(page, editDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Update the created document content', async () => {
|
|
await documentContentPage.checkDocumentTitle(editDocument.title)
|
|
await documentContentPage.updateSectionTitle('1', newContent.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContent)
|
|
})
|
|
|
|
await test.step('3. Check the updated document information', async () => {
|
|
await documentContentPage.checkContentForTheSection(newContent)
|
|
})
|
|
|
|
await attachScreenshot('TESTS-124_edit_document.png', page)
|
|
})
|
|
|
|
test('TESTS-127. Delete Document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to delete the document')
|
|
await allure.tms('TESTS-127', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-127')
|
|
const deleteDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Delete Document-${generateId()}`,
|
|
description: `Delete Document description-${generateId()}`
|
|
}
|
|
await prepareDocumentStep(page, deleteDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Delete the document', async () => {
|
|
await documentContentPage.checkDocumentTitle(deleteDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.executeMoreActions('Delete')
|
|
await documentContentPage.pressYesForPopup(page)
|
|
})
|
|
|
|
await test.step('3. Check that the document status is equal to deleted status', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DELETED)
|
|
})
|
|
|
|
await attachScreenshot('TESTS-127_delete_document.png', page)
|
|
})
|
|
|
|
test('TESTS-125. Create child document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to create a new child document')
|
|
await allure.tms('TESTS-125', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-125')
|
|
const parentDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Parent Document-${generateId()}`,
|
|
description: `Parent Document description-${generateId()}`
|
|
}
|
|
const childDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Child Document-${generateId()}`,
|
|
description: `Child Document description-${generateId()}`
|
|
}
|
|
await prepareDocumentStep(page, parentDocument)
|
|
|
|
await test.step('2. Create a new child document for the document from the previous step', async () => {
|
|
const documentsPage = new DocumentsPage(page)
|
|
await documentsPage.executeMoreActionsOnDocument(parentDocument.title, 'Create child document')
|
|
await documentsPage.createDocument(childDocument, true)
|
|
})
|
|
|
|
await test.step('3. Check the child document information', async () => {
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await documentContentPage.checkDocumentTitle(childDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
})
|
|
|
|
await attachScreenshot('TESTS-125_create_child_document.png', page)
|
|
})
|
|
|
|
test('TESTS-126. Change document owner', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to change document owner')
|
|
await allure.tms('TESTS-126', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-126')
|
|
const changeDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Change document owner Document-${generateId()}`,
|
|
description: `Change document owner Document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
await prepareDocumentStep(page, changeDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Change document owner', async () => {
|
|
await documentContentPage.checkDocumentTitle(changeDocument.title)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.executeMoreActions('Change document owner')
|
|
await documentContentPage.fillChangeDocumentOwnerPopup('Dirak Kainin')
|
|
})
|
|
|
|
await test.step('3. Check the updated document information', async () => {
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
owner: 'Dirak Kainin'
|
|
})
|
|
})
|
|
await attachScreenshot('TESTS-126_change_document_owner.png', page)
|
|
})
|
|
|
|
test('TESTS-134. Send for review document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to send the document for review')
|
|
await allure.tms('TESTS-134', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-134')
|
|
const sendForReviewDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Send for review document-${generateId()}`,
|
|
description: `Send for review document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
await prepareDocumentStep(page, sendForReviewDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Send the document for review', async () => {
|
|
await documentContentPage.checkDocumentTitle(sendForReviewDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
await documentContentPage.buttonSendForReview.click()
|
|
await documentContentPage.fillSelectReviewersForm(['Dirak Kainin'])
|
|
})
|
|
|
|
await test.step('3. Check the document status', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_REVIEW)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_REVIEW
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
await attachScreenshot('TESTS-134_send_for_review_document.png', page)
|
|
})
|
|
|
|
test('TESTS-135. Send for approval document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to send the document for approval')
|
|
await allure.tms('TESTS-135', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-135')
|
|
const changeDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Send for approval document-${generateId()}`,
|
|
description: `Send for approval document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
await prepareDocumentStep(page, changeDocument)
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Send the document for approval', async () => {
|
|
await documentContentPage.checkDocumentTitle(changeDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm(['Dirak Kainin'])
|
|
})
|
|
|
|
await test.step('3. Check the document status', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_APPROVAL)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_APPROVAL
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
await attachScreenshot('TESTS-135_send_for_approval_document.png', page)
|
|
})
|
|
|
|
test('TESTS-136. Add and resolve Comments', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to create new comments and resolve them')
|
|
await allure.tms('TESTS-136', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-136')
|
|
const commentsDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Add and Done Comments document-${generateId()}`,
|
|
description: `Add and Done Comments document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
const newContentFirst: Content = {
|
|
sectionTitle: `Overview-${generateId()}`,
|
|
content: `New content-${generateId()}!!!!`
|
|
}
|
|
const messageToTitle: string = `Message to the title-${generateId()}`
|
|
const messageToContent: string = `Message to the content-${generateId()}`
|
|
|
|
await prepareDocumentStep(page, commentsDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Add comments', async () => {
|
|
await documentContentPage.checkDocumentTitle(commentsDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
|
|
await documentContentPage.updateSectionTitle('1', newContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentFirst)
|
|
})
|
|
|
|
await test.step('3. Send to Review', async () => {
|
|
await documentContentPage.buttonSendForReview.click()
|
|
await documentContentPage.fillSelectReviewersForm([documentDetails.owner])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_REVIEW)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_REVIEW
|
|
})
|
|
})
|
|
|
|
await test.step('4. Add comments and Complete Review', async () => {
|
|
await documentContentPage.addMessageToTheSectionTitle(newContentFirst.sectionTitle, messageToTitle)
|
|
await documentContentPage.addMessageToTheText(newContentFirst.content, messageToContent)
|
|
|
|
await documentContentPage.buttonComments.click()
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentExist(newContentFirst.sectionTitle, 2)
|
|
|
|
await attachScreenshot('TESTS-136_add_comments.png', page)
|
|
|
|
await documentContentPage.completeReview()
|
|
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.REVIEWED)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
|
|
await test.step('5. Resolve the first comment', async () => {
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.resolveComments(newContentFirst.sectionTitle, '1')
|
|
|
|
await documentCommentsPage.checkCommentExist(newContentFirst.sectionTitle, 1)
|
|
|
|
await attachScreenshot('TESTS-136_add_and_done_comments.png', page)
|
|
})
|
|
|
|
await test.step('6. Check Edit document flow', async () => {
|
|
await documentContentPage.buttonEditDocument.click()
|
|
await documentContentPage.buttonDocumentInformation.click()
|
|
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.DRAFT,
|
|
version: 'v0.1'
|
|
})
|
|
await attachScreenshot('TESTS-136_check_edit_document_flow.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-137. Approve document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to approve the document')
|
|
await allure.tms('TESTS-137', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-137')
|
|
const approveDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Approve document-${generateId()}`,
|
|
description: `Approve document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
|
|
await prepareDocumentStep(page, approveDocument)
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Send for Approval', async () => {
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm([documentDetails.owner])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_APPROVAL)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_APPROVAL
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
|
|
await test.step('3. Approve document', async () => {
|
|
await documentContentPage.confirmApproval()
|
|
})
|
|
|
|
await test.step('4. Check the document and status', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.EFFECTIVE)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.EFFECTIVE,
|
|
version: 'v0.1'
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
|
|
await documentContentPage.openApprovals()
|
|
const documentApprovalsPage = new DocumentApprovalsPage(page)
|
|
await documentApprovalsPage.checkSuccessApproval(documentDetails.owner)
|
|
await attachScreenshot('TESTS-137_approve_document.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-138. Reject document', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to reject the document')
|
|
await allure.tms('TESTS-138', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-138')
|
|
const rejectionReason = `Test rejection-${generateId()}`
|
|
const rejectDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Reject document-${generateId()}`,
|
|
description: `Reject document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
|
|
await prepareDocumentStep(page, rejectDocument)
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Send for Approval', async () => {
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm([documentDetails.owner])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_APPROVAL)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_APPROVAL
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
|
|
await test.step('3. Reject document', async () => {
|
|
await documentContentPage.confirmRejection(rejectionReason)
|
|
})
|
|
|
|
await test.step('4. Check the document and status', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.REJECTED)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.REJECTED
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
await documentContentPage.openApprovals()
|
|
const documentApprovalsPage = new DocumentApprovalsPage(page)
|
|
await documentApprovalsPage.checkRejectApproval(documentDetails.owner, rejectionReason)
|
|
await attachScreenshot('TESTS-138_reject_document.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-139. Make Review', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to make a review for the document')
|
|
await allure.tms('TESTS-139', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-139')
|
|
const makeReviewDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Make Review document-${generateId()}`,
|
|
description: `Make Review document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
const newContentFirst: Content = {
|
|
sectionTitle: `Make Review. Overview-${generateId()}`,
|
|
content: `Make Review. New content-${generateId()}!!!!`
|
|
}
|
|
const updateContentFirst: Content = {
|
|
sectionTitle: `Make Review Updated. Updated Overview-${generateId()}`,
|
|
content: `Make Review Updated. Updated content-${generateId()}!!!!`
|
|
}
|
|
const newContentSecond: Content = {
|
|
sectionTitle: `Make Review. Description-${generateId()}`,
|
|
content: `Make Review. New content Description-${generateId()}!!!!`
|
|
}
|
|
const messageToTitle: string = `Make Review. Message to the first title-${generateId()}`
|
|
const messageToSecondTitle: string = `Make Review. Message to the second title-${generateId()}`
|
|
const messageToContent: string = `Make Review. Message to the content-${generateId()}`
|
|
|
|
await prepareDocumentStep(page, makeReviewDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Add section and content', async () => {
|
|
await documentContentPage.checkDocumentTitle(makeReviewDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
|
|
await documentContentPage.updateSectionTitle('1', newContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentFirst)
|
|
|
|
await documentContentPage.addNewSection('1', 'below')
|
|
await documentContentPage.updateSectionTitle('2', newContentSecond.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentSecond)
|
|
await documentContentPage.checkContentForTheSection(newContentSecond)
|
|
await attachScreenshot('TESTS-139_add_section_and_content.png', page)
|
|
})
|
|
|
|
await test.step('3. Send for Review', async () => {
|
|
await documentContentPage.buttonSendForReview.click()
|
|
await documentContentPage.fillSelectReviewersForm([documentDetails.owner])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_REVIEW)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_REVIEW
|
|
})
|
|
await attachScreenshot('TESTS-139_send_for_review.png', page)
|
|
})
|
|
|
|
await test.step('4. Add comments and Complete Review', async () => {
|
|
await documentContentPage.addMessageToTheSectionTitle(newContentFirst.sectionTitle, messageToTitle)
|
|
await documentContentPage.addMessageToTheText(newContentFirst.content, messageToContent)
|
|
await documentContentPage.addMessageToTheSectionTitle(newContentSecond.sectionTitle, messageToSecondTitle)
|
|
|
|
await documentContentPage.buttonComments.click()
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentExist(newContentFirst.sectionTitle, 2)
|
|
await documentCommentsPage.checkCommentExist(newContentSecond.sectionTitle, 1)
|
|
|
|
await documentContentPage.completeReview()
|
|
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.REVIEWED)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
await attachScreenshot('TESTS-139_add_comments.png', page)
|
|
})
|
|
|
|
await test.step('5. Update Document and fix reviews', async () => {
|
|
await documentContentPage.buttonEditDocument.click()
|
|
|
|
await documentContentPage.updateSectionTitle('1', updateContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(updateContentFirst)
|
|
await documentContentPage.checkContentForTheSection(updateContentFirst)
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentExist(updateContentFirst.sectionTitle, 2)
|
|
await documentCommentsPage.checkCommentExist(newContentSecond.sectionTitle, 1)
|
|
await documentCommentsPage.resolveAllComments()
|
|
|
|
await documentCommentsPage.checkCommentNotExist(updateContentFirst.sectionTitle)
|
|
await documentCommentsPage.checkCommentNotExist(newContentSecond.sectionTitle)
|
|
await attachScreenshot('TESTS-136_fix_reviews.png', page)
|
|
})
|
|
|
|
await test.step('6. Check document status and details', async () => {
|
|
await documentContentPage.buttonDocumentInformation.click()
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.DRAFT,
|
|
version: 'v0.1'
|
|
})
|
|
await attachScreenshot('TESTS-139_check_document.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-140. Comparing several document versions', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to compare several document versions')
|
|
await allure.tms('TESTS-140', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-140')
|
|
const makeReviewDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Comparing document versions-${generateId()}`,
|
|
description: `Comparing document versions description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
const newContentFirst: Content = {
|
|
sectionTitle: `Comparing versions. Overview-${generateId()}`,
|
|
content: `Comparing versions. New content-${generateId()}!!!!`
|
|
}
|
|
const updateContentFirst: Content = {
|
|
sectionTitle: '',
|
|
content: `Comparing versions Updated. Updated content-${generateId()}!!!!`
|
|
}
|
|
const newContentSecond: Content = {
|
|
sectionTitle: `Comparing versions. Description-${generateId()}`,
|
|
content: `Comparing versions. New content Description-${generateId()}!!!!`
|
|
}
|
|
|
|
await prepareDocumentStep(page, makeReviewDocument)
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Add section and content', async () => {
|
|
await documentContentPage.checkDocumentTitle(makeReviewDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
|
|
await documentContentPage.updateSectionTitle('1', newContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentFirst)
|
|
await attachScreenshot('TESTS-140_add_section_and_content.png', page)
|
|
})
|
|
|
|
await test.step('3. Send for Review', async () => {
|
|
await documentContentPage.buttonSendForReview.click()
|
|
await documentContentPage.fillSelectReviewersForm([documentDetails.owner])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_REVIEW)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_REVIEW
|
|
})
|
|
await attachScreenshot('TESTS-140_send_for_review.png', page)
|
|
})
|
|
|
|
await test.step('4. Add comments and Complete Review', async () => {
|
|
await documentContentPage.completeReview()
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.REVIEWED)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
await attachScreenshot('TESTS-140_add_comments.png', page)
|
|
})
|
|
|
|
await test.step('5. Compare the versions with several documents', async () => {
|
|
await documentContentPage.buttonEditDocument.click()
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.DRAFT,
|
|
version: 'v0.1'
|
|
})
|
|
|
|
await documentContentPage.addContentToTheSection({
|
|
sectionTitle: newContentFirst.sectionTitle,
|
|
content: updateContentFirst.content
|
|
})
|
|
await documentContentPage.checkContentForTheSection({
|
|
sectionTitle: newContentFirst.sectionTitle,
|
|
content: updateContentFirst.content
|
|
})
|
|
|
|
await documentContentPage.addNewSection('1', 'below')
|
|
await documentContentPage.updateSectionTitle('2', newContentSecond.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentSecond)
|
|
|
|
await documentContentPage.changeCurrentRight(DocumentRights.COMPARING)
|
|
await documentContentPage.checkComparingTextAdded('Updated')
|
|
await documentContentPage.checkComparingTextDeleted('New')
|
|
await documentContentPage.checkComparingTextAdded(newContentSecond.sectionTitle)
|
|
await documentContentPage.checkComparingTextAdded(newContentSecond.content)
|
|
|
|
await attachScreenshot('TESTS-140_fix_reviews.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-141. Send for approval document after resolve comments', async ({ page, browser }) => {
|
|
await allure.description(
|
|
'Requirement\nUsers need to make a resolve all comments and done documents for the Effective status'
|
|
)
|
|
await allure.tms('TESTS-141', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-141')
|
|
const userSecondPage = await getSecondPage(browser)
|
|
const completeDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Complete document-${generateId()}`,
|
|
description: `Complete document description-${generateId()}`
|
|
}
|
|
const reviewer = 'Dirak Kainin'
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
const newContentFirst: Content = {
|
|
sectionTitle: `Complete document. Overview-${generateId()}`,
|
|
content: `Complete document. New content-${generateId()}!!!!`
|
|
}
|
|
const updateContentFirst: Content = {
|
|
sectionTitle: `Complete document Updated. Updated Overview-${generateId()}`,
|
|
content: `Complete document Updated. Updated content-${generateId()}!!!!`
|
|
}
|
|
const newContentSecond: Content = {
|
|
sectionTitle: `Complete document. Description-${generateId()}`,
|
|
content: `Complete document. New content Description-${generateId()}!!!!`
|
|
}
|
|
const messageToTitle: string = `Complete document. Message to the first title-${generateId()}`
|
|
const messageToContent: string = `Complete document. Message to the content-${generateId()}`
|
|
|
|
await prepareDocumentStep(page, completeDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Add section and content', async () => {
|
|
await documentContentPage.checkDocumentTitle(completeDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
|
|
await documentContentPage.updateSectionTitle('1', newContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentFirst)
|
|
|
|
await documentContentPage.addNewSection('1', 'below')
|
|
await documentContentPage.updateSectionTitle('2', newContentSecond.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentSecond)
|
|
await attachScreenshot('TESTS-141_add_section_and_content.png', page)
|
|
})
|
|
|
|
await test.step('3. Send for Review', async () => {
|
|
await documentContentPage.buttonSendForReview.click()
|
|
await documentContentPage.fillSelectReviewersForm([reviewer])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_REVIEW)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_REVIEW
|
|
})
|
|
await attachScreenshot('TESTS-141_send_for_review.png', page)
|
|
})
|
|
|
|
await test.step('4. As author add comments to the first section', async () => {
|
|
await documentContentPage.addMessageToTheSectionTitle(newContentFirst.sectionTitle, messageToTitle)
|
|
await documentContentPage.addMessageToTheText(newContentFirst.content, messageToContent)
|
|
|
|
await documentContentPage.buttonComments.click()
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentExist(newContentFirst.sectionTitle, 2)
|
|
await documentCommentsPage.checkCommentCanBeResolved(newContentFirst.sectionTitle, 1)
|
|
await documentCommentsPage.checkCommentCanBeResolved(newContentFirst.sectionTitle, 2)
|
|
await attachScreenshot('TESTS-141_author_add_comments.png', page)
|
|
})
|
|
|
|
await test.step('5. As reviewer add comments to the second section and Complete Review', async () => {
|
|
await (await userSecondPage.goto(`${PlatformURI}/${DocumentURI}`))?.finished()
|
|
|
|
const documentsPageSecond = new DocumentsPage(userSecondPage)
|
|
await documentsPageSecond.openDocument(completeDocument.title)
|
|
|
|
const documentContentPageSecond = new DocumentContentPage(userSecondPage)
|
|
await documentContentPageSecond.addMessageToTheSectionTitle(newContentSecond.sectionTitle, messageToTitle)
|
|
await documentContentPageSecond.addMessageToTheText(newContentSecond.content, messageToContent)
|
|
|
|
await documentContentPageSecond.buttonComments.click()
|
|
|
|
const documentCommentsPageSecond = new DocumentCommentsPage(userSecondPage)
|
|
await documentCommentsPageSecond.checkCommentExist(newContentSecond.sectionTitle, 2)
|
|
await documentCommentsPageSecond.checkCommentCanBeResolved(newContentSecond.sectionTitle, 3)
|
|
await documentCommentsPageSecond.checkCommentCanBeResolved(newContentSecond.sectionTitle, 4)
|
|
|
|
// // TODO uncomment after fix https://front.hc.engineering/workbench/platform/tracker/EZQMS-552
|
|
// await documentCommentsPageSecond.checkCommentCanNotBeResolved(newContentFirst.sectionTitle, 1)
|
|
// await documentCommentsPageSecond.checkCommentCanNotBeResolved(newContentFirst.sectionTitle, 2)
|
|
|
|
await documentContentPageSecond.completeReview()
|
|
|
|
await documentContentPageSecond.checkDocumentStatus(DocumentStatus.REVIEWED)
|
|
await documentContentPageSecond.checkCurrentRights(DocumentRights.VIEWING)
|
|
await attachScreenshot('TESTS-141_reviewer_add_comments.png', page)
|
|
})
|
|
|
|
await test.step('6. Update Document and fix reviews', async () => {
|
|
await documentContentPage.buttonEditDocument.click()
|
|
|
|
await documentContentPage.updateSectionTitle('1', updateContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(updateContentFirst)
|
|
await documentContentPage.checkContentForTheSection(updateContentFirst)
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentExist(updateContentFirst.sectionTitle, 2)
|
|
await documentCommentsPage.resolveAllComments()
|
|
|
|
await documentCommentsPage.checkCommentNotExist(updateContentFirst.sectionTitle)
|
|
await attachScreenshot('TESTS-141_fix_reviews.png', page)
|
|
|
|
await documentContentPage.buttonDocumentInformation.click()
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.DRAFT,
|
|
version: 'v0.1'
|
|
})
|
|
await attachScreenshot('TESTS-141_check_document.png', page)
|
|
})
|
|
|
|
await test.step('7. Send for Approval', async () => {
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm([reviewer])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_APPROVAL)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_APPROVAL,
|
|
version: 'v0.1'
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
|
|
await test.step('8. Approve document', async () => {
|
|
const documentsPageSecond = new DocumentsPage(userSecondPage)
|
|
await documentsPageSecond.openDocument(completeDocument.title)
|
|
|
|
const documentContentPageSecond = new DocumentContentPage(userSecondPage)
|
|
await documentContentPageSecond.confirmApproval()
|
|
|
|
await documentContentPageSecond.buttonDocumentInformation.click()
|
|
await documentContentPageSecond.checkDocumentStatus(DocumentStatus.EFFECTIVE)
|
|
await documentContentPageSecond.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.EFFECTIVE,
|
|
version: 'v0.1'
|
|
})
|
|
await documentContentPageSecond.checkCurrentRights(DocumentRights.VIEWING)
|
|
|
|
await attachScreenshot('TESTS-141_approve_document.png', page)
|
|
})
|
|
|
|
await test.step('9. Check document', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.EFFECTIVE)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.EFFECTIVE,
|
|
version: 'v0.1'
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
|
|
await attachScreenshot('TESTS-141_check_document.png', page)
|
|
})
|
|
|
|
await test.step('10. Check History tab', async () => {
|
|
await documentContentPage.buttonHistoryTab.first().click()
|
|
|
|
const documentHistoryPage = new DocumentHistoryPage(page)
|
|
await documentHistoryPage.checkHistoryEventExist('New document creation')
|
|
await attachScreenshot('TESTS-141_check_history_tab.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-162. Approve document with delayed release', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need to create document with delayed release')
|
|
await allure.tms('TESTS-162', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-162')
|
|
const approveDelayedDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Approve document with delayed release-${generateId()}`,
|
|
description: `Approve document with delayed release description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
|
|
await prepareDocumentStep(page, approveDelayedDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Set delayed Release', async () => {
|
|
await documentContentPage.buttonReleaseTab.click()
|
|
|
|
const documentReleasePage = new DocumentReleasePage(page)
|
|
await documentReleasePage.setEffectiveDate('in 15 minutes')
|
|
})
|
|
|
|
await test.step('3. Send for Approval', async () => {
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm([documentDetails.owner])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_APPROVAL)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_APPROVAL
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
|
|
await test.step('4. Approve document', async () => {
|
|
await documentContentPage.confirmApproval()
|
|
})
|
|
|
|
await test.step('5. Check the updated document information', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.APPROVED)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.APPROVED
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
|
|
await documentContentPage.openApprovals()
|
|
const documentApprovalsPage = new DocumentApprovalsPage(page)
|
|
await documentApprovalsPage.checkSuccessApproval(documentDetails.owner)
|
|
|
|
await attachScreenshot('TESTS-162_approve_document_delayed_release.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-161. Check elements in the popup with the new Comment', async ({ page }) => {
|
|
await allure.description('Requirement\nUsers need the popup with the new Comment to work correctly')
|
|
await allure.tms('TESTS-161', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-161')
|
|
const checkPopupDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Check comment popup elements document-${generateId()}`,
|
|
description: `Check comment popup elements document description-${generateId()}`
|
|
}
|
|
const author = 'Appleseed John'
|
|
const newContentFirst: Content = {
|
|
sectionTitle: `Overview-${generateId()}`,
|
|
content: `New content-${generateId()}!!!!`
|
|
}
|
|
const messageToTitle: string = `Make Review. Message to the first title-${generateId()}`
|
|
const replyCommentFirst = `Reply to first comment-${generateId(4)}`
|
|
|
|
await prepareDocumentStep(page, checkPopupDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Add section and content', async () => {
|
|
await documentContentPage.checkDocumentTitle(checkPopupDocument.title)
|
|
await documentContentPage.updateSectionTitle('1', newContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentFirst)
|
|
})
|
|
|
|
await test.step('3. Add comment and check popup', async () => {
|
|
await documentContentPage.addMessageToTheSectionTitle(newContentFirst.sectionTitle, messageToTitle, false)
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.addReplyInPopupByCommentId(1, replyCommentFirst)
|
|
await documentCommentsPage.checkCommentInPopupById(
|
|
1,
|
|
newContentFirst.sectionTitle,
|
|
author,
|
|
messageToTitle,
|
|
replyCommentFirst
|
|
)
|
|
|
|
await attachScreenshot('TESTS-161_add_comment_and_check_popup.png', page)
|
|
await documentContentPage.closeNewMessagePopup()
|
|
})
|
|
|
|
await test.step('4. Add comment and check comment in the right panel', async () => {
|
|
await documentContentPage.buttonComments.click()
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentInPanelById(
|
|
1,
|
|
newContentFirst.sectionTitle,
|
|
author,
|
|
messageToTitle,
|
|
replyCommentFirst
|
|
)
|
|
await attachScreenshot('TESTS-161_add_comment_and_check_comment_in_the_right_panel.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-155. Change document owner. QARA user changes owner from one user to another', async ({
|
|
page,
|
|
browser
|
|
}) => {
|
|
await allure.description('Requirement\nQARA manager needs to change the document owner')
|
|
await allure.tms('TESTS-155', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-155')
|
|
const qaraManagerPage = await getQaraManagerPage(browser)
|
|
const newDocumentOwner = 'Dirak Kainin'
|
|
const changeQaraDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Change document owner by QARA user Document-${generateId()}`,
|
|
description: `Change document owner by QARA user Document description-${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
await prepareDocumentStep(page, changeQaraDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Move to effective status', async () => {
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm([documentDetails.owner])
|
|
|
|
await documentContentPage.confirmApproval()
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.EFFECTIVE)
|
|
})
|
|
|
|
const documentContentPageQara = new DocumentContentPage(qaraManagerPage)
|
|
await test.step('3. As QARA manager change the document owner', async () => {
|
|
await (await qaraManagerPage.goto(`${PlatformURI}/${DocumentURI}`))?.finished()
|
|
|
|
const documentsPageQara = new DocumentsPage(qaraManagerPage)
|
|
await documentsPageQara.openDocument(changeQaraDocument.title)
|
|
|
|
await documentContentPageQara.executeMoreActions('Change document owner')
|
|
await documentContentPageQara.fillChangeDocumentOwnerPopupByQaraManager(newDocumentOwner)
|
|
})
|
|
|
|
await test.step('4. As QARA manager Check the updated document information', async () => {
|
|
await documentContentPageQara.checkDocument({
|
|
...documentDetails,
|
|
owner: newDocumentOwner,
|
|
version: 'v0.1',
|
|
status: DocumentStatus.EFFECTIVE
|
|
})
|
|
await attachScreenshot('TESTS-155_change_document_owner.png', page)
|
|
})
|
|
|
|
await test.step('5. As previous document owner check the document', async () => {
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
owner: newDocumentOwner,
|
|
version: 'v0.1',
|
|
status: DocumentStatus.EFFECTIVE
|
|
})
|
|
await expect(documentContentPage.buttonDraftNewVersion).toBeVisible({ visible: false })
|
|
await attachScreenshot('TESTS-155_previous_owner.png', page)
|
|
})
|
|
|
|
await test.step('6. As new document owner check the document', async () => {
|
|
const secondPage = await getSecondPage(browser)
|
|
await (await secondPage.goto(`${PlatformURI}/${DocumentURI}`))?.finished()
|
|
|
|
const documentsPageSecond = new DocumentsPage(secondPage)
|
|
await documentsPageSecond.openDocument(changeQaraDocument.title)
|
|
|
|
const documentContentPageSecond = new DocumentContentPage(secondPage)
|
|
await expect(documentContentPageSecond.buttonDraftNewVersion).toBeVisible()
|
|
await documentContentPageSecond.checkDocument({
|
|
...documentDetails,
|
|
owner: newDocumentOwner,
|
|
version: 'v0.1',
|
|
status: DocumentStatus.EFFECTIVE
|
|
})
|
|
await attachScreenshot('TESTS-155_new_owner.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-205. Test Reason & Impact sections', async ({ page, browser }) => {
|
|
await allure.description('Requirement\nUsers need to add the Reason and Impact information')
|
|
await allure.tms('TESTS-205', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-205')
|
|
const reasonAndImpactDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Test Reason and Impact section-${generateId()}`,
|
|
description: `Test Reason and Impact section--${generateId()}`
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
await prepareDocumentStep(page, reasonAndImpactDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Update Reason and Impact sections', async () => {
|
|
await documentContentPage.buttonReasonAndImpactTab.click()
|
|
|
|
const documentReasonAndImpactPage = new DocumentReasonAndImpactPage(page)
|
|
await documentReasonAndImpactPage.setReasonAndImpactData(
|
|
'Test description',
|
|
'Test reason',
|
|
'Test analysis',
|
|
'TMPL-18 HR'
|
|
)
|
|
|
|
await documentContentPage.buttonContentTab.click()
|
|
})
|
|
|
|
await test.step('3. Move to effective status', async () => {
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm([documentDetails.owner])
|
|
|
|
await documentContentPage.confirmApproval()
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.EFFECTIVE)
|
|
})
|
|
|
|
await test.step('4. Check Reason and Impact sections', async () => {
|
|
await documentContentPage.buttonReasonAndImpactTab.click()
|
|
|
|
const documentReasonAndImpactPage = new DocumentReasonAndImpactPage(page)
|
|
await documentReasonAndImpactPage.checkReasonAndImpactData(
|
|
'Test description',
|
|
'Test reason',
|
|
'Test analysis',
|
|
'TMPL-18 HR'
|
|
)
|
|
})
|
|
})
|
|
|
|
test('TESTS-206. Send for approval document after resolve comments', async ({ page, browser }) => {
|
|
await allure.description(
|
|
'Requirement\nUsers need to make a resolve all comments and done documents for the Effective status'
|
|
)
|
|
await allure.tms('TESTS-206', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-141')
|
|
const userSecondPage = await getSecondPage(browser)
|
|
const completeDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: `Complete document-${generateId()}`,
|
|
description: `Complete document description-${generateId()}`
|
|
}
|
|
const reviewer = 'Dirak Kainin'
|
|
const documentDetails: DocumentDetails = {
|
|
type: 'HR',
|
|
category: 'Human Resources',
|
|
version: 'v0.1',
|
|
status: DocumentStatus.DRAFT,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
const newContentFirst: Content = {
|
|
sectionTitle: `Complete document. Overview-${generateId()}`,
|
|
content: `Complete document. New content-${generateId()}!!!!`
|
|
}
|
|
const updateContentFirst: Content = {
|
|
sectionTitle: `Complete document Updated. Updated Overview-${generateId()}`,
|
|
content: `Complete document Updated. Updated content-${generateId()}!!!!`
|
|
}
|
|
const newContentSecond: Content = {
|
|
sectionTitle: `Complete document. Description-${generateId()}`,
|
|
content: `Complete document. New content Description-${generateId()}!!!!`
|
|
}
|
|
const messageToTitle: string = `Complete document. Message to the first title-${generateId()}`
|
|
const messageToContent: string = `Complete document. Message to the content-${generateId()}`
|
|
|
|
await prepareDocumentStep(page, completeDocument)
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await test.step('2. Add section and content', async () => {
|
|
await documentContentPage.checkDocumentTitle(completeDocument.title)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkCurrentRights(DocumentRights.EDITING)
|
|
|
|
await documentContentPage.updateSectionTitle('1', newContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentFirst)
|
|
|
|
await documentContentPage.addNewSection('1', 'below')
|
|
await documentContentPage.updateSectionTitle('2', newContentSecond.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(newContentSecond)
|
|
await attachScreenshot('TESTS-206_add_section_and_content.png', page)
|
|
})
|
|
|
|
await test.step('3. Send for Review', async () => {
|
|
await documentContentPage.buttonSendForReview.click()
|
|
await documentContentPage.fillSelectReviewersForm([reviewer])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_REVIEW)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_REVIEW
|
|
})
|
|
await attachScreenshot('TESTS-206_send_for_review.png', page)
|
|
})
|
|
|
|
await test.step('4. As author add comments to the first section', async () => {
|
|
await documentContentPage.addMessageToTheSectionTitle(newContentFirst.sectionTitle, messageToTitle)
|
|
await documentContentPage.addMessageToTheText(newContentFirst.content, messageToContent)
|
|
|
|
await documentContentPage.buttonComments.click()
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentExist(newContentFirst.sectionTitle, 2)
|
|
await documentCommentsPage.checkCommentCanBeResolved(newContentFirst.sectionTitle, 1)
|
|
await documentCommentsPage.checkCommentCanBeResolved(newContentFirst.sectionTitle, 2)
|
|
await attachScreenshot('TESTS-206_author_add_comments.png', page)
|
|
})
|
|
|
|
await test.step('5. As reviewer add comments to the second section and Complete Review', async () => {
|
|
await (await userSecondPage.goto(`${PlatformURI}/${DocumentURI}`))?.finished()
|
|
|
|
const documentsPageSecond = new DocumentsPage(userSecondPage)
|
|
await documentsPageSecond.openDocument(completeDocument.title)
|
|
|
|
const documentContentPageSecond = new DocumentContentPage(userSecondPage)
|
|
await documentContentPageSecond.addMessageToTheSectionTitle(newContentSecond.sectionTitle, messageToTitle)
|
|
await documentContentPageSecond.addMessageToTheText(newContentSecond.content, messageToContent)
|
|
|
|
await documentContentPageSecond.buttonComments.click()
|
|
|
|
const documentCommentsPageSecond = new DocumentCommentsPage(userSecondPage)
|
|
await documentCommentsPageSecond.checkCommentExist(newContentSecond.sectionTitle, 2)
|
|
await documentCommentsPageSecond.checkCommentCanBeResolved(newContentSecond.sectionTitle, 3)
|
|
await documentCommentsPageSecond.checkCommentCanBeResolved(newContentSecond.sectionTitle, 4)
|
|
|
|
await documentContentPageSecond.completeReview()
|
|
|
|
await documentContentPageSecond.checkDocumentStatus(DocumentStatus.REVIEWED)
|
|
await documentContentPageSecond.checkCurrentRights(DocumentRights.VIEWING)
|
|
await attachScreenshot('TESTS-206_reviewer_add_comments.png', page)
|
|
})
|
|
|
|
await test.step('6. Update Document and fix reviews', async () => {
|
|
await documentContentPage.buttonEditDocument.click()
|
|
|
|
await documentContentPage.updateSectionTitle('1', updateContentFirst.sectionTitle)
|
|
await documentContentPage.addContentToTheSection(updateContentFirst)
|
|
await documentContentPage.checkContentForTheSection(updateContentFirst)
|
|
|
|
const documentCommentsPage = new DocumentCommentsPage(page)
|
|
await documentCommentsPage.checkCommentExist(updateContentFirst.sectionTitle, 2)
|
|
await documentCommentsPage.resolveAllComments()
|
|
|
|
await documentCommentsPage.checkCommentNotExist(updateContentFirst.sectionTitle)
|
|
await attachScreenshot('TESTS-206_fix_reviews.png', page)
|
|
|
|
await documentContentPage.buttonDocumentInformation.click()
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.DRAFT)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.DRAFT,
|
|
version: 'v0.1'
|
|
})
|
|
await attachScreenshot('TESTS-206_check_document.png', page)
|
|
})
|
|
|
|
await test.step('7. Send for Approval', async () => {
|
|
await documentContentPage.buttonSendForApproval.click()
|
|
await documentContentPage.fillSelectApproversForm([reviewer])
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_APPROVAL)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.IN_APPROVAL,
|
|
version: 'v0.1'
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
})
|
|
|
|
await test.step('8. Approve document', async () => {
|
|
const documentsPageSecond = new DocumentsPage(userSecondPage)
|
|
await documentsPageSecond.openDocument(completeDocument.title)
|
|
|
|
const documentContentPageSecond = new DocumentContentPage(userSecondPage)
|
|
await documentContentPageSecond.confirmApproval()
|
|
|
|
await documentContentPageSecond.buttonDocumentInformation.click()
|
|
await documentContentPageSecond.checkDocumentStatus(DocumentStatus.EFFECTIVE)
|
|
await documentContentPageSecond.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.EFFECTIVE,
|
|
version: 'v0.1'
|
|
})
|
|
await documentContentPageSecond.checkCurrentRights(DocumentRights.VIEWING)
|
|
|
|
await attachScreenshot('TESTS-206_approve_document.png', page)
|
|
})
|
|
|
|
await test.step('9. Check document', async () => {
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.EFFECTIVE)
|
|
await documentContentPage.checkDocument({
|
|
...documentDetails,
|
|
status: DocumentStatus.EFFECTIVE,
|
|
version: 'v0.1'
|
|
})
|
|
await documentContentPage.checkCurrentRights(DocumentRights.VIEWING)
|
|
|
|
await attachScreenshot('TESTS-206_check_document.png', page)
|
|
})
|
|
|
|
await test.step('10. Check History tab', async () => {
|
|
await documentContentPage.buttonHistoryTab.first().click()
|
|
|
|
const documentHistoryPage = new DocumentHistoryPage(page)
|
|
await documentHistoryPage.checkHistoryEventExist('New document creation')
|
|
await attachScreenshot('TESTS-206_check_history_tab.png', page)
|
|
})
|
|
})
|
|
|
|
test('TESTS-352. Create a document', async ({ page }) => {
|
|
const folderName = faker.word.words(1)
|
|
const documentTitle = faker.word.words(2)
|
|
await allure.description('Requirement\nUsers need to create a new document')
|
|
await allure.tms('TESTS-352', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-352')
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await documentContentPage.clickAddFolderButton()
|
|
await documentContentPage.fillDocumentSpaceForm(folderName)
|
|
await documentContentPage.createNewDocumentInsideFolder(folderName)
|
|
await documentContentPage.createNewDocumentFromFolder(documentTitle)
|
|
|
|
await test.step('2. Check if document and folder exists', async () => {
|
|
await documentContentPage.checkIfFolderExists(folderName)
|
|
await documentContentPage.checkDocumentTitle(documentTitle)
|
|
})
|
|
|
|
await attachScreenshot('TESTS-352_create_document.png', page)
|
|
})
|
|
|
|
test('TESTS-380. As a space QARA, I can select "Custom" field in "Reason" for creating this Quality doc and it is stored in the History of Version 2 of this doc', async ({
|
|
page
|
|
}) => {
|
|
const folderName = generateId(5)
|
|
const documentTitle = generateId(5)
|
|
const reason = generateId(5)
|
|
await allure.description('Requirement\nUsers need to create a new document')
|
|
await allure.tms('TESTS-380', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-380')
|
|
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await documentContentPage.clickAddFolderButton()
|
|
await documentContentPage.fillDocumentSpaceForm(folderName)
|
|
await documentContentPage.createNewDocumentInsideFolder(folderName)
|
|
await documentContentPage.createNewDocumentFromFolder(documentTitle, true, reason)
|
|
|
|
await test.step('2. Check if document and folder exists', async () => {
|
|
await documentContentPage.checkIfFolderExists(folderName)
|
|
await documentContentPage.checkDocumentTitle(documentTitle)
|
|
})
|
|
await documentContentPage.clickSendForApproval()
|
|
await documentContentPage.fillSelectApproversForm(['Appleseed John'])
|
|
await documentContentPage.confirmApproval()
|
|
await documentContentPage.clickDraftNewVersion()
|
|
await documentContentPage.clickHistoryTab()
|
|
await test.step('3. Check if history version exists', async () => {
|
|
await documentContentPage.checkIfHistoryVersionExists(reason)
|
|
})
|
|
await attachScreenshot('TESTS-380_create_document.png', page)
|
|
await documentContentPage.clickLeaveFolder(folderName)
|
|
})
|
|
|
|
test('TESTS-214. Check old existing document content', async ({ page, browser }) => {
|
|
await allure.description(
|
|
'Requirement\nAs a user, I want to open my previously created document and see all its content'
|
|
)
|
|
await allure.tms('TESTS-214', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-214')
|
|
const existDocument: NewDocument = {
|
|
template: 'HR (HR)',
|
|
title: 'Existing document',
|
|
description: 'Existing document description'
|
|
}
|
|
const documentDetails: DocumentDetails = {
|
|
id: 'HR-1',
|
|
type: 'HR',
|
|
category: 'N/A',
|
|
version: 'v0.0',
|
|
status: DocumentStatus.IN_REVIEW,
|
|
owner: 'Appleseed John',
|
|
author: 'Appleseed John'
|
|
}
|
|
const overviewContent: Content = {
|
|
sectionTitle: 'Overview',
|
|
content:
|
|
'In this section, we explore [Medical Topic], shedding light on its key aspects, causes, symptoms, and available treatments. Gain insights into the latest advancements in [Medical Field] and discover valuable information for a better understanding of managing and addressing [Medical Condition].'
|
|
}
|
|
const mainContent: Content = {
|
|
sectionTitle: 'Main',
|
|
content:
|
|
'[Medical Topic] is a prevalent [medical condition/issue] affecting a significant number of individuals worldwide. This condition is characterized by [brief description of symptoms or key features]. It can arise due to [common causes or triggers], leading to [impact on health or daily life].'
|
|
}
|
|
|
|
await test.step('1. Open the document created sometime ago', async () => {
|
|
const leftSideMenuPage = new LeftSideMenuPage(page)
|
|
await leftSideMenuPage.buttonDocuments.click()
|
|
|
|
const documentsPage = new DocumentsPage(page)
|
|
await documentsPage.openDocument(existDocument.title)
|
|
})
|
|
|
|
await test.step('2. Check the document content', async () => {
|
|
const documentContentPage = new DocumentContentPage(page)
|
|
await documentContentPage.checkDocumentTitle(existDocument.title)
|
|
await documentContentPage.checkDocument(documentDetails)
|
|
await documentContentPage.checkDocumentStatus(DocumentStatus.IN_REVIEW)
|
|
await documentContentPage.checkContentForTheSection(overviewContent)
|
|
await documentContentPage.checkContentForTheSection(mainContent)
|
|
})
|
|
})
|
|
})
|