UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

28 lines 3.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const evaluate_cloudformation_template_1 = require("../../lib/api/evaluate-cloudformation-template"); const mock_sdk_1 = require("../util/mock-sdk"); describe('Lazy ListStackResources', () => { test('correctly caches calls to the CloudFormation API', async () => { // GIVEN const listStackResMock = jest.fn(); const mockSdk = new mock_sdk_1.MockSdk(); mockSdk.stubCloudFormation({ listStackResources: listStackResMock, }); listStackResMock.mockReturnValue({ StackResourceSummaries: [], NextToken: undefined, }); const res = new evaluate_cloudformation_template_1.LazyListStackResources(mockSdk, 'StackName'); // WHEN void res.listStackResources(); void res.listStackResources(); void res.listStackResources(); const result = await res.listStackResources(); // THEN expect(result.length).toBe(0); expect(listStackResMock).toHaveBeenCalledTimes(1); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1saXN0LXN0YWNrLXJlc291cmNlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGF6eS1saXN0LXN0YWNrLXJlc291cmNlcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEscUdBQXdGO0FBQ3hGLCtDQUEyQztBQUUzQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFO0lBQ3ZDLElBQUksQ0FBQyxrREFBa0QsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNsRSxRQUFRO1FBQ1IsTUFBTSxnQkFBZ0IsR0FBeUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pJLE1BQU0sT0FBTyxHQUFHLElBQUksa0JBQU8sRUFBRSxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztZQUN6QixrQkFBa0IsRUFBRSxnQkFBZ0I7U0FDckMsQ0FBQyxDQUFDO1FBQ0gsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1lBQy9CLHNCQUFzQixFQUFFLEVBQUU7WUFDMUIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSx5REFBc0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0QsT0FBTztRQUNQLEtBQUssR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDOUIsS0FBSyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QixLQUFLLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFOUMsT0FBTztRQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvb3JkZXIgKi9cbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCB7IExhenlMaXN0U3RhY2tSZXNvdXJjZXMgfSBmcm9tICcuLi8uLi9saWIvYXBpL2V2YWx1YXRlLWNsb3VkZm9ybWF0aW9uLXRlbXBsYXRlJztcbmltcG9ydCB7IE1vY2tTZGsgfSBmcm9tICcuLi91dGlsL21vY2stc2RrJztcblxuZGVzY3JpYmUoJ0xhenkgTGlzdFN0YWNrUmVzb3VyY2VzJywgKCkgPT4ge1xuICB0ZXN0KCdjb3JyZWN0bHkgY2FjaGVzIGNhbGxzIHRvIHRoZSBDbG91ZEZvcm1hdGlvbiBBUEknLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBsaXN0U3RhY2tSZXNNb2NrOiBqZXN0Lk1vY2s8QVdTLkNsb3VkRm9ybWF0aW9uLkxpc3RTdGFja1Jlc291cmNlc091dHB1dCwgQVdTLkNsb3VkRm9ybWF0aW9uLkxpc3RTdGFja1Jlc291cmNlc0lucHV0W10+ID0gamVzdC5mbigpO1xuICAgIGNvbnN0IG1vY2tTZGsgPSBuZXcgTW9ja1NkaygpO1xuICAgIG1vY2tTZGsuc3R1YkNsb3VkRm9ybWF0aW9uKHtcbiAgICAgIGxpc3RTdGFja1Jlc291cmNlczogbGlzdFN0YWNrUmVzTW9jayxcbiAgICB9KTtcbiAgICBsaXN0U3RhY2tSZXNNb2NrLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICBTdGFja1Jlc291cmNlU3VtbWFyaWVzOiBbXSxcbiAgICAgIE5leHRUb2tlbjogdW5kZWZpbmVkLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlcyA9IG5ldyBMYXp5TGlzdFN0YWNrUmVzb3VyY2VzKG1vY2tTZGssICdTdGFja05hbWUnKTtcblxuICAgIC8vIFdIRU5cbiAgICB2b2lkIHJlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICB2b2lkIHJlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICB2b2lkIHJlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXMubGlzdFN0YWNrUmVzb3VyY2VzKCk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHJlc3VsdC5sZW5ndGgpLnRvQmUoMCk7XG4gICAgZXhwZWN0KGxpc3RTdGFja1Jlc01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG59KTtcbiJdfQ==