Skip to content

Commit 59e4994

Browse files
committed
fix left overs
1 parent 0342de0 commit 59e4994

File tree

2 files changed

+37
-27
lines changed

2 files changed

+37
-27
lines changed

lambdas/functions/control-plane/src/lambda.test.ts

+30-24
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { captureLambdaHandler, logger } from '@aws-github-runner/aws-powertools-util';
22
import { Context, SQSEvent, SQSRecord } from 'aws-lambda';
3-
import { mocked } from 'jest-mock';
43

54
import { addMiddleware, adjustPool, scaleDownHandler, scaleUpHandler, ssmHousekeeper, jobRetryCheck } from './lambda';
65
import { adjust } from './pool/pool';
@@ -80,7 +79,7 @@ describe('Test scale up lambda wrapper.', () => {
8079
});
8180

8281
it('Scale without error should resolve.', async () => {
83-
const mock = mocked(scaleUp);
82+
const mock = vi.fn(scaleUp);
8483
mock.mockImplementation(() => {
8584
return new Promise((resolve) => {
8685
resolve();
@@ -91,21 +90,24 @@ describe('Test scale up lambda wrapper.', () => {
9190

9291
it('Non scale should resolve.', async () => {
9392
const error = new Error('Non scale should resolve.');
94-
const mock = mocked(scaleUp);
93+
const mock = vi.fn(scaleUp);
9594
mock.mockRejectedValue(error);
96-
await expect(scaleUpHandler(sqsEvent, context)).resolves.not.toThrow;
95+
await expect(scaleUpHandler(sqsEvent, context)).resolves.not.toThrow();
9796
});
9897

9998
it('Scale should be rejected', async () => {
10099
const error = new ScaleError('Scale should be rejected');
101-
const mock = mocked(scaleUp);
102-
mock.mockRejectedValue(error);
100+
const mock = vi.fn() as MockedFunction<typeof scaleUp>;
101+
mock.mockImplementation(() => {
102+
return Promise.reject(error);
103+
});
104+
vi.mocked(scaleUp).mockImplementation(mock);
103105
await expect(scaleUpHandler(sqsEvent, context)).rejects.toThrow(error);
104106
});
105107
});
106108

107109
async function testInvalidRecords(sqsRecords: SQSRecord[]) {
108-
const mock = mocked(scaleUp);
110+
const mock = vi.fn(scaleUp);
109111
const logWarnSpy = vi.spyOn(logger, 'warn');
110112
mock.mockImplementation(() => {
111113
return new Promise((resolve) => {
@@ -127,7 +129,7 @@ async function testInvalidRecords(sqsRecords: SQSRecord[]) {
127129

128130
describe('Test scale down lambda wrapper.', () => {
129131
it('Scaling down no error.', async () => {
130-
const mock = mocked(scaleDown);
132+
const mock = vi.fn(scaleDown);
131133
mock.mockImplementation(() => {
132134
return new Promise((resolve) => {
133135
resolve();
@@ -138,15 +140,15 @@ describe('Test scale down lambda wrapper.', () => {
138140

139141
it('Scaling down with error.', async () => {
140142
const error = new Error('Scaling down with error.');
141-
const mock = mocked(scaleDown);
143+
const mock = vi.fn(scaleDown);
142144
mock.mockRejectedValue(error);
143145
await expect(scaleDownHandler({}, context)).resolves.not.toThrow();
144146
});
145147
});
146148

147149
describe('Adjust pool.', () => {
148150
it('Receive message to adjust pool.', async () => {
149-
const mock = mocked(adjust);
151+
const mock = vi.fn(adjust);
150152
mock.mockImplementation(() => {
151153
return new Promise((resolve) => {
152154
resolve();
@@ -156,12 +158,15 @@ describe('Adjust pool.', () => {
156158
});
157159

158160
it('Handle error for adjusting pool.', async () => {
159-
const mock = mocked(adjust);
160161
const error = new Error('Handle error for adjusting pool.');
161-
mock.mockRejectedValue(error);
162+
const mock = vi.fn() as MockedFunction<typeof adjust>;
163+
mock.mockImplementation(() => {
164+
return Promise.reject(error);
165+
});
166+
vi.mocked(adjust).mockImplementation(mock);
162167
const logSpy = vi.spyOn(logger, 'error');
163168
await adjustPool({ poolSize: 0 }, context);
164-
expect(logSpy).lastCalledWith(expect.stringContaining(error.message), expect.anything());
169+
expect(logSpy).toHaveBeenCalledWith(`Handle error for adjusting pool. ${error.message}`, { error });
165170
});
166171
});
167172

@@ -175,7 +180,7 @@ describe('Test middleware', () => {
175180

176181
describe('Test ssm housekeeper lambda wrapper.', () => {
177182
it('Invoke without errors.', async () => {
178-
const mock = mocked(cleanSSMTokens);
183+
const mock = vi.fn(cleanSSMTokens);
179184
mock.mockImplementation(() => {
180185
return new Promise((resolve) => {
181186
resolve();
@@ -192,31 +197,32 @@ describe('Test ssm housekeeper lambda wrapper.', () => {
192197
});
193198

194199
it('Errors not throws.', async () => {
195-
const mock = mocked(cleanSSMTokens);
200+
const mock = vi.fn(cleanSSMTokens);
196201
mock.mockRejectedValue(new Error());
197202
await expect(ssmHousekeeper({}, context)).resolves.not.toThrow();
198203
});
199204
});
200205

201206
describe('Test job retry check wrapper', () => {
202207
it('Handle without error should resolve.', async () => {
203-
const mock = mocked(checkAndRetryJob);
208+
const mock = vi.fn() as MockedFunction<typeof checkAndRetryJob>;
204209
mock.mockImplementation(() => {
205-
return new Promise((resolve) => {
206-
resolve();
207-
});
210+
return Promise.resolve();
208211
});
212+
vi.mocked(checkAndRetryJob).mockImplementation(mock);
209213
await expect(jobRetryCheck(sqsEvent, context)).resolves.not.toThrow();
210214
});
211215

212216
it('Handle with error should resolve and log only a warning.', async () => {
213-
const logSpyWarn = vi.spyOn(logger, 'warn');
214-
215-
const mock = mocked(checkAndRetryJob);
216217
const error = new Error('Error handling retry check.');
217-
mock.mockRejectedValue(error);
218+
const mock = vi.fn() as MockedFunction<typeof checkAndRetryJob>;
219+
mock.mockImplementation(() => {
220+
return Promise.reject(error);
221+
});
222+
vi.mocked(checkAndRetryJob).mockImplementation(mock);
218223

224+
const logSpyWarn = vi.spyOn(logger, 'warn');
219225
await expect(jobRetryCheck(sqsEvent, context)).resolves.not.toThrow();
220-
expect(logSpyWarn).toHaveBeenCalledWith(expect.stringContaining(error.message), expect.anything());
226+
expect(logSpyWarn).toHaveBeenCalledWith(`Error processing job retry: ${error.message}`, { error });
221227
});
222228
});

lambdas/functions/control-plane/src/lambda.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,18 @@ export async function scaleUpHandler(event: SQSEvent, context: Context): Promise
1616

1717
if (event.Records.length !== 1) {
1818
logger.warn('Event ignored, only one record at the time can be handled, ensure the lambda batch size is set to 1.');
19-
return new Promise((resolve) => resolve());
19+
return Promise.resolve();
2020
}
2121

2222
try {
2323
await scaleUp(event.Records[0].eventSource, JSON.parse(event.Records[0].body));
24+
return Promise.resolve();
2425
} catch (e) {
2526
if (e instanceof ScaleError) {
26-
throw e;
27+
return Promise.reject(e);
2728
} else {
2829
logger.warn(`Ignoring error: ${e}`);
30+
return Promise.resolve();
2931
}
3032
}
3133
}
@@ -48,8 +50,9 @@ export async function adjustPool(event: PoolEvent, context: Context): Promise<vo
4850
try {
4951
await adjust(event);
5052
} catch (e) {
51-
logger.error(`${(e as Error).message}`, { error: e as Error });
53+
logger.error(`Handle error for adjusting pool. ${(e as Error).message}`, { error: e as Error });
5254
}
55+
return Promise.resolve();
5356
}
5457

5558
export const addMiddleware = () => {
@@ -86,4 +89,5 @@ export async function jobRetryCheck(event: SQSEvent, context: Context): Promise<
8689
logger.warn(`Error processing job retry: ${e.message}`, { error: e });
8790
});
8891
}
92+
return Promise.resolve();
8993
}

0 commit comments

Comments
 (0)