UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

75 lines 9.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const plugin_1 = require("../../../lib/api/plugin"); (0, plugin_1.markTesting)(); beforeEach(() => { jest.resetModules(); }); const THE_PLUGIN = 'the-plugin'; test('load a plugin using the PluginHost', () => { const host = new plugin_1.PluginHost(); jest.mock(THE_PLUGIN, () => { return { version: '1', init() { }, }; }, { virtual: true }); host.load(THE_PLUGIN); }); test('fail to load a plugin using the PluginHost', () => { const host = new plugin_1.PluginHost(); // This is not a plugin jest.mock(THE_PLUGIN, () => { return {}; }, { virtual: true }); expect(() => host.load(THE_PLUGIN)).toThrow(/Unable to load plug-in/); }); test('plugin that registers a Credential Provider', () => { const host = new plugin_1.PluginHost(); jest.mock(THE_PLUGIN, () => { return { version: '1', init(h) { h.registerCredentialProviderSource({ canProvideCredentials() { return Promise.resolve(false); }, name: 'test', isAvailable() { return Promise.resolve(false); }, getProvider() { return Promise.reject('Dont call me'); }, }); }, }; }, { virtual: true }); host.load(THE_PLUGIN); expect(host.credentialProviderSources).toHaveLength(1); }); test('plugin that registers a Context Provider', () => { const host = new plugin_1.PluginHost(); jest.mock(THE_PLUGIN, () => { return { version: '1', init(h) { h.registerContextProviderAlpha('name', { getValue(_args) { return Promise.resolve('asdf'); }, }); }, }; }, { virtual: true }); host.load(THE_PLUGIN); expect(Object.keys(host.contextProviderPlugins)).toHaveLength(1); }); test('plugin that registers an invalid Context Provider throws', () => { const host = new plugin_1.PluginHost(); jest.mock(THE_PLUGIN, () => { return { version: '1', init(h) { h.registerContextProviderAlpha('name', {}); }, }; }, { virtual: true }); expect(() => host.load(THE_PLUGIN)).toThrow(/does not look like a ContextProviderPlugin/); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWhvc3QudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBsdWdpbi1ob3N0LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxvREFBeUY7QUFFekYsSUFBQSxvQkFBVyxHQUFFLENBQUM7QUFFZCxVQUFVLENBQUMsR0FBRyxFQUFFO0lBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBRWhDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7SUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxtQkFBVSxFQUFFLENBQUM7SUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLE9BQU87WUFDTCxPQUFPLEVBQUUsR0FBRztZQUNaLElBQUk7WUFDSixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELE1BQU0sSUFBSSxHQUFHLElBQUksbUJBQVUsRUFBRSxDQUFDO0lBRTlCLHVCQUF1QjtJQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7UUFDekIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV0QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtJQUN2RCxNQUFNLElBQUksR0FBRyxJQUFJLG1CQUFVLEVBQUUsQ0FBQztJQUU5QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7UUFDekIsT0FBTztZQUNMLE9BQU8sRUFBRSxHQUFHO1lBQ1osSUFBSSxDQUFDLENBQWE7Z0JBQ2hCLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDakMscUJBQXFCLEtBQUssT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxFQUFFLE1BQU07b0JBQ1osV0FBVyxLQUFLLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hELFdBQVcsS0FBSyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0QixDQUFDLENBQUM7WUFFeEMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO0lBQ3BELE1BQU0sSUFBSSxHQUFHLElBQUksbUJBQVUsRUFBRSxDQUFDO0lBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtRQUN6QixPQUFPO1lBQ0wsT0FBTyxFQUFFLEdBQUc7WUFDWixJQUFJLENBQUMsQ0FBYTtnQkFDaEIsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLE1BQU0sRUFBRTtvQkFDckMsUUFBUSxDQUFDLEtBQTBCO3dCQUNqQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pDLENBQUM7aUJBQzhCLENBQUMsQ0FBQztZQUNyQyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLElBQUksbUJBQVUsRUFBRSxDQUFDO0lBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtRQUN6QixPQUFPO1lBQ0wsT0FBTyxFQUFFLEdBQUc7WUFDWixJQUFJLENBQUMsQ0FBYTtnQkFDaEIsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxFQUFTLENBQUMsQ0FBQztZQUNwRCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFDNUYsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENyZWRlbnRpYWxQcm92aWRlclNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2NsaS1wbHVnaW4tY29udHJhY3QnO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luLCBQbHVnaW5Ib3N0LCBtYXJrVGVzdGluZyB9IGZyb20gJy4uLy4uLy4uL2xpYi9hcGkvcGx1Z2luJztcblxubWFya1Rlc3RpbmcoKTtcblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIGplc3QucmVzZXRNb2R1bGVzKCk7XG59KTtcblxuY29uc3QgVEhFX1BMVUdJTiA9ICd0aGUtcGx1Z2luJztcblxudGVzdCgnbG9hZCBhIHBsdWdpbiB1c2luZyB0aGUgUGx1Z2luSG9zdCcsICgpID0+IHtcbiAgY29uc3QgaG9zdCA9IG5ldyBQbHVnaW5Ib3N0KCk7XG5cbiAgamVzdC5tb2NrKFRIRV9QTFVHSU4sICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbjogJzEnLFxuICAgICAgaW5pdCgpIHtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSwgeyB2aXJ0dWFsOiB0cnVlIH0pO1xuXG4gIGhvc3QubG9hZChUSEVfUExVR0lOKTtcbn0pO1xuXG50ZXN0KCdmYWlsIHRvIGxvYWQgYSBwbHVnaW4gdXNpbmcgdGhlIFBsdWdpbkhvc3QnLCAoKSA9PiB7XG4gIGNvbnN0IGhvc3QgPSBuZXcgUGx1Z2luSG9zdCgpO1xuXG4gIC8vIFRoaXMgaXMgbm90IGEgcGx1Z2luXG4gIGplc3QubW9jayhUSEVfUExVR0lOLCAoKSA9PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9LCB7IHZpcnR1YWw6IHRydWUgfSk7XG5cbiAgZXhwZWN0KCgpID0+IGhvc3QubG9hZChUSEVfUExVR0lOKSkudG9UaHJvdygvVW5hYmxlIHRvIGxvYWQgcGx1Zy1pbi8pO1xufSk7XG5cbnRlc3QoJ3BsdWdpbiB0aGF0IHJlZ2lzdGVycyBhIENyZWRlbnRpYWwgUHJvdmlkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGhvc3QgPSBuZXcgUGx1Z2luSG9zdCgpO1xuXG4gIGplc3QubW9jayhUSEVfUExVR0lOLCAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246ICcxJyxcbiAgICAgIGluaXQoaDogUGx1Z2luSG9zdCkge1xuICAgICAgICBoLnJlZ2lzdGVyQ3JlZGVudGlhbFByb3ZpZGVyU291cmNlKHtcbiAgICAgICAgICBjYW5Qcm92aWRlQ3JlZGVudGlhbHMoKSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpOyB9LFxuICAgICAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgICAgICBpc0F2YWlsYWJsZSgpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7IH0sXG4gICAgICAgICAgZ2V0UHJvdmlkZXIoKSB7IHJldHVybiBQcm9taXNlLnJlamVjdCgnRG9udCBjYWxsIG1lJyk7IH0sXG4gICAgICAgIH0gc2F0aXNmaWVzIENyZWRlbnRpYWxQcm92aWRlclNvdXJjZSk7XG5cbiAgICAgIH0sXG4gICAgfTtcbiAgfSwgeyB2aXJ0dWFsOiB0cnVlIH0pO1xuXG4gIGhvc3QubG9hZChUSEVfUExVR0lOKTtcblxuICBleHBlY3QoaG9zdC5jcmVkZW50aWFsUHJvdmlkZXJTb3VyY2VzKS50b0hhdmVMZW5ndGgoMSk7XG59KTtcblxudGVzdCgncGx1Z2luIHRoYXQgcmVnaXN0ZXJzIGEgQ29udGV4dCBQcm92aWRlcicsICgpID0+IHtcbiAgY29uc3QgaG9zdCA9IG5ldyBQbHVnaW5Ib3N0KCk7XG5cbiAgamVzdC5tb2NrKFRIRV9QTFVHSU4sICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbjogJzEnLFxuICAgICAgaW5pdChoOiBQbHVnaW5Ib3N0KSB7XG4gICAgICAgIGgucmVnaXN0ZXJDb250ZXh0UHJvdmlkZXJBbHBoYSgnbmFtZScsIHtcbiAgICAgICAgICBnZXRWYWx1ZShfYXJnczogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgnYXNkZicpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0gc2F0aXNmaWVzIENvbnRleHRQcm92aWRlclBsdWdpbik7XG4gICAgICB9LFxuICAgIH07XG4gIH0sIHsgdmlydHVhbDogdHJ1ZSB9KTtcblxuICBob3N0LmxvYWQoVEhFX1BMVUdJTik7XG5cbiAgZXhwZWN0KE9iamVjdC5rZXlzKGhvc3QuY29udGV4dFByb3ZpZGVyUGx1Z2lucykpLnRvSGF2ZUxlbmd0aCgxKTtcbn0pO1xuXG50ZXN0KCdwbHVnaW4gdGhhdCByZWdpc3RlcnMgYW4gaW52YWxpZCBDb250ZXh0IFByb3ZpZGVyIHRocm93cycsICgpID0+IHtcbiAgY29uc3QgaG9zdCA9IG5ldyBQbHVnaW5Ib3N0KCk7XG5cbiAgamVzdC5tb2NrKFRIRV9QTFVHSU4sICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbjogJzEnLFxuICAgICAgaW5pdChoOiBQbHVnaW5Ib3N0KSB7XG4gICAgICAgIGgucmVnaXN0ZXJDb250ZXh0UHJvdmlkZXJBbHBoYSgnbmFtZScsIHt9IGFzIGFueSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sIHsgdmlydHVhbDogdHJ1ZSB9KTtcblxuICBleHBlY3QoKCkgPT4gaG9zdC5sb2FkKFRIRV9QTFVHSU4pKS50b1Rocm93KC9kb2VzIG5vdCBsb29rIGxpa2UgYSBDb250ZXh0UHJvdmlkZXJQbHVnaW4vKTtcbn0pO1xuIl19