@@ -10,17 +10,26 @@ import {
10
10
import { mockClient } from 'aws-sdk-client-mock' ;
11
11
12
12
import { testLogs } from './framework/logging.js' ;
13
- import { processEvent } from './process/process.js' ;
13
+ import { getDeploymentInfo , process } from './process/process.js' ;
14
14
15
15
import { handler } from './index.js' ;
16
16
17
17
const codeDeploy = mockClient ( CodeDeployClient ) ;
18
18
19
- const processEventMock = jest . mocked ( processEvent ) ;
19
+ const getDeploymentInfoMock = jest . mocked ( getDeploymentInfo ) ;
20
+ const processMock = jest . mocked ( process ) ;
21
+
22
+ beforeEach ( ( ) => {
23
+ getDeploymentInfoMock . mockResolvedValue ( {
24
+ applicationName : 'beep' ,
25
+ revision : { string : { content : 'stuff' } } ,
26
+ } ) ;
27
+ } ) ;
20
28
21
29
afterEach ( ( ) => {
22
30
codeDeploy . reset ( ) ;
23
- processEventMock . mockReset ( ) ;
31
+ getDeploymentInfoMock . mockReset ( ) ;
32
+ processMock . mockReset ( ) ;
24
33
testLogs . length = 0 ;
25
34
} ) ;
26
35
@@ -39,13 +48,13 @@ describe('handler', () => {
39
48
} ;
40
49
41
50
it ( 'reports a success back to CodeDeploy' , async ( ) => {
42
- processEventMock . mockResolvedValue ( undefined ) ;
51
+ processMock . mockResolvedValue ( undefined ) ;
43
52
44
53
codeDeploy . on ( PutLifecycleEventHookExecutionStatusCommand ) . resolves ( { } ) ;
45
54
46
55
await expect ( handler ( event , context ) ) . resolves . toBeUndefined ( ) ;
47
56
48
- expect ( processEventMock ) . toHaveBeenCalledTimes ( 1 ) ;
57
+ expect ( processMock ) . toHaveBeenCalledTimes ( 1 ) ;
49
58
50
59
expect ( codeDeploy ) . toHaveReceivedNthCommandWith (
51
60
1 ,
@@ -59,9 +68,14 @@ describe('handler', () => {
59
68
60
69
expect ( testLogs ) . toStrictEqual ( [
61
70
{
71
+ applicationName : 'beep' ,
62
72
awsRequestId : context . awsRequestId ,
73
+ deploymentId : 'mock-deployment-id' ,
63
74
level : 30 ,
64
75
msg : 'Reported lifecycle event status' ,
76
+ revision : {
77
+ string : { content : 'stuff' } ,
78
+ } ,
65
79
status : LifecycleEventStatus . SUCCEEDED ,
66
80
timestamp : expect . any ( String ) ,
67
81
} ,
@@ -80,13 +94,13 @@ describe('handler', () => {
80
94
} ,
81
95
) ;
82
96
83
- processEventMock . mockRejectedValue ( err ) ;
97
+ processMock . mockRejectedValue ( err ) ;
84
98
85
99
codeDeploy . on ( PutLifecycleEventHookExecutionStatusCommand ) . resolves ( { } ) ;
86
100
87
101
await expect ( handler ( event , context ) ) . resolves . toBeUndefined ( ) ;
88
102
89
- expect ( processEventMock ) . toHaveBeenCalledTimes ( 1 ) ;
103
+ expect ( processMock ) . toHaveBeenCalledTimes ( 1 ) ;
90
104
91
105
expect ( codeDeploy ) . toHaveReceivedNthCommandWith (
92
106
1 ,
@@ -100,7 +114,9 @@ describe('handler', () => {
100
114
101
115
expect ( testLogs ) . toStrictEqual ( [
102
116
{
117
+ applicationName : 'beep' ,
103
118
awsRequestId : context . awsRequestId ,
119
+ deploymentId : 'mock-deployment-id' ,
104
120
err : {
105
121
message : err . message ,
106
122
payload : err . payload ,
@@ -109,12 +125,20 @@ describe('handler', () => {
109
125
} ,
110
126
level : 50 ,
111
127
msg : 'Failed to process lifecycle event' ,
128
+ revision : {
129
+ string : { content : 'stuff' } ,
130
+ } ,
112
131
timestamp : expect . any ( String ) ,
113
132
} ,
114
133
{
134
+ applicationName : 'beep' ,
115
135
awsRequestId : context . awsRequestId ,
136
+ deploymentId : 'mock-deployment-id' ,
116
137
level : 30 ,
117
138
msg : 'Reported lifecycle event status' ,
139
+ revision : {
140
+ string : { content : 'stuff' } ,
141
+ } ,
118
142
status : LifecycleEventStatus . FAILED ,
119
143
timestamp : expect . any ( String ) ,
120
144
} ,
@@ -124,7 +148,7 @@ describe('handler', () => {
124
148
it ( 'throws on failure to report a success' , async ( ) => {
125
149
const err = new Error ( 'mock-error' ) ;
126
150
127
- processEventMock . mockResolvedValue ( undefined ) ;
151
+ processMock . mockResolvedValue ( undefined ) ;
128
152
129
153
codeDeploy . on ( PutLifecycleEventHookExecutionStatusCommand ) . rejects ( err ) ;
130
154
@@ -134,7 +158,7 @@ describe('handler', () => {
134
158
`"Failed to report lifecycle event status"` ,
135
159
) ;
136
160
137
- expect ( processEventMock ) . toHaveBeenCalledTimes ( 1 ) ;
161
+ expect ( processMock ) . toHaveBeenCalledTimes ( 1 ) ;
138
162
139
163
expect ( codeDeploy ) . toHaveReceivedNthCommandWith (
140
164
1 ,
@@ -148,11 +172,16 @@ describe('handler', () => {
148
172
149
173
expect ( testLogs ) . toStrictEqual ( [
150
174
{
175
+ applicationName : 'beep' ,
151
176
awsRequestId : context . awsRequestId ,
177
+ deploymentId : 'mock-deployment-id' ,
152
178
err : expect . objectContaining ( { message : err . message } ) ,
153
179
level : 50 ,
154
180
msg : 'Failed to report lifecycle event status' ,
155
181
status : LifecycleEventStatus . SUCCEEDED ,
182
+ revision : {
183
+ string : { content : 'stuff' } ,
184
+ } ,
156
185
timestamp : expect . any ( String ) ,
157
186
} ,
158
187
] ) ;
@@ -166,15 +195,15 @@ describe('handler', () => {
166
195
. on ( PutLifecycleEventHookExecutionStatusCommand )
167
196
. rejects ( reportError ) ;
168
197
169
- processEventMock . mockRejectedValue ( processError ) ;
198
+ processMock . mockRejectedValue ( processError ) ;
170
199
171
200
await expect (
172
201
handler ( event , context ) ,
173
202
) . rejects . toThrowErrorMatchingInlineSnapshot (
174
203
`"Failed to report lifecycle event status"` ,
175
204
) ;
176
205
177
- expect ( processEventMock ) . toHaveBeenCalledTimes ( 1 ) ;
206
+ expect ( processMock ) . toHaveBeenCalledTimes ( 1 ) ;
178
207
179
208
expect ( codeDeploy ) . toHaveReceivedNthCommandWith (
180
209
1 ,
@@ -188,17 +217,27 @@ describe('handler', () => {
188
217
189
218
expect ( testLogs ) . toStrictEqual ( [
190
219
{
220
+ applicationName : 'beep' ,
191
221
awsRequestId : context . awsRequestId ,
222
+ deploymentId : 'mock-deployment-id' ,
192
223
err : expect . objectContaining ( { message : processError . message } ) ,
193
224
level : 50 ,
194
225
msg : 'Failed to process lifecycle event' ,
226
+ revision : {
227
+ string : { content : 'stuff' } ,
228
+ } ,
195
229
timestamp : expect . any ( String ) ,
196
230
} ,
197
231
{
232
+ applicationName : 'beep' ,
198
233
awsRequestId : context . awsRequestId ,
234
+ deploymentId : 'mock-deployment-id' ,
199
235
err : expect . objectContaining ( { message : reportError . message } ) ,
200
236
level : 50 ,
201
237
msg : 'Failed to report lifecycle event status' ,
238
+ revision : {
239
+ string : { content : 'stuff' } ,
240
+ } ,
202
241
status : LifecycleEventStatus . FAILED ,
203
242
timestamp : expect . any ( String ) ,
204
243
} ,
0 commit comments