diff --git a/cypress/local-only/support/pages/document-qc.ts b/cypress/local-only/support/pages/document-qc.ts index d3a474d2f84..7e23c4fe565 100644 --- a/cypress/local-only/support/pages/document-qc.ts +++ b/cypress/local-only/support/pages/document-qc.ts @@ -37,14 +37,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'); }; 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..d0512dbd823 --- /dev/null +++ b/cypress/local-only/tests/integration/messages/chambers-dropdown.cy.ts @@ -0,0 +1,70 @@ +// make sure the chambers dropdown works in open message, qc, and forward + +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'), ];