Skip to content

Commit b9da9bb

Browse files
committed
CCM-10424 Add playwright test and update link
1 parent dd39c9f commit b9da9bb

File tree

4 files changed

+75
-2
lines changed

4 files changed

+75
-2
lines changed

frontend/src/__tests__/components/molecules/__snapshots__/InvalidConfig.test.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ exports[`InvalidConfig 1`] = `
3333
<p>
3434
<a
3535
data-testid="back-to-choose-template-type-link"
36-
href="/templates/choose-a-template-type"
36+
href="/choose-a-template-type"
3737
>
3838
Go back
3939
</a>

frontend/src/components/molecules/InvalidConfig/InvalidConfig.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export default function InvalidConfig() {
2323
</InsetText>
2424
<p>
2525
<Link
26-
href={`${getBasePath()}/choose-a-template-type`}
26+
href='/choose-a-template-type'
2727
data-testid='back-to-choose-template-type-link'
2828
>
2929
{backLinkText}

tests/test-team/helpers/auth/login-as-user.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ export const loginAsUser = async (user: TestUser, page: Page) => {
88
await loginPage.loadPage();
99

1010
await loginPage.cognitoSignIn(user);
11+
12+
await page.waitForURL('/templates/create-and-submit-templates');
1113
};

tests/test-team/template-mgmt-component-tests/letter/template-mgmt-create-letter-template-page.component.spec.ts

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,24 @@ import {
1313
testUsers,
1414
} from '../../helpers/auth/cognito-auth-helper';
1515
import { TemplateMgmtCreateLetterPage } from '../../pages/letter/template-mgmt-create-letter-page';
16+
import { TemplateMgmtCreateLetterMissingCampaignClientIdPage } from '../../pages/letter/template-mgmt-create-letter-missing-campaign-client-id-page';
17+
import { loginAsUser } from '../../helpers/auth/login-as-user';
1618

1719
test.describe('Create Letter Template Page', () => {
1820
const templateStorageHelper = new TemplateStorageHelper();
21+
1922
let user: TestUser;
23+
let userWithoutClientId: TestUser;
24+
let userWithoutCampaignId: TestUser;
2025

2126
test.beforeAll(async () => {
2227
user = await createAuthHelper().getTestUser(testUsers.User1.userId);
28+
userWithoutClientId = await createAuthHelper().getTestUser(
29+
testUsers.User6.userId
30+
);
31+
userWithoutCampaignId = await createAuthHelper().getTestUser(
32+
testUsers.User7.userId
33+
);
2334
});
2435

2536
test.afterAll(async () => {
@@ -157,4 +168,64 @@ test.describe('Create Letter Template Page', () => {
157168
await expect(newTab).toHaveURL(`${baseURL}/${url}`);
158169
});
159170
}
171+
172+
test.describe('missing client or campaign ID error page', () => {
173+
test.use({ storageState: { cookies: [], origins: [] } });
174+
175+
test('redirects to error page when campaign ID is missing', async ({
176+
page,
177+
baseURL,
178+
}) => {
179+
await loginAsUser(userWithoutCampaignId, page);
180+
181+
const createTemplatePage = new TemplateMgmtCreateLetterPage(page);
182+
const missingClientOrCampaignIdErrorPage =
183+
new TemplateMgmtCreateLetterMissingCampaignClientIdPage(page);
184+
185+
await createTemplatePage.loadPage();
186+
187+
await expect(page).toHaveURL(
188+
`${baseURL}/templates/${TemplateMgmtCreateLetterMissingCampaignClientIdPage.pageUrlSegment}`
189+
);
190+
191+
await assertMissingClientOrCampaignIdErrorPage(
192+
missingClientOrCampaignIdErrorPage
193+
);
194+
});
195+
196+
test('redirects to error page when client ID is missing', async ({
197+
page,
198+
baseURL,
199+
}) => {
200+
await loginAsUser(userWithoutClientId, page);
201+
202+
const createTemplatePage = new TemplateMgmtCreateLetterPage(page);
203+
const missingClientOrCampaignIdErrorPage =
204+
new TemplateMgmtCreateLetterMissingCampaignClientIdPage(page);
205+
206+
createTemplatePage.loadPage();
207+
208+
await expect(page).toHaveURL(
209+
`${baseURL}/templates/${TemplateMgmtCreateLetterMissingCampaignClientIdPage.pageUrlSegment}`
210+
);
211+
212+
await assertMissingClientOrCampaignIdErrorPage(
213+
missingClientOrCampaignIdErrorPage
214+
);
215+
});
216+
});
217+
218+
const assertMissingClientOrCampaignIdErrorPage = async (
219+
page: TemplateMgmtCreateLetterMissingCampaignClientIdPage
220+
) => {
221+
await expect(page.heading).toHaveText(
222+
'You cannot create letter templates yet'
223+
);
224+
await expect(page.errorDetailsInsetText).toHaveText(
225+
'Account needs a client ID and campaign ID'
226+
);
227+
228+
await expect(page.goBackLink).toHaveText('Go back');
229+
await expect(page.goBackLink).toHaveAttribute('href', '/templates/choose-a-template-type');
230+
};
160231
});

0 commit comments

Comments
 (0)