From e6a31a4b27ef060b2b2849076b6fb824ccff6275 Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Mon, 23 Sep 2024 13:27:46 -0400 Subject: [PATCH 1/2] 10501-bug: sync branch with test --- .../local-only/support/pages/document-qc.ts | 17 +++-- .../messages/chambers-dropdown.cy.ts | 68 +++++++++++++++++++ ...openCompleteAndSendMessageModalSequence.ts | 2 + .../openForwardMessageModalSequence.ts | 2 + 4 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 cypress/local-only/tests/integration/messages/chambers-dropdown.cy.ts diff --git a/cypress/local-only/support/pages/document-qc.ts b/cypress/local-only/support/pages/document-qc.ts index cb2aa0beae6..47f5a53e589 100644 --- a/cypress/local-only/support/pages/document-qc.ts +++ b/cypress/local-only/support/pages/document-qc.ts @@ -35,14 +35,22 @@ export const fillOutMessageField = () => { cy.get('#message').clear().type("I don't appreciate your lack of sarcasm."); }; -export const enterSubject = () => { - cy.get('#subject').clear().type('Demeanor'); +export const enterSubject = (subject?: string) => { + cy.get('#subject') + .clear() + .type(subject || 'Demeanor'); }; export const sendMessage = () => { cy.get('#confirm').click(); }; +export const forwardMessage = (messageSubject: string) => { + cy.get('#tab-case-messages').click(); + cy.contains('a', messageSubject).click(); + cy.get('#button-forward').click(); +}; + export const progressIndicatorDoesNotExist = () => { cy.get('.progress-indicator').should('not.exist'); }; @@ -52,10 +60,7 @@ export const uploadCourtIssuedDocumentAndEditViaDocumentQC = () => { const freeText = `court document ${Math.random()}`; cy.get('#upload-description').clear(); cy.get('#upload-description').type(freeText); - cy.get('input#primary-document-file').attachFile( - '../../helpers/file/sample.pdf', - ); - cy.get('[data-testid="upload-file-success"]'); + cy.attachFile('../../helpers/file/sample.pdf'); cy.get('#save-uploaded-pdf-button').click(); cy.get('#add-court-issued-docket-entry-button').click(); cy.get('#document-type .select-react-element__input-container input').clear(); diff --git a/cypress/local-only/tests/integration/messages/chambers-dropdown.cy.ts b/cypress/local-only/tests/integration/messages/chambers-dropdown.cy.ts new file mode 100644 index 00000000000..dbff0f8d3a9 --- /dev/null +++ b/cypress/local-only/tests/integration/messages/chambers-dropdown.cy.ts @@ -0,0 +1,68 @@ +import { + createMessage, + enterSubject, + fillOutMessageField, + forwardMessage, + goToDocumentNeedingQC, + openCompleteAndSendMessageDialog, + selectChambers, + selectRecipient, + selectSection, + sendMessage, +} from '../../../support/pages/document-qc'; +import { goToCase } from '../../../../helpers/caseDetail/go-to-case'; +import { loginAsDocketClerk } from '../../../../helpers/authentication/login-as-helpers'; +import { v4 } from 'uuid'; + +describe('BUG: chambers dropdown should be populated in message modals', () => { + const chambersSection = 'buchsChambers'; + const recipient = 'Judge Buch'; + const caseNumber = '103-20'; + const messageToForwardSubject = v4(); + + before(() => { + // Send a message that we will forward later. + // We do this here rather than in the message forward test itself because + // judgesChambers are cached, so the message forward test could + // "pass" when it shouldn't if we create a message (and populate cache) first. + loginAsDocketClerk(); + goToCase(caseNumber); + createMessage(); + selectSection('Docket'); + selectRecipient('Test Docketclerk'); + enterSubject(messageToForwardSubject); + fillOutMessageField(); + sendMessage(); + }); + + it('should have nonempty chambers section in create new message modal', () => { + loginAsDocketClerk(); + goToCase(caseNumber); + createMessage(); + + selectSection('Chambers'); + selectChambers(chambersSection); + selectRecipient(recipient); + }); + + it('should have nonempty chambers sections in forward message modal', () => { + loginAsDocketClerk(); + goToCase(caseNumber); + forwardMessage(messageToForwardSubject); + + selectSection('Chambers'); + selectChambers(chambersSection); + selectRecipient(recipient); + }); + + it('should have nonempty chambers sections in docket QC complete and send message modal', () => { + cy.login('docketclerk', '/document-qc/section/inbox'); + cy.get('.big-blue-header').should('exist'); + goToDocumentNeedingQC(); + openCompleteAndSendMessageDialog(); + + selectSection('Chambers'); + selectChambers(chambersSection); + selectRecipient(recipient); + }); +}); diff --git a/web-client/src/presenter/sequences/openCompleteAndSendMessageModalSequence.ts b/web-client/src/presenter/sequences/openCompleteAndSendMessageModalSequence.ts index 72b6b6da4af..b94eaa911f4 100644 --- a/web-client/src/presenter/sequences/openCompleteAndSendMessageModalSequence.ts +++ b/web-client/src/presenter/sequences/openCompleteAndSendMessageModalSequence.ts @@ -1,6 +1,7 @@ import { clearModalStateAction } from '../actions/clearModalStateAction'; import { generateTitleAction } from '../actions/FileDocument/generateTitleAction'; import { getCaseAction } from '../actions/getCaseAction'; +import { getJudgesChambersSequence } from '@web-client/presenter/sequences/getJudgesChambersSequence'; import { isWorkItemAlreadyCompletedAction } from '../actions/isWorkItemAlreadyCompletedAction'; import { refreshExternalDocumentTitleFromEventCodeAction } from '../actions/FileDocument/refreshExternalDocumentTitleFromEventCodeAction'; import { setAlertErrorAction } from '../actions/setAlertErrorAction'; @@ -29,6 +30,7 @@ export const openCompleteAndSendMessageModalSequence = [ ], success: [ clearModalStateAction, + getJudgesChambersSequence, refreshExternalDocumentTitleFromEventCodeAction, setPreviousDocumentDocketEntryAction, generateTitleAction, diff --git a/web-client/src/presenter/sequences/openForwardMessageModalSequence.ts b/web-client/src/presenter/sequences/openForwardMessageModalSequence.ts index 01cfc5e15d8..73ec32cead0 100644 --- a/web-client/src/presenter/sequences/openForwardMessageModalSequence.ts +++ b/web-client/src/presenter/sequences/openForwardMessageModalSequence.ts @@ -1,4 +1,5 @@ import { clearModalStateAction } from '../actions/clearModalStateAction'; +import { getJudgesChambersSequence } from '@web-client/presenter/sequences/getJudgesChambersSequence'; import { getMostRecentMessageInThreadAction } from '../actions/getMostRecentMessageInThreadAction'; import { setForwardMessageModalDialogModalStateAction } from '../actions/WorkItem/setForwardMessageModalDialogModalStateAction'; import { setShowModalFactoryAction } from '../actions/setShowModalFactoryAction'; @@ -6,6 +7,7 @@ import { setShowModalFactoryAction } from '../actions/setShowModalFactoryAction' export const openForwardMessageModalSequence = [ clearModalStateAction, getMostRecentMessageInThreadAction, + getJudgesChambersSequence, setForwardMessageModalDialogModalStateAction, setShowModalFactoryAction('ForwardMessageModal'), ]; From 152726dd0e33d6739a46ddc15c14a865f9446e7b Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Mon, 23 Sep 2024 13:32:38 -0400 Subject: [PATCH 2/2] 10501-bug: undo unnecessary change to document-qc.ts --- cypress/local-only/support/pages/document-qc.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cypress/local-only/support/pages/document-qc.ts b/cypress/local-only/support/pages/document-qc.ts index 47f5a53e589..2332404757b 100644 --- a/cypress/local-only/support/pages/document-qc.ts +++ b/cypress/local-only/support/pages/document-qc.ts @@ -60,7 +60,10 @@ export const uploadCourtIssuedDocumentAndEditViaDocumentQC = () => { const freeText = `court document ${Math.random()}`; cy.get('#upload-description').clear(); cy.get('#upload-description').type(freeText); - cy.attachFile('../../helpers/file/sample.pdf'); + cy.get('input#primary-document-file').attachFile( + '../../helpers/file/sample.pdf', + ); + cy.get('[data-testid="upload-file-success"]'); cy.get('#save-uploaded-pdf-button').click(); cy.get('#add-court-issued-docket-entry-button').click(); cy.get('#document-type .select-react-element__input-container input').clear();