UNPKG

kubricate

Version:

A TypeScript framework for building reusable, type-safe Kubernetes infrastructure — without the YAML mess.

68 lines (66 loc) 2.96 kB
"use strict"; var _vitest = /*#__PURE__*/require("vitest"); var _SecretInjectionBuilder = /*#__PURE__*/require("./SecretInjectionBuilder.js"); var _SecretsInjectionContext = /*#__PURE__*/require("./SecretsInjectionContext.js"); /* eslint-disable @typescript-eslint/no-explicit-any */ (0, _vitest.describe)('SecretsInjectionContext', () => { let mockStack; let mockManager; // eslint-disable-next-line @typescript-eslint/no-unused-vars let builderInstance; (0, _vitest.beforeEach)(() => { mockStack = { registerSecretInjection: _vitest.vi.fn(), getComposer: _vitest.vi.fn().mockReturnValue({ findResourceIdsByKind: () => ['my-deployment'] }) }; builderInstance = { resolveInjection: _vitest.vi.fn() }; mockManager = { resolveProviderFor: _vitest.vi.fn().mockImplementation(key => ({ providerInstance: { supportedStrategies: ['env'], targetKind: 'Deployment', getTargetPath: _vitest.vi.fn(() => ['spec.template.spec.containers[0].env']) }, providerId: `provider-${key}` })) }; }); (0, _vitest.it)('should set the default resource ID', () => { const ctx = new _SecretsInjectionContext.SecretsInjectionContext(mockStack, mockManager, 99); ctx.setDefaultResourceId('default-deploy'); const result = ctx.secrets('MY_SECRET'); (0, _vitest.expect)(result['ctx'].defaultResourceId).toBe('default-deploy'); }); (0, _vitest.it)('should create a builder and push it to the list', () => { const ctx = new _SecretsInjectionContext.SecretsInjectionContext(mockStack, mockManager, 99); const builder = ctx.secrets('MY_SECRET'); (0, _vitest.expect)(builder).toBeInstanceOf(_SecretInjectionBuilder.SecretInjectionBuilder); (0, _vitest.expect)(ctx['builders']).toHaveLength(1); }); (0, _vitest.it)('should resolve all builder injections on resolveAll()', () => { const ctx = new _SecretsInjectionContext.SecretsInjectionContext(mockStack, mockManager, 99); // Monkey patch builder manually to test call propagation const builder1 = { resolveInjection: _vitest.vi.fn() }; const builder2 = { resolveInjection: _vitest.vi.fn() }; ctx['builders'].push(builder1, builder2); ctx.resolveAll(); (0, _vitest.expect)(builder1.resolveInjection).toHaveBeenCalled(); (0, _vitest.expect)(builder2.resolveInjection).toHaveBeenCalled(); }); (0, _vitest.it)('builder returned by .secrets() should include correct context and provider', () => { const ctx = new _SecretsInjectionContext.SecretsInjectionContext(mockStack, mockManager, 88); const builder = ctx.secrets('MY_SECRET'); (0, _vitest.expect)(builder['secretName']).toBe('MY_SECRET'); (0, _vitest.expect)(builder['ctx'].secretManagerId).toBe(88); (0, _vitest.expect)(builder['ctx'].providerId).toBe('provider-MY_SECRET'); }); }); //# sourceMappingURL=SecretsInjectionContext.test.js.map