Skip to content
Merged
8 changes: 3 additions & 5 deletions frontend/src/__tests__/app/choose-templates/page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ import {
getRoutingConfig,
getMessagePlanTemplates,
} from '@utils/message-plans';
import type {
RoutingConfig,
RoutingConfigStatus,
} from 'nhs-notify-backend-client';
import type { RoutingConfig } from 'nhs-notify-backend-client';
import {
EMAIL_TEMPLATE,
LETTER_TEMPLATE,
Expand All @@ -34,13 +31,14 @@ const validRoutingConfigId = 'fbb81055-79b9-4759-ac07-d191ae57be34';
const routingConfig: RoutingConfig = {
id: validRoutingConfigId,
name: 'Autumn Campaign Plan',
status: 'DRAFT' as RoutingConfigStatus,
status: 'DRAFT',
clientId: 'client-1',
campaignId: 'campaign-2',
createdAt: '2025-01-13T10:19:25.579Z',
updatedAt: '2025-01-13T10:19:25.579Z',
cascadeGroupOverrides: [],
cascade: [],
defaultCascadeGroup: 'standard',
};

describe('ChooseTemplatesPage', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import { mock } from 'jest-mock-extended';
import { redirect, RedirectType } from 'next/navigation';
import type {
CascadeGroup,
CascadeItem,
RoutingConfig,
} from 'nhs-notify-backend-client';
import type { CascadeItem, RoutingConfig } from 'nhs-notify-backend-client';
import type { MessageOrder } from 'nhs-notify-web-template-management-utils';
import { createMessagePlanServerAction } from '@app/message-plans/create-message-plan/server-action';
import { NextRedirectError } from '@testhelpers/next-redirect';
Expand All @@ -26,175 +22,166 @@ beforeEach(() => {
jest.clearAllMocks();
});

const MESSAGE_ORDER_SCENARIOS: [MessageOrder, CascadeItem[], CascadeGroup[]][] =
const MESSAGE_ORDER_SCENARIOS: [MessageOrder, CascadeItem[]][] = [
[
'NHSAPP',
[
'NHSAPP',
[
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
],
],
[
'NHSAPP,EMAIL',
[
'NHSAPP,EMAIL',
[
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
],
],
[
'NHSAPP,SMS',
[
'NHSAPP,SMS',
[
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
],
],
[
'NHSAPP,EMAIL,SMS',
[
'NHSAPP,EMAIL,SMS',
[
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
],
],
[
'NHSAPP,SMS,EMAIL',
[
'NHSAPP,SMS,EMAIL',
[
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
],
],
[
'NHSAPP,SMS,LETTER',
[
'NHSAPP,SMS,LETTER',
[
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'LETTER',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'LETTER',
channelType: 'primary',
defaultTemplateId: null,
},
],
],
[
'NHSAPP,EMAIL,SMS,LETTER',
[
'NHSAPP,EMAIL,SMS,LETTER',
[
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'LETTER',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'NHSAPP',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'EMAIL',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'SMS',
channelType: 'primary',
defaultTemplateId: null,
},
{
cascadeGroups: ['standard'],
channel: 'LETTER',
channelType: 'primary',
defaultTemplateId: null,
},
],
],
[
'LETTER',
[
'LETTER',
[
{
cascadeGroups: ['standard'],
channel: 'LETTER',
channelType: 'primary',
defaultTemplateId: null,
},
],
[{ name: 'standard' }],
{
cascadeGroups: ['standard'],
channel: 'LETTER',
channelType: 'primary',
defaultTemplateId: null,
},
],
];
],
];

test.each(MESSAGE_ORDER_SCENARIOS)(
'creates a message plan with correct initial cascade for %s message order and redirects to the choose templates page',
async (messageOrder, expectedCascade, expectedCascadeGroups) => {
async (messageOrder, expectedCascade) => {
const form = new FormData();
form.append('name', 'Message Plan Name');
form.append('campaignId', 'test-campaign-id');
Expand All @@ -212,7 +199,7 @@ test.each(MESSAGE_ORDER_SCENARIOS)(
name: 'Message Plan Name',
campaignId: 'test-campaign-id',
cascade: expectedCascade,
cascadeGroupOverrides: expectedCascadeGroups,
cascadeGroupOverrides: [],
});
}
);
Expand Down
Loading
Loading