UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

28 lines 3.69 kB
"use strict"; 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=