@sls-next/aws-lambda
Version:
Deploy Lambda functions to AWS in seconds with [Serverless Components](https://github.com/serverless/components). Utilizes layers for dependency management and S3 accelerated uploads for maximum upload speeds.
88 lines (76 loc) • 2.27 kB
text/typescript
import {
mockGetFunctionConfigurationPromise,
mockListVersionsByFunctionPromise,
mockGetFunctionConfiguration,
mockListVersionsByFunction,
mockDeleteFunction,
mockDeleteFunctionPromise
} from "../__mocks__/aws-sdk.mock";
import { removeLambdaVersions } from "../src/removeLambdaVersions";
import { jest } from "@jest/globals";
jest.mock("aws-sdk", () => require("../__mocks__/aws-sdk.mock"));
describe("publishVersion", () => {
it("removes all old lambda versions", async () => {
mockGetFunctionConfigurationPromise.mockResolvedValue({
FunctionName: "test-function",
Version: "4"
});
mockListVersionsByFunctionPromise.mockResolvedValue({
Versions: [
{
FunctionName: "test-function",
Version: "1"
},
{
FunctionName: "test-function",
Version: "2"
},
{
FunctionName: "test-function",
Version: "3"
},
{
FunctionName: "test-function",
Version: "4"
}
]
});
mockDeleteFunctionPromise.mockResolvedValueOnce(undefined);
mockDeleteFunctionPromise.mockResolvedValueOnce(undefined);
// Simulate last function couldn't be deleted, but it will not fail the process.
mockDeleteFunctionPromise.mockRejectedValueOnce({
message: "Mocked error"
});
await removeLambdaVersions(
{
debug: () => {
// intentionally empty
}
},
"test-function",
"us-east-1"
);
expect(mockDeleteFunction).toBeCalledWith({
FunctionName: "test-function",
Qualifier: "1"
});
expect(mockDeleteFunction).toBeCalledWith({
FunctionName: "test-function",
Qualifier: "2"
});
expect(mockDeleteFunction).toBeCalledWith({
FunctionName: "test-function",
Qualifier: "3"
});
expect(mockDeleteFunction).toBeCalledTimes(3);
expect(mockGetFunctionConfiguration).toBeCalledWith({
FunctionName: "test-function"
});
expect(mockGetFunctionConfiguration).toBeCalledTimes(1);
expect(mockListVersionsByFunction).toBeCalledWith({
FunctionName: "test-function",
MaxItems: 50
});
expect(mockListVersionsByFunction).toBeCalledTimes(1);
});
});