Skip to content

Commit e7a0433

Browse files
correct lint and typecheck errors
1 parent 98d5fb2 commit e7a0433

1 file changed

Lines changed: 52 additions & 62 deletions

File tree

lambdas/supplier-mock/src/__tests__/supplier-mock.test.ts

Lines changed: 52 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,19 @@ function makeDeps(): Deps {
2222
ssmClient: {
2323
send: jest.fn(),
2424
} as unknown as Deps["ssmClient"],
25-
} as Deps;
25+
};
26+
}
27+
28+
function getSsmSendMock(deps: Deps): jest.Mock {
29+
return deps.ssmClient.send as unknown as jest.Mock;
30+
}
31+
32+
function getLambdaSendMock(deps: Deps): jest.Mock {
33+
return deps.lambdaClient.send as unknown as jest.Mock;
34+
}
35+
36+
function getLogErrorMock(deps: Deps): jest.Mock {
37+
return deps.logger.error as unknown as jest.Mock;
2638
}
2739

2840
describe("Supplier Mock Lambda", () => {
@@ -32,13 +44,11 @@ describe("Supplier Mock Lambda", () => {
3244

3345
it("invokes get letters and patch letter successfully", async () => {
3446
const deps = makeDeps();
35-
const ssmSend = jest
36-
.mocked(deps.ssmClient.send)
47+
const ssmSend = getSsmSendMock(deps)
3748
.mockResolvedValueOnce({ Parameter: { Value: "250" } })
3849
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
3950

40-
const lambdaSend = jest
41-
.mocked(deps.lambdaClient.send)
51+
const lambdaSend = getLambdaSendMock(deps)
4252
.mockResolvedValueOnce({
4353
Payload: Buffer.from(
4454
JSON.stringify({
@@ -118,21 +128,18 @@ describe("Supplier Mock Lambda", () => {
118128

119129
it("falls back to default limit and supplier id when parameter values are empty", async () => {
120130
const deps = makeDeps();
121-
const ssmSend = jest
122-
.mocked(deps.ssmClient.send)
131+
const ssmSend = getSsmSendMock(deps)
123132
.mockResolvedValueOnce({ Parameter: { Value: "1" } })
124133
.mockResolvedValueOnce({ Parameter: { Value: "" } });
125134

126-
const lambdaSend = jest
127-
.mocked(deps.lambdaClient.send)
128-
.mockResolvedValueOnce({
129-
Payload: Buffer.from(
130-
JSON.stringify({
131-
statusCode: 200,
132-
body: JSON.stringify({ data: [] }),
133-
}),
134-
),
135-
});
135+
const lambdaSend = getLambdaSendMock(deps).mockResolvedValueOnce({
136+
Payload: Buffer.from(
137+
JSON.stringify({
138+
statusCode: 200,
139+
body: JSON.stringify({ data: [] }),
140+
}),
141+
),
142+
});
136143

137144
const handler = createHandler(deps);
138145
await expect(handler()).resolves.toBeUndefined();
@@ -152,49 +159,44 @@ describe("Supplier Mock Lambda", () => {
152159
it("throws when reading limit parameter fails", async () => {
153160
const deps = makeDeps();
154161
const ssmError = new Error("SSM unavailable");
155-
jest.mocked(deps.ssmClient.send).mockRejectedValueOnce(ssmError);
162+
getSsmSendMock(deps).mockRejectedValueOnce(ssmError);
156163

157164
const handler = createHandler(deps);
158165
await expect(handler()).rejects.toThrow("SSM unavailable");
159-
expect(jest.mocked(deps.logger.error)).toHaveBeenCalled();
166+
expect(getLogErrorMock(deps)).toHaveBeenCalled();
160167
});
161168

162169
it("throws when reading supplier id parameter fails", async () => {
163170
const deps = makeDeps();
164-
jest
165-
.mocked(deps.ssmClient.send)
171+
getSsmSendMock(deps)
166172
.mockResolvedValueOnce({ Parameter: { Value: "250" } })
167173
.mockRejectedValueOnce(new Error("Supplier parameter not found"));
168174

169175
const handler = createHandler(deps);
170176
await expect(handler()).rejects.toThrow("Supplier parameter not found");
171-
expect(jest.mocked(deps.logger.error)).toHaveBeenCalled();
177+
expect(getLogErrorMock(deps)).toHaveBeenCalled();
172178
});
173179

174180
it("throws when invoking get letters fails", async () => {
175181
const deps = makeDeps();
176-
jest
177-
.mocked(deps.ssmClient.send)
182+
getSsmSendMock(deps)
178183
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
179184
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
180185

181-
jest
182-
.mocked(deps.lambdaClient.send)
183-
.mockRejectedValueOnce(new Error("Invoke failed"));
186+
getLambdaSendMock(deps).mockRejectedValueOnce(new Error("Invoke failed"));
184187

185188
const handler = createHandler(deps);
186189
await expect(handler()).rejects.toThrow("Invoke failed");
187-
expect(jest.mocked(deps.logger.error)).toHaveBeenCalled();
190+
expect(getLogErrorMock(deps)).toHaveBeenCalled();
188191
});
189192

190193
it("throws when get letters lambda returns function error", async () => {
191194
const deps = makeDeps();
192-
jest
193-
.mocked(deps.ssmClient.send)
195+
getSsmSendMock(deps)
194196
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
195197
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
196198

197-
jest.mocked(deps.lambdaClient.send).mockResolvedValueOnce({
199+
getLambdaSendMock(deps).mockResolvedValueOnce({
198200
FunctionError: "Unhandled",
199201
Payload: Buffer.from(JSON.stringify({ statusCode: 200, body: "{}" })),
200202
});
@@ -207,12 +209,11 @@ describe("Supplier Mock Lambda", () => {
207209

208210
it("throws when get letters lambda returns non-200 status", async () => {
209211
const deps = makeDeps();
210-
jest
211-
.mocked(deps.ssmClient.send)
212+
getSsmSendMock(deps)
212213
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
213214
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
214215

215-
jest.mocked(deps.lambdaClient.send).mockResolvedValueOnce({
216+
getLambdaSendMock(deps).mockResolvedValueOnce({
216217
Payload: Buffer.from(JSON.stringify({ statusCode: 500, body: "{}" })),
217218
});
218219

@@ -224,12 +225,11 @@ describe("Supplier Mock Lambda", () => {
224225

225226
it("throws when get letters lambda response has no payload", async () => {
226227
const deps = makeDeps();
227-
jest
228-
.mocked(deps.ssmClient.send)
228+
getSsmSendMock(deps)
229229
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
230230
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
231231

232-
jest.mocked(deps.lambdaClient.send).mockResolvedValueOnce({});
232+
getLambdaSendMock(deps).mockResolvedValueOnce({});
233233

234234
const handler = createHandler(deps);
235235
await expect(handler()).rejects.toThrow(
@@ -239,13 +239,11 @@ describe("Supplier Mock Lambda", () => {
239239

240240
it("throws when invoking patch letter fails", async () => {
241241
const deps = makeDeps();
242-
jest
243-
.mocked(deps.ssmClient.send)
242+
getSsmSendMock(deps)
244243
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
245244
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
246245

247-
jest
248-
.mocked(deps.lambdaClient.send)
246+
getLambdaSendMock(deps)
249247
.mockResolvedValueOnce({
250248
Payload: Buffer.from(
251249
JSON.stringify({
@@ -260,18 +258,16 @@ describe("Supplier Mock Lambda", () => {
260258

261259
const handler = createHandler(deps);
262260
await expect(handler()).rejects.toThrow("Patch invoke failed");
263-
expect(jest.mocked(deps.logger.error)).toHaveBeenCalled();
261+
expect(getLogErrorMock(deps)).toHaveBeenCalled();
264262
});
265263

266264
it("throws when patch letter lambda returns function error", async () => {
267265
const deps = makeDeps();
268-
jest
269-
.mocked(deps.ssmClient.send)
266+
getSsmSendMock(deps)
270267
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
271268
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
272269

273-
jest
274-
.mocked(deps.lambdaClient.send)
270+
getLambdaSendMock(deps)
275271
.mockResolvedValueOnce({
276272
Payload: Buffer.from(
277273
JSON.stringify({
@@ -291,18 +287,16 @@ describe("Supplier Mock Lambda", () => {
291287
await expect(handler()).rejects.toThrow(
292288
"patch_letter lambda invocation failed for letter letter-3",
293289
);
294-
expect(jest.mocked(deps.logger.error)).toHaveBeenCalled();
290+
expect(getLogErrorMock(deps)).toHaveBeenCalled();
295291
});
296292

297293
it("throws when patch letter lambda returns function error without payload", async () => {
298294
const deps = makeDeps();
299-
jest
300-
.mocked(deps.ssmClient.send)
295+
getSsmSendMock(deps)
301296
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
302297
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
303298

304-
jest
305-
.mocked(deps.lambdaClient.send)
299+
getLambdaSendMock(deps)
306300
.mockResolvedValueOnce({
307301
Payload: Buffer.from(
308302
JSON.stringify({
@@ -321,21 +315,18 @@ describe("Supplier Mock Lambda", () => {
321315
await expect(handler()).rejects.toThrow(
322316
"patch_letter lambda invocation failed for letter letter-4",
323317
);
324-
expect(jest.mocked(deps.logger.error)).toHaveBeenCalled();
318+
expect(getLogErrorMock(deps)).toHaveBeenCalled();
325319
});
326320

327321
it("handles get letters response with no body by returning no letters", async () => {
328322
const deps = makeDeps();
329-
jest
330-
.mocked(deps.ssmClient.send)
323+
getSsmSendMock(deps)
331324
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
332325
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
333326

334-
const lambdaSend = jest
335-
.mocked(deps.lambdaClient.send)
336-
.mockResolvedValueOnce({
337-
Payload: Buffer.from(JSON.stringify({ statusCode: 200 })),
338-
});
327+
const lambdaSend = getLambdaSendMock(deps).mockResolvedValueOnce({
328+
Payload: Buffer.from(JSON.stringify({ statusCode: 200 })),
329+
});
339330

340331
const handler = createHandler(deps);
341332
await expect(handler()).resolves.toBeUndefined();
@@ -344,12 +335,11 @@ describe("Supplier Mock Lambda", () => {
344335

345336
it("sends the expected parameter names to SSM", async () => {
346337
const deps = makeDeps();
347-
const ssmSend = jest
348-
.mocked(deps.ssmClient.send)
338+
const ssmSend = getSsmSendMock(deps)
349339
.mockResolvedValueOnce({ Parameter: { Value: "200" } })
350340
.mockResolvedValueOnce({ Parameter: { Value: "SupplierA" } });
351341

352-
jest.mocked(deps.lambdaClient.send).mockResolvedValueOnce({
342+
getLambdaSendMock(deps).mockResolvedValueOnce({
353343
Payload: Buffer.from(
354344
JSON.stringify({
355345
statusCode: 200,

0 commit comments

Comments
 (0)