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) }) }) })