@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
28 lines • 3.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.waitForLambdaUpdateComplete = waitForLambdaUpdateComplete;
const client_lambda_1 = require("@aws-sdk/client-lambda");
const lib_1 = require("../../../lib");
async function waitForLambdaUpdateComplete(fixture, functionName) {
const delaySeconds = 5;
const timeout = 30_000; // timeout after 30s
const deadline = Date.now() + timeout;
while (true) {
const response = await fixture.aws.lambda.send(new client_lambda_1.GetFunctionCommand({
FunctionName: functionName,
}));
const lastUpdateStatus = response.Configuration?.LastUpdateStatus;
if (lastUpdateStatus === 'Successful') {
return; // Update completed successfully
}
if (lastUpdateStatus === 'Failed') {
throw new Error('Lambda function update failed');
}
if (Date.now() > deadline) {
throw new Error(`Timed out after ${timeout / 1000} seconds.`);
}
// Wait before checking again
await (0, lib_1.sleep)(delaySeconds * 1000);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnRfaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRyaWZ0X2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxrRUE2QkM7QUFoQ0QsMERBQTREO0FBQzVELHNDQUFxQztBQUU5QixLQUFLLFVBQVUsMkJBQTJCLENBQUMsT0FBWSxFQUFFLFlBQW9CO0lBQ2xGLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztJQUN2QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxvQkFBb0I7SUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV0QyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzVDLElBQUksa0NBQWtCLENBQUM7WUFDckIsWUFBWSxFQUFFLFlBQVk7U0FDM0IsQ0FBQyxDQUNILENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUM7UUFFbEUsSUFBSSxnQkFBZ0IsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUN0QyxPQUFPLENBQUMsZ0NBQWdDO1FBQzFDLENBQUM7UUFFRCxJQUFJLGdCQUFnQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixNQUFNLElBQUEsV0FBSyxFQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldEZ1bmN0aW9uQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEnO1xuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckxhbWJkYVVwZGF0ZUNvbXBsZXRlKGZpeHR1cmU6IGFueSwgZnVuY3Rpb25OYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGVsYXlTZWNvbmRzID0gNTtcbiAgY29uc3QgdGltZW91dCA9IDMwXzAwMDsgLy8gdGltZW91dCBhZnRlciAzMHNcbiAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgdGltZW91dDtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZml4dHVyZS5hd3MubGFtYmRhLnNlbmQoXG4gICAgICBuZXcgR2V0RnVuY3Rpb25Db21tYW5kKHtcbiAgICAgICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3QgbGFzdFVwZGF0ZVN0YXR1cyA9IHJlc3BvbnNlLkNvbmZpZ3VyYXRpb24/Lkxhc3RVcGRhdGVTdGF0dXM7XG5cbiAgICBpZiAobGFzdFVwZGF0ZVN0YXR1cyA9PT0gJ1N1Y2Nlc3NmdWwnKSB7XG4gICAgICByZXR1cm47IC8vIFVwZGF0ZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgfVxuXG4gICAgaWYgKGxhc3RVcGRhdGVTdGF0dXMgPT09ICdGYWlsZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xhbWJkYSBmdW5jdGlvbiB1cGRhdGUgZmFpbGVkJyk7XG4gICAgfVxuXG4gICAgaWYgKERhdGUubm93KCkgPiBkZWFkbGluZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaW1lZCBvdXQgYWZ0ZXIgJHt0aW1lb3V0IC8gMTAwMH0gc2Vjb25kcy5gKTtcbiAgICB9XG5cbiAgICAvLyBXYWl0IGJlZm9yZSBjaGVja2luZyBhZ2FpblxuICAgIGF3YWl0IHNsZWVwKGRlbGF5U2Vjb25kcyAqIDEwMDApO1xuICB9XG59XG4iXX0=