2024-07-13 15:23:11 +00:00
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'
2024-07-23 14:06:41 +00:00
import { faker } from '@faker-js/faker'
2024-07-13 15:23:11 +00:00
test . use ( {
storageState : PlatformSetting
} )
test . describe ( 'QMS. Documents tests' , ( ) = > {
test . beforeEach ( async ( { page } ) = > {
await ( await page . goto ( ` ${ PlatformURI } / ${ HomepageURI } ` ) ) ? . finished ( )
} )
2024-07-23 14:06:41 +00:00
test . afterEach ( async ( { browser } ) = > {
const contexts = browser . contexts ( )
for ( const context of contexts ) {
await context . close ( )
}
} )
2024-07-13 15:23:11 +00:00
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 ( ) = > {
2024-07-23 14:06:41 +00:00
await documentContentPage . buttonHistoryTab . first ( ) . click ( )
2024-07-13 15:23:11 +00:00
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'
)
} )
} )
2024-07-23 14:06:41 +00:00
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 )
} )
2024-07-13 15:23:11 +00:00
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 )
} )
} )
} )