@@ -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
1018function 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