Skip to content

Commit e5bf5f4

Browse files
committed
CCM-11492 Update tests for CreateEditMessagePlan
1 parent d290e71 commit e5bf5f4

File tree

2 files changed

+662
-8
lines changed

2 files changed

+662
-8
lines changed

frontend/src/__tests__/components/organisms/CreateEditMessagePlan.test.tsx

Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ import type {
66
Channel,
77
RoutingConfigStatus,
88
} from 'nhs-notify-backend-client';
9+
import type { MessagePlanTemplates } from '@utils/message-plans';
10+
import {
11+
EMAIL_TEMPLATE,
12+
LETTER_TEMPLATE,
13+
NHS_APP_TEMPLATE,
14+
} from '@testhelpers';
15+
16+
const mockTemplates: MessagePlanTemplates = {} as MessagePlanTemplates;
917

1018
function buildRoutingConfig({
1119
id = 'routing-config-123',
@@ -36,7 +44,9 @@ describe('CreateEditMessagePlan', () => {
3644
it('should render the page heading with the message plan name', () => {
3745
const plan = buildRoutingConfig({ name: 'Covid vaccine' });
3846

39-
render(<CreateEditMessagePlan messagePlan={plan} />);
47+
render(
48+
<CreateEditMessagePlan messagePlan={plan} templates={mockTemplates} />
49+
);
4050

4151
expect(
4252
screen.getByRole('heading', { level: 1, name: 'Covid vaccine' })
@@ -46,7 +56,9 @@ describe('CreateEditMessagePlan', () => {
4656
it('should display the routing config ID', () => {
4757
const plan = buildRoutingConfig({ id: 'routing-config-test' });
4858

49-
const { container } = render(<CreateEditMessagePlan messagePlan={plan} />);
59+
const { container } = render(
60+
<CreateEditMessagePlan messagePlan={plan} templates={mockTemplates} />
61+
);
5062

5163
const messagePlanId = container.querySelector(
5264
'.create-edit-message-plan-routing-config-id'
@@ -60,15 +72,19 @@ describe('CreateEditMessagePlan', () => {
6072
{ status: 'COMPLETED' as const, display: 'Production' },
6173
])('should render the status tag for %s', ({ status, display }) => {
6274
const plan = buildRoutingConfig({ status });
63-
render(<CreateEditMessagePlan messagePlan={plan} />);
75+
render(
76+
<CreateEditMessagePlan messagePlan={plan} templates={mockTemplates} />
77+
);
6478

6579
expect(screen.getByText(display)).toBeInTheDocument();
6680
});
6781

6882
it('should render the channel list with a block and fallback for each cascade item (order check)', () => {
6983
const channels: Channel[] = ['NHSAPP', 'EMAIL', 'SMS'];
7084
const plan = buildRoutingConfig({ channels });
71-
const { container } = render(<CreateEditMessagePlan messagePlan={plan} />);
85+
const { container } = render(
86+
<CreateEditMessagePlan messagePlan={plan} templates={mockTemplates} />
87+
);
7288

7389
const messagePlanChannelList = container.querySelector(
7490
'ul.channel-list'
@@ -91,7 +107,12 @@ describe('CreateEditMessagePlan', () => {
91107
it('should render CTAs for both saving and moving to production', () => {
92108
const messagePlan = buildRoutingConfig();
93109

94-
render(<CreateEditMessagePlan messagePlan={messagePlan} />);
110+
render(
111+
<CreateEditMessagePlan
112+
messagePlan={messagePlan}
113+
templates={mockTemplates}
114+
/>
115+
);
95116

96117
const formGroup = screen.getByTestId('message-plan-actions');
97118
const buttons = within(formGroup).getAllByRole('button');
@@ -103,7 +124,9 @@ describe('CreateEditMessagePlan', () => {
103124
it('should render a "change name" link', () => {
104125
const plan = buildRoutingConfig();
105126

106-
render(<CreateEditMessagePlan messagePlan={plan} />);
127+
render(
128+
<CreateEditMessagePlan messagePlan={plan} templates={mockTemplates} />
129+
);
107130

108131
const link = screen.getByTestId('change-message-plan-name-link');
109132
expect(link.textContent).toBe('Change name');
@@ -115,13 +138,33 @@ describe('CreateEditMessagePlan', () => {
115138
it('should match snapshot for a typical message plan', () => {
116139
const messagePlan = buildRoutingConfig({
117140
name: 'COVID Booster Plan',
118-
channels: ['NHSAPP', 'EMAIL', 'LETTER'],
141+
channels: ['NHSAPP', 'SMS', 'EMAIL', 'LETTER'],
119142
});
120143

121144
const { asFragment } = render(
122-
<CreateEditMessagePlan messagePlan={messagePlan} />
145+
<CreateEditMessagePlan
146+
messagePlan={messagePlan}
147+
templates={mockTemplates}
148+
/>
123149
);
124150

125151
expect(asFragment()).toMatchSnapshot();
126152
});
153+
154+
it('should match snapshot for a typical message plan with templates', () => {
155+
const messagePlan = buildRoutingConfig({
156+
name: 'COVID Booster Plan',
157+
channels: ['NHSAPP', 'EMAIL', 'LETTER'],
158+
});
159+
160+
const templates: MessagePlanTemplates = {
161+
'template-0': NHS_APP_TEMPLATE,
162+
'template-1': EMAIL_TEMPLATE,
163+
'template-2': LETTER_TEMPLATE,
164+
};
165+
const { asFragment } = render(
166+
<CreateEditMessagePlan messagePlan={messagePlan} templates={templates} />
167+
);
168+
expect(asFragment()).toMatchSnapshot();
169+
});
127170
});

0 commit comments

Comments
 (0)