@@ -29,12 +29,14 @@ const redirectMock = jest.mocked(redirect);
2929const getMessagePlanMock = jest . mocked ( getMessagePlan ) ;
3030const getMessagePlanTemplatesMock = jest . mocked ( getMessagePlanTemplates ) ;
3131
32+ const validRoutingConfigId = 'fbb81055-79b9-4759-ac07-d191ae57be34' ;
33+
3234const routingConfig : RoutingConfig = {
33- id : 'routing-config-001' ,
35+ id : validRoutingConfigId ,
3436 name : 'Autumn Campaign Plan' ,
3537 status : 'DRAFT' as RoutingConfigStatus ,
36- clientId : 'clientemplate-123 ' ,
37- campaignId : 'camp-123 ' ,
38+ clientId : 'client-1 ' ,
39+ campaignId : 'campaign-2 ' ,
3840 createdAt : '2025-01-13T10:19:25.579Z' ,
3941 updatedAt : '2025-01-13T10:19:25.579Z' ,
4042 cascadeGroupOverrides : [ ] ,
@@ -66,10 +68,10 @@ describe('ChooseTemplatesPage', () => {
6668 getMessagePlanTemplatesMock . mockResolvedValueOnce ( { } ) ;
6769
6870 const page = await ChooseTemplatesPage ( {
69- params : Promise . resolve ( { routingConfigId : 'routing-config-001' } ) ,
71+ params : Promise . resolve ( { routingConfigId : validRoutingConfigId } ) ,
7072 } ) ;
7173
72- expect ( getMessagePlanMock ) . toHaveBeenCalledWith ( 'routing-config-001' ) ;
74+ expect ( getMessagePlanMock ) . toHaveBeenCalledWith ( validRoutingConfigId ) ;
7375 expect ( getMessagePlanTemplatesMock ) . toHaveBeenCalledWith ( routingConfig ) ;
7476
7577 expect ( page ) . toEqual (
@@ -98,10 +100,10 @@ describe('ChooseTemplatesPage', () => {
98100 getMessagePlanTemplatesMock . mockResolvedValueOnce ( templates ) ;
99101
100102 const page = await ChooseTemplatesPage ( {
101- params : Promise . resolve ( { routingConfigId : 'routing-config-001' } ) ,
103+ params : Promise . resolve ( { routingConfigId : validRoutingConfigId } ) ,
102104 } ) ;
103105
104- expect ( getMessagePlanMock ) . toHaveBeenCalledWith ( 'routing-config-001' ) ;
106+ expect ( getMessagePlanMock ) . toHaveBeenCalledWith ( validRoutingConfigId ) ;
105107 expect ( getMessagePlanTemplatesMock ) . toHaveBeenCalledWith ( planWithCascade ) ;
106108
107109 expect ( page ) . toEqual (
@@ -177,4 +179,52 @@ describe('ChooseTemplatesPage', () => {
177179 ) ;
178180 expect ( getMessagePlanTemplatesMock ) . not . toHaveBeenCalled ( ) ;
179181 } ) ;
182+
183+ it ( 'renders correctly for a message plan with multiple templates (snapshot)' , async ( ) => {
184+ const appTemplateId = 'd3a2c6ba-438a-4bf4-b94a-7c64c6528e7f' ;
185+ const smsTemplateId = '5f7c3e1d-9b1a-4d3a-8f3e-2c6b8e9f1a2b' ;
186+ const letterTemplateId = '9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d' ;
187+
188+ const planWithMultiple : RoutingConfig = {
189+ ...routingConfig ,
190+ cascade : [
191+ {
192+ cascadeGroups : [ 'standard' ] ,
193+ channel : 'NHSAPP' ,
194+ channelType : 'primary' ,
195+ defaultTemplateId : appTemplateId ,
196+ } ,
197+ {
198+ cascadeGroups : [ 'standard' ] ,
199+ channel : 'SMS' ,
200+ channelType : 'primary' ,
201+ defaultTemplateId : smsTemplateId ,
202+ } ,
203+ {
204+ cascadeGroups : [ 'standard' ] ,
205+ channel : 'LETTER' ,
206+ channelType : 'primary' ,
207+ defaultTemplateId : letterTemplateId ,
208+ } ,
209+ ] ,
210+ } ;
211+
212+ const templates = {
213+ 'test-template-app' : { ...NHS_APP_TEMPLATE , id : appTemplateId } ,
214+ 'test-template-sms' : { ...SMS_TEMPLATE , id : smsTemplateId } ,
215+ 'test-template-letter' : {
216+ ...LETTER_TEMPLATE ,
217+ id : letterTemplateId ,
218+ } ,
219+ } ;
220+
221+ getMessagePlanMock . mockResolvedValueOnce ( planWithMultiple ) ;
222+ getMessagePlanTemplatesMock . mockResolvedValueOnce ( templates ) ;
223+
224+ const page = await ChooseTemplatesPage ( {
225+ params : Promise . resolve ( { routingConfigId : validRoutingConfigId } ) ,
226+ } ) ;
227+
228+ expect ( page ) . toMatchSnapshot ( ) ;
229+ } ) ;
180230} ) ;
0 commit comments