@@ -26,18 +26,18 @@ jest.mock("crypto", () => ({
2626 randomBytes : ( size : number ) => randomBytes [ String ( size ) ] ,
2727} ) ) ;
2828
29- const eventSource = "/data-plane/supplier-api/nhs-supplier-api-dev/main/letters" ;
29+ const eventSource =
30+ "/data-plane/supplier-api/nhs-supplier-api-dev/main/letters" ;
3031const mockedDeps : jest . Mocked < Deps > = {
31- snsClient : { send : jest . fn ( ) } as unknown as SNSClient ,
32- logger : { info : jest . fn ( ) , error : jest . fn ( ) } as unknown as pino . Logger ,
33- env : {
34- EVENTPUB_SNS_TOPIC_ARN : "arn:aws:sns:region:account:topic" ,
35- EVENT_SOURCE : eventSource
36- } as unknown as EnvVars ,
37- } as Deps ;
32+ snsClient : { send : jest . fn ( ) } as unknown as SNSClient ,
33+ logger : { info : jest . fn ( ) , error : jest . fn ( ) } as unknown as pino . Logger ,
34+ env : {
35+ EVENTPUB_SNS_TOPIC_ARN : "arn:aws:sns:region:account:topic" ,
36+ EVENT_SOURCE : eventSource ,
37+ } as unknown as EnvVars ,
38+ } as Deps ;
3839
3940describe ( "letter-updates-transformer Lambda" , ( ) => {
40-
4141 beforeEach ( ( ) => {
4242 jest . useFakeTimers ( ) ;
4343 } ) ;
@@ -53,7 +53,9 @@ describe("letter-updates-transformer Lambda", () => {
5353 const newLetter = generateLetter ( "PRINTED" ) ;
5454 const expectedEntries = [
5555 expect . objectContaining ( {
56- Message : JSON . stringify ( mapLetterToCloudEvent ( newLetter , eventSource ) ) ,
56+ Message : JSON . stringify (
57+ mapLetterToCloudEvent ( newLetter , eventSource ) ,
58+ ) ,
5759 } ) ,
5860 ] ;
5961
@@ -79,7 +81,9 @@ describe("letter-updates-transformer Lambda", () => {
7981 newLetter . reasonCode = "R1" ;
8082 const expectedEntries = [
8183 expect . objectContaining ( {
82- Message : JSON . stringify ( mapLetterToCloudEvent ( newLetter , eventSource ) ) ,
84+ Message : JSON . stringify (
85+ mapLetterToCloudEvent ( newLetter , eventSource ) ,
86+ ) ,
8387 } ) ,
8488 ] ;
8589
@@ -106,7 +110,9 @@ describe("letter-updates-transformer Lambda", () => {
106110 newLetter . reasonCode = "R2" ;
107111 const expectedEntries = [
108112 expect . objectContaining ( {
109- Message : JSON . stringify ( mapLetterToCloudEvent ( newLetter , eventSource ) ) ,
113+ Message : JSON . stringify (
114+ mapLetterToCloudEvent ( newLetter , eventSource ) ,
115+ ) ,
110116 } ) ,
111117 ] ;
112118
@@ -138,14 +144,28 @@ describe("letter-updates-transformer Lambda", () => {
138144 expect ( mockedDeps . snsClient . send ) . not . toHaveBeenCalled ( ) ;
139145 } ) ;
140146
141- it ( "does not publish non-modify events" , async ( ) => {
147+ it ( "publishes INSERT events" , async ( ) => {
142148 const handler = createHandler ( mockedDeps ) ;
143149 const newLetter = generateLetter ( "ACCEPTED" ) ;
150+ const expectedEntries = [
151+ expect . objectContaining ( {
152+ Message : JSON . stringify (
153+ mapLetterToCloudEvent ( newLetter , eventSource ) ,
154+ ) ,
155+ } ) ,
156+ ] ;
144157
145158 const testData = generateKinesisEvent ( [ generateInsertRecord ( newLetter ) ] ) ;
146159 await handler ( testData , mockDeep < Context > ( ) , jest . fn ( ) ) ;
147160
148- expect ( mockedDeps . snsClient . send ) . not . toHaveBeenCalled ( ) ;
161+ expect ( mockedDeps . snsClient . send ) . toHaveBeenCalledWith (
162+ expect . objectContaining ( {
163+ input : expect . objectContaining ( {
164+ TopicArn : "arn:aws:sns:region:account:topic" ,
165+ PublishBatchRequestEntries : expectedEntries ,
166+ } ) ,
167+ } ) ,
168+ ) ;
149169 } ) ;
150170
151171 it ( "does not publish invalid letter data" , async ( ) => {
0 commit comments