UNPKG

kubricate

Version:

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

66 lines (64 loc) 2.25 kB
"use strict"; var _vitest = /*#__PURE__*/require("vitest"); var _core = /*#__PURE__*/require("@kubricate/core"); var _Stack = /*#__PURE__*/require("./Stack.js"); /* eslint-disable @typescript-eslint/no-explicit-any */ (0, _vitest.describe)('Stack', () => { (0, _vitest.it)('should call builder and set composer on .from()', () => { const mockComposer = {}; const builder = _vitest.vi.fn().mockReturnValue(mockComposer); const stack = new _Stack.Stack(builder); const result = stack.from({ project: 'example' }); (0, _vitest.expect)(builder).toHaveBeenCalledWith({ project: 'example' }); (0, _vitest.expect)(stack._composer).toBe(mockComposer); (0, _vitest.expect)(result).toBe(stack); }); (0, _vitest.it)('should set stack name when used with createStack()', () => { const mockComposer = {}; const builder = _vitest.vi.fn().mockReturnValue(mockComposer); const stack = (0, _Stack.createStack)('my-stack', builder).from({ foo: 'bar' }); (0, _vitest.expect)(stack._name).toBe('my-stack'); (0, _vitest.expect)(stack._composer).toBe(mockComposer); (0, _vitest.expect)(builder).toHaveBeenCalledWith({ foo: 'bar' }); }); (0, _vitest.it)('should build from a StackTemplate using fromTemplate()', () => { const template = (0, _core.defineStackTemplate)('hello', input => ({ ns: { apiVersion: 'v1', kind: 'Namespace', metadata: { name: input.name } } })); const stack = _Stack.Stack.fromTemplate(template, { name: 'my-ns' }); const built = stack.build(); (0, _vitest.expect)(stack._name).toBe('hello'); (0, _vitest.expect)(built.ns.metadata?.name).toBe('my-ns'); }); (0, _vitest.it)('should build from static resource using fromStatic()', () => { const stack = _Stack.Stack.fromStatic('static-stack', { configMap: { apiVersion: 'v1', kind: 'ConfigMap', metadata: { name: 'my-config' } } }); const built = stack.build(); (0, _vitest.expect)(stack._name).toBe('static-stack'); (0, _vitest.expect)(built.configMap.metadata?.name).toBe('my-config'); }); }); //# sourceMappingURL=Stack.test.js.map