@digital-alchemy/core 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ import { ApplicationDefinition, ModuleConfiguration, ServiceMap } from "..";
2
+ declare module ".." {
3
+ interface LoadedModules {
4
+ testing_app: ApplicationDefinition<ServiceMap, ModuleConfiguration>;
5
+ }
6
+ }
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const __1 = require("../..");
4
+ const __2 = require("..");
5
+ const _1 = require(".");
6
+ describe("Cache", () => {
7
+ let application;
8
+ let cache;
9
+ let failFastSpy;
10
+ afterEach(async () => {
11
+ if (application) {
12
+ if (application.booted) {
13
+ await application.teardown();
14
+ }
15
+ application = undefined;
16
+ }
17
+ jest.restoreAllMocks();
18
+ __1.ZCC_Testing.WiringReset();
19
+ });
20
+ beforeEach(async () => {
21
+ failFastSpy = jest
22
+ .spyOn(__1.ZCC_Testing, "FailFast")
23
+ .mockImplementation(() => { });
24
+ application = (0, _1.CreateApplication)({
25
+ name: "testing_app",
26
+ services: {},
27
+ });
28
+ await application.bootstrap();
29
+ cache = __1.ZCC.cache;
30
+ });
31
+ afterEach(async () => {
32
+ if (application) {
33
+ await application.teardown();
34
+ application = undefined;
35
+ __1.ZCC_Testing.WiringReset();
36
+ }
37
+ expect(failFastSpy).not.toHaveBeenCalled();
38
+ jest.restoreAllMocks();
39
+ if (cache) {
40
+ cache = undefined;
41
+ }
42
+ });
43
+ describe("set Method", () => {
44
+ it("should successfully set a value in the cache", async () => {
45
+ const key = "testKey";
46
+ const value = "testValue";
47
+ await cache.set(key, value);
48
+ const result = await cache.get(key);
49
+ expect(result).toEqual(value);
50
+ });
51
+ it("should overwrite existing value with the same key", async () => {
52
+ const key = "testKey";
53
+ const value1 = "value1";
54
+ const value2 = "value2";
55
+ await cache.set(key, value1);
56
+ await cache.set(key, value2);
57
+ const result = await cache.get(key);
58
+ expect(result).toEqual(value2);
59
+ });
60
+ it("should respect the TTL for a cached item", async () => {
61
+ const key = "tempKey";
62
+ const value = "tempValue";
63
+ const ttl = 1; // Time-to-live in seconds
64
+ await cache.set(key, value, ttl);
65
+ // Wait for the TTL to expire
66
+ await new Promise(resolve => setTimeout(resolve, 1100));
67
+ const result = await cache.get(key);
68
+ expect(result).toBeUndefined();
69
+ });
70
+ });
71
+ describe("get Method", () => {
72
+ it("should retrieve the correct value for an existing key", async () => {
73
+ const key = "existingKey";
74
+ const expectedValue = "storedValue";
75
+ await cache.set(key, expectedValue);
76
+ const result = await cache.get(key);
77
+ expect(result).toEqual(expectedValue);
78
+ });
79
+ it("should return the default value for a non-existing key", async () => {
80
+ const defaultValue = "default";
81
+ const result = await cache.get("nonExistingKey", defaultValue);
82
+ expect(result).toEqual(defaultValue);
83
+ });
84
+ it("should return undefined for a non-existing key when no default value is provided", async () => {
85
+ const result = await cache.get("nonExistingKey");
86
+ expect(result).toBeUndefined();
87
+ });
88
+ it("should handle different types for the default value", async () => {
89
+ const key = "nonExistingKey";
90
+ const defaultValue = 123;
91
+ const result = await cache.get(key, defaultValue);
92
+ expect(result).toBe(defaultValue);
93
+ });
94
+ const defaultValue = "defaultValue";
95
+ it("should return the actual value when it is false", async () => {
96
+ const key = "keyWithFalse";
97
+ const falseValue = false;
98
+ await cache.set(key, falseValue);
99
+ const result = await cache.get(key, defaultValue);
100
+ expect(result).toBe(falseValue);
101
+ });
102
+ it("should return the actual value when it is 0", async () => {
103
+ const key = "keyWithZero";
104
+ const zeroValue = 0;
105
+ await cache.set(key, zeroValue);
106
+ const result = await cache.get(key, defaultValue);
107
+ expect(result).toBe(zeroValue);
108
+ });
109
+ it("should return the actual value when it is an empty string", async () => {
110
+ const key = "keyWithEmptyString";
111
+ const emptyStringValue = "";
112
+ await cache.set(key, emptyStringValue);
113
+ const result = await cache.get(key, defaultValue);
114
+ expect(result).toBe(emptyStringValue);
115
+ });
116
+ it("should return the actual value when it is null", async () => {
117
+ const key = "keyWithNull";
118
+ const nullValue = null;
119
+ await cache.set(key, nullValue);
120
+ const result = await cache.get(key, defaultValue);
121
+ expect(result).toBe(nullValue);
122
+ });
123
+ it("should return the default value for a key that is not set in the cache (undefined)", async () => {
124
+ const key = "keyNotSet";
125
+ const defaultValue = "defaultValue";
126
+ // No value is set for 'keyNotSet'
127
+ const result = await cache.get(key, defaultValue);
128
+ expect(result).toEqual(defaultValue); // Expecting the default value as the key is not set in the cache
129
+ });
130
+ it("should return the default value for a non-existing key, regardless of its type", async () => {
131
+ const defaultStringValue = "defaultString";
132
+ const defaultNumberValue = 42;
133
+ const defaultObjectValue = { default: "object" };
134
+ const resultString = await cache.get("nonExistingStringKey", defaultStringValue);
135
+ const resultNumber = await cache.get("nonExistingNumberKey", defaultNumberValue);
136
+ const resultObject = await cache.get("nonExistingObjectKey", defaultObjectValue);
137
+ expect(resultString).toEqual(defaultStringValue);
138
+ expect(resultNumber).toEqual(defaultNumberValue);
139
+ expect(resultObject).toEqual(defaultObjectValue);
140
+ });
141
+ });
142
+ describe("del Method", () => {
143
+ it("should successfully delete an existing key from the cache", async () => {
144
+ const key = "keyToDelete";
145
+ await cache.set(key, "value");
146
+ await cache.del(key);
147
+ const result = await cache.get(key);
148
+ expect(result).toBeUndefined();
149
+ });
150
+ it("should confirm that a non-existing key is not in the cache after a delete operation", async () => {
151
+ const nonExistingKey = "nonExistingKey";
152
+ // Initial check to confirm the key is not already in the cache
153
+ const initialResult = await cache.get(nonExistingKey);
154
+ expect(initialResult).toBeUndefined();
155
+ await cache.del(nonExistingKey);
156
+ // Recheck to confirm the key is still not in the cache
157
+ const finalResult = await cache.get(nonExistingKey);
158
+ expect(finalResult).toBeUndefined();
159
+ });
160
+ it("should handle deletion of a key with a falsey value correctly", async () => {
161
+ const falseyKey = "falseyKey";
162
+ await cache.set(falseyKey, 0); // Or other falsey values like '', false, null
163
+ await cache.del(falseyKey);
164
+ const result = await cache.get(falseyKey);
165
+ expect(result).toBeUndefined();
166
+ });
167
+ });
168
+ // TODO: FIXME
169
+ // Something wonky is happening
170
+ describe.skip("keys Method", () => {
171
+ // it("should return all keys in the cache when no pattern is provided", async () => {
172
+ // // Setting up multiple keys in the cache
173
+ // await cache.set("key1", "value1");
174
+ // await cache.set("key2", "value2");
175
+ // await cache.set("key3", "value3");
176
+ // const allKeys = await cache.keys();
177
+ // expect(allKeys).toContain("key1");
178
+ // expect(allKeys).toContain("key2");
179
+ // expect(allKeys).toContain("key3");
180
+ // });
181
+ // it("should return keys matching a specific pattern", async () => {
182
+ // // Setting up keys, some of which match a pattern
183
+ // await cache.set("match1", "value1");
184
+ // await cache.set("match2", "value2");
185
+ // await cache.set("noMatch", "value3");
186
+ // const matchedKeys = await cache.keys("match*");
187
+ // expect(matchedKeys).toContain("match1");
188
+ // expect(matchedKeys).toContain("match2");
189
+ // expect(matchedKeys).not.toContain("noMatch");
190
+ // });
191
+ it("should return an empty array if no keys match the pattern", async () => {
192
+ // Assuming the cache is clear or the pattern is very unique
193
+ const noMatchKeys = await cache.keys("nonExistentPattern*");
194
+ expect(noMatchKeys).toEqual([]);
195
+ });
196
+ });
197
+ describe("Cache Operation Metrics", () => {
198
+ beforeEach(async () => {
199
+ // Resetting metrics before each test
200
+ await __2.CACHE_DELETE_OPERATIONS_TOTAL.reset();
201
+ await __2.CACHE_GET_OPERATIONS_TOTAL.reset();
202
+ await __2.CACHE_SET_OPERATIONS_TOTAL.reset();
203
+ });
204
+ it("should increment CACHE_SET_OPERATIONS_TOTAL on set operations", async () => {
205
+ await cache.set("testKey", "testValue");
206
+ const newCount = (await __2.CACHE_SET_OPERATIONS_TOTAL.get()).values[0].value;
207
+ expect(newCount).toBe(1);
208
+ });
209
+ it("should increment CACHE_GET_OPERATIONS_TOTAL on get operations", async () => {
210
+ await cache.get("testKey");
211
+ const newCount = (await __2.CACHE_GET_OPERATIONS_TOTAL.get()).values[0].value;
212
+ expect(newCount).toBe(1);
213
+ });
214
+ it("should increment CACHE_DELETE_OPERATIONS_TOTAL on delete operations", async () => {
215
+ await cache.del("testKey");
216
+ const newCount = (await __2.CACHE_DELETE_OPERATIONS_TOTAL.get()).values[0]
217
+ .value;
218
+ expect(newCount).toBe(1);
219
+ });
220
+ });
221
+ });
222
+ //# sourceMappingURL=cache.extension.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.extension.spec.js","sourceRoot":"","sources":["../../../src/boilerplate/extensions/cache.extension.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ApplicationDefinition, LibraryDefinition, ModuleConfiguration, ServiceMap } from "..";
2
+ declare module ".." {
3
+ interface LoadedModules {
4
+ testing_app: ApplicationDefinition<ServiceMap, ModuleConfiguration>;
5
+ testing: LibraryDefinition<ServiceMap, ModuleConfiguration>;
6
+ testing_second: LibraryDefinition<ServiceMap, ModuleConfiguration>;
7
+ }
8
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const __1 = require("../..");
4
+ const _1 = require(".");
5
+ describe("Fetch", () => {
6
+ let application;
7
+ let fetch;
8
+ let failFastSpy;
9
+ afterEach(async () => {
10
+ if (application) {
11
+ if (application.booted) {
12
+ await application.teardown();
13
+ }
14
+ application = undefined;
15
+ }
16
+ jest.restoreAllMocks();
17
+ __1.ZCC_Testing.WiringReset();
18
+ });
19
+ beforeEach(async () => {
20
+ failFastSpy = jest
21
+ .spyOn(__1.ZCC_Testing, "FailFast")
22
+ .mockImplementation(() => { });
23
+ application = (0, _1.CreateApplication)({
24
+ name: "testing_app",
25
+ services: {},
26
+ });
27
+ await application.bootstrap();
28
+ fetch = __1.ZCC.fetch;
29
+ });
30
+ afterEach(async () => {
31
+ if (application) {
32
+ await application.teardown();
33
+ application = undefined;
34
+ __1.ZCC_Testing.WiringReset();
35
+ }
36
+ expect(failFastSpy).not.toHaveBeenCalled();
37
+ jest.restoreAllMocks();
38
+ if (fetch) {
39
+ fetch = undefined;
40
+ }
41
+ });
42
+ describe("Fetch Extension Augmentation on ZCC", () => {
43
+ it("should augment ZCC with createFetcher method", () => {
44
+ expect(__1.ZCC.createFetcher).toBeDefined();
45
+ expect(typeof __1.ZCC.createFetcher).toBe("function");
46
+ });
47
+ it("should augment ZCC with fetch method", () => {
48
+ expect(__1.ZCC.fetch).toBeDefined();
49
+ expect(typeof __1.ZCC.fetch).toBe("function");
50
+ });
51
+ // Example test to ensure createFetcher functionality works as expected
52
+ it("createFetcher should initialize fetch functionality correctly", () => {
53
+ const fetcher = __1.ZCC.createFetcher({});
54
+ expect(fetcher).toBeDefined();
55
+ expect(typeof fetcher.fetch).toBe("function");
56
+ });
57
+ });
58
+ });
59
+ //# sourceMappingURL=fetch.extension.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.extension.spec.js","sourceRoot":"","sources":["../../../src/boilerplate/extensions/fetch.extension.spec.ts"],"names":[],"mappings":";;AAAA,6BAAyC;AAQzC,wBAA8C;AAE9C,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,IAAI,WAGH,CAAC;IACF,IAAI,KAAa,CAAC;IAClB,IAAI,WAA6B,CAAC;IAElC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC/B,CAAC;YACD,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,eAAW,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,WAAW,GAAG,IAAI;aACf,KAAK,CAAC,eAAW,EAAE,UAAU,CAAC;aAC9B,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChC,WAAW,GAAG,IAAA,oBAAiB,EAAC;YAC9B,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;QAC9B,KAAK,GAAG,OAAG,CAAC,KAAK,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,WAAW,GAAG,SAAS,CAAC;YACxB,eAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,OAAG,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,OAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,OAAG,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,OAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,OAAO,GAAG,OAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ApplicationDefinition, LibraryDefinition, ModuleConfiguration, ServiceMap } from "..";
2
+ declare module ".." {
3
+ interface LoadedModules {
4
+ testing_app: ApplicationDefinition<ServiceMap, ModuleConfiguration>;
5
+ testing: LibraryDefinition<ServiceMap, ModuleConfiguration>;
6
+ testing_second: LibraryDefinition<ServiceMap, ModuleConfiguration>;
7
+ }
8
+ }
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const __1 = require("../..");
4
+ const __2 = require("..");
5
+ const _1 = require(".");
6
+ describe("Wiring", () => {
7
+ let application;
8
+ afterEach(async () => {
9
+ if (application) {
10
+ if (application.booted) {
11
+ await application.teardown();
12
+ }
13
+ application = undefined;
14
+ }
15
+ jest.restoreAllMocks();
16
+ __1.ZCC_Testing.WiringReset();
17
+ });
18
+ describe("Basics", () => {
19
+ describe("CreateLibrary", () => {
20
+ it("should be defined", () => {
21
+ expect(_1.CreateLibrary).toBeDefined();
22
+ expect(_1.CreateApplication).toBeDefined();
23
+ });
24
+ it("should create a library without services", () => {
25
+ const library = (0, _1.CreateLibrary)({
26
+ name: "testing",
27
+ services: {},
28
+ });
29
+ expect(library).toBeDefined();
30
+ expect(library.name).toBe("testing");
31
+ expect(library.services).toEqual({});
32
+ });
33
+ it("properly wires services when creating a library", async () => {
34
+ const testService = jest.fn();
35
+ const library = (0, _1.CreateLibrary)({
36
+ name: "testing",
37
+ services: { testService },
38
+ });
39
+ await library[__2.WIRE_PROJECT]();
40
+ // Check that the service is wired correctly
41
+ expect(testService).toHaveBeenCalled();
42
+ });
43
+ it("throws an error with invalid service definition", () => {
44
+ expect(() => {
45
+ (0, _1.CreateLibrary)({
46
+ name: "testing",
47
+ services: { InvalidService: undefined },
48
+ });
49
+ }).toThrow("Invalid service definition");
50
+ });
51
+ it("integrates correctly with the event emitter for error handling", () => {
52
+ const library = (0, _1.CreateLibrary)({
53
+ name: "testing",
54
+ services: {},
55
+ });
56
+ const eventSpy = jest.spyOn(library, "onError");
57
+ // Simulate an error event
58
+ library.onError(() => {
59
+ throw new Error("Test Error");
60
+ });
61
+ expect(eventSpy).toHaveBeenCalled();
62
+ });
63
+ it("integrates lifecycle methods correctly in a created library", () => {
64
+ const library = (0, _1.CreateLibrary)({
65
+ name: "testing",
66
+ services: {},
67
+ });
68
+ expect(typeof library.lifecycle.onBootstrap).toBe("function");
69
+ expect(typeof library.lifecycle.onShutdownStart).toBe("function");
70
+ });
71
+ it("creates multiple libraries with distinct configurations", () => {
72
+ const libraryOne = (0, _1.CreateLibrary)({
73
+ name: "testing",
74
+ services: {},
75
+ });
76
+ const libraryTwo = (0, _1.CreateLibrary)({
77
+ name: "testing_second",
78
+ services: {},
79
+ });
80
+ expect(libraryOne.name).not.toBe(libraryTwo.name);
81
+ });
82
+ it("throws a BootstrapException for an invalid service definition in a library", () => {
83
+ expect(() => {
84
+ (0, _1.CreateLibrary)({
85
+ name: "testing",
86
+ services: { invalidServiceDefinition: undefined },
87
+ });
88
+ }).toThrow(__2.BootstrapException);
89
+ });
90
+ it("throws a BootstrapException if no name is provided for the library", () => {
91
+ expect(() => {
92
+ // @ts-expect-error that's the test
93
+ (0, _1.CreateLibrary)({ name: "", services: {} });
94
+ }).toThrow(__2.BootstrapException);
95
+ });
96
+ });
97
+ describe("CreateApplication Function", () => {
98
+ it("should create an application with specified services and libraries", () => {
99
+ const testService = jest.fn();
100
+ const testLibrary = (0, _1.CreateLibrary)({
101
+ name: "testing",
102
+ services: { TestService: testService },
103
+ });
104
+ application = (0, _1.CreateApplication)({
105
+ libraries: [testLibrary],
106
+ name: "testing_app",
107
+ services: { AppService: jest.fn() },
108
+ });
109
+ expect(application).toBeDefined();
110
+ expect(application.name).toBe("testing_app");
111
+ expect(Object.keys(application.services).length).toBe(1);
112
+ expect(application.libraries.length).toBe(1);
113
+ expect(application.libraries[0]).toBe(testLibrary);
114
+ });
115
+ });
116
+ });
117
+ describe("Application Lifecycle", () => {
118
+ beforeEach(() => {
119
+ application = (0, _1.CreateApplication)({ name: "testing_app", services: {} });
120
+ });
121
+ it("should call the lifecycle events in order during application bootstrap", async () => {
122
+ // Spy on lifecycle event functions
123
+ const spyPreInit = jest.fn();
124
+ const spyPostConfig = jest.fn();
125
+ const spyBootstrap = jest.fn();
126
+ const spyReady = jest.fn();
127
+ application.lifecycle.onPreInit(() => spyPreInit());
128
+ application.lifecycle.onPostConfig(() => spyPostConfig());
129
+ application.lifecycle.onBootstrap(() => spyBootstrap());
130
+ application.lifecycle.onReady(() => spyReady());
131
+ // Bootstrap the application
132
+ await application.bootstrap();
133
+ // Check that the lifecycle event functions were called
134
+ expect(spyPreInit).toHaveBeenCalled();
135
+ expect(spyPostConfig).toHaveBeenCalled();
136
+ expect(spyBootstrap).toHaveBeenCalled();
137
+ expect(spyReady).toHaveBeenCalled();
138
+ // Optionally, check the calling order
139
+ const callOrder = [
140
+ spyPreInit.mock.invocationCallOrder[0],
141
+ spyPostConfig.mock.invocationCallOrder[0],
142
+ spyBootstrap.mock.invocationCallOrder[0],
143
+ spyReady.mock.invocationCallOrder[0],
144
+ ];
145
+ expect(callOrder).toEqual([...callOrder].sort((a, b) => a - b));
146
+ });
147
+ it("executes lifecycle callbacks in the correct order", async () => {
148
+ // Mock callbacks for each lifecycle stage
149
+ const mockPreInit = jest.fn();
150
+ const mockPostConfig = jest.fn();
151
+ const mockBootstrap = jest.fn();
152
+ const mockReady = jest.fn();
153
+ // Register mock callbacks
154
+ application.lifecycle.onPreInit(mockPreInit);
155
+ application.lifecycle.onPostConfig(mockPostConfig);
156
+ application.lifecycle.onBootstrap(mockBootstrap);
157
+ application.lifecycle.onReady(mockReady);
158
+ // Bootstrap the application
159
+ await application.bootstrap();
160
+ // Retrieve the order in which the mocks were called
161
+ const preInitOrder = mockPreInit.mock.invocationCallOrder[0];
162
+ const postConfigOrder = mockPostConfig.mock.invocationCallOrder[0];
163
+ const bootstrapOrder = mockBootstrap.mock.invocationCallOrder[0];
164
+ const readyOrder = mockReady.mock.invocationCallOrder[0];
165
+ // Verify the order of callback execution
166
+ expect(preInitOrder).toBeLessThan(postConfigOrder);
167
+ expect(postConfigOrder).toBeLessThan(bootstrapOrder);
168
+ expect(bootstrapOrder).toBeLessThan(readyOrder);
169
+ });
170
+ it("registers and invokes lifecycle callbacks correctly", async () => {
171
+ const mockCallback = jest.fn();
172
+ // Register the mock callback for the 'Bootstrap' stage
173
+ application.lifecycle.onBootstrap(mockCallback);
174
+ // Bootstrap the application
175
+ await application.bootstrap();
176
+ // Check if the mock callback was invoked
177
+ expect(mockCallback).toHaveBeenCalled();
178
+ });
179
+ it("triggers fail-fast on catastrophic bootstrap errors", async () => {
180
+ const errorMock = jest.fn().mockImplementation(() => {
181
+ throw new Error("Catastrophic Error");
182
+ });
183
+ application.lifecycle.onBootstrap(errorMock);
184
+ jest.spyOn(console, "error").mockImplementation(() => { });
185
+ const failFastSpy = jest
186
+ .spyOn(__1.ZCC_Testing, "FailFast")
187
+ .mockImplementation(() => { });
188
+ // Execute the Bootstrap function
189
+ await application.bootstrap();
190
+ // Check if FailFast was called
191
+ expect(failFastSpy).toHaveBeenCalled();
192
+ });
193
+ it("wires services correctly in applications and libraries", async () => {
194
+ const testService = jest.fn();
195
+ await __1.ZCC_Testing.WireService("testLibrary", "TestService", testService, application.lifecycle);
196
+ // Assuming WireService modifies the MODULE_MAPPINGS in ZCC_Testing
197
+ expect(__1.ZCC_Testing.MODULE_MAPPINGS().get("testLibrary")["TestService"]).toBe(testService);
198
+ });
199
+ it("executes prioritized lifecycle callbacks in the correct order", async () => {
200
+ // Array to track the execution order
201
+ const executionOrder = [];
202
+ // Registering callbacks with priorities
203
+ application.lifecycle.onBootstrap(() => executionOrder.push("HighPriorityBootstrap"), 1);
204
+ application.lifecycle.onBootstrap(() => executionOrder.push("LowPriorityBootstrap"), 10);
205
+ // Trigger the lifecycle process
206
+ // Replace 'runLifecycle' with the actual method to initiate the lifecycle events
207
+ await application.bootstrap();
208
+ // Define the expected order based on priorities
209
+ const expectedOrder = ["HighPriorityBootstrap", "LowPriorityBootstrap"];
210
+ // Compare the actual execution order with the expected order
211
+ expect(executionOrder).toEqual(expectedOrder);
212
+ });
213
+ });
214
+ });
215
+ //# sourceMappingURL=wiring.extension.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiring.extension.spec.js","sourceRoot":"","sources":["../../../src/boilerplate/extensions/wiring.extension.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const boilerplate_1 = require("@digital-alchemy/boilerplate");
4
+ const utilities_1 = require("@digital-alchemy/utilities");
5
+ const gotify_module_mjs_1 = require("../gotify.module.mjs");
6
+ const api_mjs_1 = require("../helpers/api.mjs");
7
+ const config_constants_mjs_1 = require("../helpers/config.constants.mjs");
8
+ const fetch_extension_mjs_1 = require("./fetch.extension.mjs");
9
+ // Mock the necessary modules and functions
10
+ jest.mock("@digital-alchemy/utilities");
11
+ describe("GotifyFetch", () => {
12
+ let gotifyFetch;
13
+ let loadedModule;
14
+ const testBaseUrl = "http://gotify.test.local";
15
+ const testToken = "abc123";
16
+ async function createBaseModule() {
17
+ if (loadedModule) {
18
+ utilities_1.ZCC.lifecycle.teardown();
19
+ }
20
+ loadedModule = await (0, boilerplate_1.bootTestingModule)({}, {
21
+ libs: {
22
+ gotify: {
23
+ [config_constants_mjs_1.BASE_URL]: testBaseUrl,
24
+ [config_constants_mjs_1.TOKEN]: testToken,
25
+ },
26
+ },
27
+ });
28
+ gotify_module_mjs_1.LIB_GOTIFY.lifecycle.register();
29
+ boilerplate_1.LIB_BOILERPLATE.lifecycle.register();
30
+ await utilities_1.ZCC.lifecycle.exec();
31
+ }
32
+ beforeEach(async () => {
33
+ // Initialize the GotifyFetch before each test
34
+ jest.spyOn(gotify_module_mjs_1.LIB_GOTIFY, "getConfig").mockImplementation((key) => {
35
+ if (key === "BASE_URL")
36
+ return testBaseUrl;
37
+ if (key === "TOKEN")
38
+ return testToken;
39
+ return null;
40
+ });
41
+ gotifyFetch = (0, fetch_extension_mjs_1.GotifyFetch)();
42
+ await createBaseModule();
43
+ });
44
+ afterEach(async () => {
45
+ jest.clearAllMocks();
46
+ if (loadedModule) {
47
+ await utilities_1.ZCC.lifecycle.teardown();
48
+ loadedModule = undefined;
49
+ }
50
+ });
51
+ describe(".fetch", () => {
52
+ it("should make a correct fetch call with provided arguments", async () => {
53
+ // Mock implementation for ZCC.fetch.fetch
54
+ const mockFetch = jest.fn().mockResolvedValue("mocked response");
55
+ utilities_1.ZCC.fetch.fetch = mockFetch;
56
+ const testData = {
57
+ headers: {},
58
+ url: "/test-url",
59
+ };
60
+ // Perform the fetch operation
61
+ const response = await gotifyFetch.fetch(testData);
62
+ // Assertions
63
+ expect(mockFetch).toHaveBeenCalledWith({
64
+ ...testData,
65
+ baseUrl: testBaseUrl,
66
+ headers: expect.objectContaining({
67
+ "X-Gotify-Key": testToken,
68
+ }),
69
+ });
70
+ expect(response).toEqual("mocked response");
71
+ });
72
+ });
73
+ describe(".application", () => {
74
+ const mockApplication = {
75
+ description: "Test Application Description",
76
+ id: 1,
77
+ image: "image/application_image.jpeg",
78
+ internal: false,
79
+ name: "Test Application",
80
+ token: "AppToken123",
81
+ };
82
+ const mockMessage = {
83
+ appid: 1,
84
+ date: "2024-01-07T12:00:00Z",
85
+ extras: {
86
+ "client::notification": {
87
+ click: {
88
+ url: "http://example.com",
89
+ },
90
+ },
91
+ },
92
+ id: 100,
93
+ message: "Test message content",
94
+ priority: api_mjs_1.MessagePriority.normal,
95
+ title: "Test Message",
96
+ };
97
+ it("should call fetch with correct arguments to create an application", async () => {
98
+ const mockFetch = jest.fn().mockResolvedValue(mockApplication);
99
+ utilities_1.ZCC.fetch.fetch = mockFetch;
100
+ const applicationParams = {
101
+ description: "Test Description",
102
+ name: "TestApp",
103
+ };
104
+ const response = await gotifyFetch.application.create(applicationParams);
105
+ expect(mockFetch).toHaveBeenCalledWith({
106
+ baseUrl: testBaseUrl,
107
+ body: JSON.stringify(applicationParams),
108
+ headers: { "X-Gotify-Key": testToken },
109
+ method: "post",
110
+ url: `/application`,
111
+ });
112
+ expect(response).toEqual(mockApplication);
113
+ });
114
+ it("should call fetch with correct arguments to delete an application", async () => {
115
+ const mockFetch = jest.fn().mockResolvedValue({});
116
+ utilities_1.ZCC.fetch.fetch = mockFetch;
117
+ const appId = 123;
118
+ await gotifyFetch.application.delete(appId);
119
+ expect(mockFetch).toHaveBeenCalledWith({
120
+ baseUrl: testBaseUrl,
121
+ headers: { "X-Gotify-Key": testToken },
122
+ method: "delete",
123
+ url: `/application/${appId}`,
124
+ });
125
+ });
126
+ it("should call fetch with correct arguments to delete messages of an application", async () => {
127
+ const mockFetch = jest.fn().mockResolvedValue({});
128
+ utilities_1.ZCC.fetch.fetch = mockFetch;
129
+ const appId = 123;
130
+ await gotifyFetch.application.deleteMessages(appId);
131
+ expect(mockFetch).toHaveBeenCalledWith({
132
+ baseUrl: testBaseUrl,
133
+ headers: { "X-Gotify-Key": testToken },
134
+ method: "delete",
135
+ url: `/application/${appId}/message`,
136
+ });
137
+ });
138
+ it("should call fetch with correct arguments to get messages of an application", async () => {
139
+ const mockFetch = jest.fn().mockResolvedValue([mockMessage]);
140
+ utilities_1.ZCC.fetch.fetch = mockFetch;
141
+ const appId = 123;
142
+ const params = { limit: 10, since: 100 };
143
+ const response = await gotifyFetch.application.getMessages(appId, params);
144
+ expect(mockFetch).toHaveBeenCalledWith({
145
+ baseUrl: testBaseUrl,
146
+ headers: { "X-Gotify-Key": testToken },
147
+ params,
148
+ url: `/application/${appId}/message`,
149
+ });
150
+ expect(response).toEqual([mockMessage]);
151
+ });
152
+ it("should call fetch with correct arguments to list applications", async () => {
153
+ const mockFetch = jest.fn().mockResolvedValue([mockApplication]);
154
+ utilities_1.ZCC.fetch.fetch = mockFetch;
155
+ const response = await gotifyFetch.application.list();
156
+ expect(mockFetch).toHaveBeenCalledWith({
157
+ baseUrl: testBaseUrl,
158
+ headers: { "X-Gotify-Key": testToken },
159
+ url: `/application`,
160
+ });
161
+ expect(response).toEqual([mockApplication]);
162
+ });
163
+ });
164
+ describe(".client", () => {
165
+ const mockClient = {
166
+ id: 123,
167
+ name: "Test Client",
168
+ token: "ClientToken123",
169
+ };
170
+ it("should call fetch with correct arguments to create a client", async () => {
171
+ const mockFetch = jest.fn().mockResolvedValue(mockClient);
172
+ utilities_1.ZCC.fetch.fetch = mockFetch;
173
+ const response = await gotifyFetch.client.create(mockClient);
174
+ expect(mockFetch).toHaveBeenCalledWith({
175
+ baseUrl: testBaseUrl,
176
+ body: JSON.stringify(mockClient),
177
+ headers: { "X-Gotify-Key": testToken },
178
+ method: "post",
179
+ url: "/client",
180
+ });
181
+ expect(response).toEqual(mockClient);
182
+ });
183
+ it("should call fetch with correct arguments to delete a client", async () => {
184
+ const mockFetch = jest.fn().mockResolvedValue({});
185
+ utilities_1.ZCC.fetch.fetch = mockFetch;
186
+ await gotifyFetch.client.delete(mockClient.id);
187
+ expect(mockFetch).toHaveBeenCalledWith({
188
+ baseUrl: testBaseUrl,
189
+ headers: { "X-Gotify-Key": testToken },
190
+ method: "delete",
191
+ url: `/client/${mockClient.id}`,
192
+ });
193
+ });
194
+ it("should call fetch with correct arguments to list clients", async () => {
195
+ const mockFetch = jest.fn().mockResolvedValue([mockClient]);
196
+ utilities_1.ZCC.fetch.fetch = mockFetch;
197
+ const response = await gotifyFetch.client.list();
198
+ expect(mockFetch).toHaveBeenCalledWith({
199
+ baseUrl: testBaseUrl,
200
+ headers: { "X-Gotify-Key": testToken },
201
+ url: "/client",
202
+ });
203
+ expect(response).toEqual([mockClient]);
204
+ });
205
+ it("should call fetch with correct arguments to update a client", async () => {
206
+ const updatedClient = { ...mockClient, name: "Updated Test Client" };
207
+ const mockFetch = jest.fn().mockResolvedValue(updatedClient);
208
+ utilities_1.ZCC.fetch.fetch = mockFetch;
209
+ const response = await gotifyFetch.client.update(mockClient.id, updatedClient);
210
+ expect(mockFetch).toHaveBeenCalledWith({
211
+ baseUrl: testBaseUrl,
212
+ body: JSON.stringify(updatedClient),
213
+ headers: { "X-Gotify-Key": testToken },
214
+ method: "put",
215
+ url: `/client/${mockClient.id}`,
216
+ });
217
+ expect(response).toEqual(updatedClient);
218
+ });
219
+ });
220
+ describe(".message", () => {
221
+ const mockMessage = {
222
+ appid: 1,
223
+ date: "2024-01-07T12:00:00Z",
224
+ extras: {
225
+ "client::notification": {
226
+ click: {
227
+ url: "http://example.com",
228
+ },
229
+ },
230
+ },
231
+ id: 100,
232
+ message: "Test message content",
233
+ priority: api_mjs_1.MessagePriority.normal,
234
+ title: "Test Message",
235
+ };
236
+ it("should call fetch with correct arguments to create a message", async () => {
237
+ const mockFetch = jest.fn().mockResolvedValue(mockMessage);
238
+ utilities_1.ZCC.fetch.fetch = mockFetch;
239
+ const response = await gotifyFetch.message.create(mockMessage);
240
+ expect(mockFetch).toHaveBeenCalledWith({
241
+ baseUrl: testBaseUrl,
242
+ body: JSON.stringify(mockMessage),
243
+ headers: { "X-Gotify-Key": testToken },
244
+ method: "post",
245
+ url: "/message",
246
+ });
247
+ expect(response).toEqual(mockMessage);
248
+ });
249
+ it("should call fetch with correct arguments to delete a message", async () => {
250
+ const mockFetch = jest.fn().mockResolvedValue({});
251
+ utilities_1.ZCC.fetch.fetch = mockFetch;
252
+ await gotifyFetch.message.delete(mockMessage.id);
253
+ expect(mockFetch).toHaveBeenCalledWith({
254
+ baseUrl: testBaseUrl,
255
+ headers: { "X-Gotify-Key": testToken },
256
+ method: "delete",
257
+ url: `/message/${mockMessage.id}`,
258
+ });
259
+ });
260
+ it("should call fetch with correct arguments to delete all messages", async () => {
261
+ const mockFetch = jest.fn().mockResolvedValue({});
262
+ utilities_1.ZCC.fetch.fetch = mockFetch;
263
+ await gotifyFetch.message.deleteAll();
264
+ expect(mockFetch).toHaveBeenCalledWith({
265
+ baseUrl: testBaseUrl,
266
+ headers: { "X-Gotify-Key": testToken },
267
+ method: "delete",
268
+ url: `/message`,
269
+ });
270
+ });
271
+ it("should call fetch with correct arguments to list messages", async () => {
272
+ const mockFetch = jest.fn().mockResolvedValue([mockMessage]);
273
+ utilities_1.ZCC.fetch.fetch = mockFetch;
274
+ const response = await gotifyFetch.message.list();
275
+ expect(mockFetch).toHaveBeenCalledWith({
276
+ baseUrl: testBaseUrl,
277
+ headers: { "X-Gotify-Key": testToken },
278
+ url: "/message",
279
+ });
280
+ expect(response).toEqual([mockMessage]);
281
+ });
282
+ });
283
+ });
284
+ //# sourceMappingURL=fetch.extension.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.extension.spec.js","sourceRoot":"","sources":["../../../src/gotify/extensions/fetch.extension.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const is_extension_1 = require("../extensions/is.extension");
4
+ describe("is", () => {
5
+ describe("array method", () => {
6
+ it("identifies arrays", () => {
7
+ expect(is_extension_1.is.array([])).toBe(true);
8
+ expect(is_extension_1.is.array([1, 2, 3])).toBe(true);
9
+ });
10
+ it("identifies non-arrays", () => {
11
+ expect(is_extension_1.is.array("string")).toBe(false);
12
+ expect(is_extension_1.is.array({})).toBe(false);
13
+ });
14
+ });
15
+ describe("boolean method", () => {
16
+ it("identifies booleans", () => {
17
+ expect(is_extension_1.is.boolean(true)).toBe(true);
18
+ expect(is_extension_1.is.boolean(false)).toBe(true);
19
+ });
20
+ it("identifies non-booleans", () => {
21
+ expect(is_extension_1.is.boolean(0)).toBe(false);
22
+ expect(is_extension_1.is.boolean(null)).toBe(false);
23
+ });
24
+ });
25
+ describe("date method", () => {
26
+ it("identifies dates", () => {
27
+ expect(is_extension_1.is.date(new Date())).toBe(true);
28
+ });
29
+ it("identifies non-dates", () => {
30
+ expect(is_extension_1.is.date("2020-01-01")).toBe(false);
31
+ expect(is_extension_1.is.date(1_577_836_800_000)).toBe(false);
32
+ });
33
+ });
34
+ describe("empty method", () => {
35
+ it("identifies empty values", () => {
36
+ expect(is_extension_1.is.empty("")).toBe(true);
37
+ expect(is_extension_1.is.empty([])).toBe(true);
38
+ expect(is_extension_1.is.empty({})).toBe(true);
39
+ expect(is_extension_1.is.empty(new Set())).toBe(true);
40
+ expect(is_extension_1.is.empty(new Map())).toBe(true);
41
+ });
42
+ it("identifies non-empty values", () => {
43
+ expect(is_extension_1.is.empty("not empty")).toBe(false);
44
+ expect(is_extension_1.is.empty([1, 2, 3])).toBe(false);
45
+ expect(is_extension_1.is.empty({ key: "value" })).toBe(false);
46
+ expect(is_extension_1.is.empty(new Set([1]))).toBe(false);
47
+ expect(is_extension_1.is.empty(new Map([["key", "value"]]))).toBe(false);
48
+ });
49
+ });
50
+ describe("equal method", () => {
51
+ it("identifies equal values", () => {
52
+ expect(is_extension_1.is.equal(5, 5)).toBe(true);
53
+ expect(is_extension_1.is.equal("string", "string")).toBe(true);
54
+ expect(is_extension_1.is.equal([1, 2], [1, 2])).toBe(true);
55
+ });
56
+ it("identifies non-equal values", () => {
57
+ expect(is_extension_1.is.equal(5, 10)).toBe(false);
58
+ expect(is_extension_1.is.equal("string", "another string")).toBe(false);
59
+ expect(is_extension_1.is.equal([1, 2], [2, 1])).toBe(false);
60
+ });
61
+ });
62
+ describe("even method", () => {
63
+ it("identifies even numbers", () => {
64
+ expect(is_extension_1.is.even(2)).toBe(true);
65
+ expect(is_extension_1.is.even(4)).toBe(true);
66
+ });
67
+ it("identifies non-even numbers", () => {
68
+ expect(is_extension_1.is.even(1)).toBe(false);
69
+ expect(is_extension_1.is.even(3)).toBe(false);
70
+ });
71
+ });
72
+ describe("function method", () => {
73
+ it("identifies functions", () => {
74
+ expect(is_extension_1.is.function(() => {
75
+ //
76
+ })).toBe(true);
77
+ expect(is_extension_1.is.function(function () {
78
+ //
79
+ })).toBe(true);
80
+ });
81
+ it("identifies non-functions", () => {
82
+ expect(is_extension_1.is.function(123)).toBe(false);
83
+ expect(is_extension_1.is.function("string")).toBe(false);
84
+ });
85
+ });
86
+ describe("hash method", () => {
87
+ it("generates consistent hash", () => {
88
+ const text = "test string";
89
+ const hash1 = is_extension_1.is.hash(text);
90
+ const hash2 = is_extension_1.is.hash(text);
91
+ expect(hash1).toBe(hash2);
92
+ });
93
+ });
94
+ describe("number method", () => {
95
+ it("identifies numbers", () => {
96
+ expect(is_extension_1.is.number(123)).toBe(true);
97
+ expect(is_extension_1.is.number(-123)).toBe(true);
98
+ });
99
+ it("identifies non-numbers", () => {
100
+ expect(is_extension_1.is.number("123")).toBe(false);
101
+ expect(is_extension_1.is.number(null)).toBe(false);
102
+ });
103
+ });
104
+ describe("object method", () => {
105
+ it("identifies objects", () => {
106
+ expect(is_extension_1.is.object({})).toBe(true);
107
+ expect(is_extension_1.is.object(new Date())).toBe(true);
108
+ });
109
+ it("identifies non-objects", () => {
110
+ expect(is_extension_1.is.object(123)).toBe(false);
111
+ expect(is_extension_1.is.object("string")).toBe(false);
112
+ });
113
+ });
114
+ describe("random method", () => {
115
+ it("returns an element from the array", () => {
116
+ const array = [1, 2, 3];
117
+ const randomElement = is_extension_1.is.random(array);
118
+ expect(array).toContain(randomElement);
119
+ });
120
+ });
121
+ describe("string method", () => {
122
+ it("identifies strings", () => {
123
+ expect(is_extension_1.is.string("string")).toBe(true);
124
+ expect(is_extension_1.is.string("")).toBe(true);
125
+ });
126
+ it("identifies non-strings", () => {
127
+ expect(is_extension_1.is.string(123)).toBe(false);
128
+ expect(is_extension_1.is.string(null)).toBe(false);
129
+ });
130
+ });
131
+ describe("symbol method", () => {
132
+ it("identifies symbols", () => {
133
+ expect(is_extension_1.is.symbol(Symbol("symbol"))).toBe(true);
134
+ });
135
+ it("identifies non-symbols", () => {
136
+ expect(is_extension_1.is.symbol("symbol")).toBe(false);
137
+ expect(is_extension_1.is.symbol(123)).toBe(false);
138
+ });
139
+ });
140
+ describe("undefined method", () => {
141
+ it("identifies undefined", () => {
142
+ expect(is_extension_1.is.undefined(undefined)).toBe(true);
143
+ });
144
+ it("identifies defined values", () => {
145
+ expect(is_extension_1.is.undefined(null)).toBe(false);
146
+ expect(is_extension_1.is.undefined(0)).toBe(false);
147
+ });
148
+ });
149
+ describe("unique method", () => {
150
+ it("removes duplicates from an array", () => {
151
+ const array = [1, 1, 2, 2, 3, 3];
152
+ const uniqueArray = is_extension_1.is.unique(array);
153
+ expect(uniqueArray).toEqual([1, 2, 3]);
154
+ });
155
+ });
156
+ });
157
+ //# sourceMappingURL=peat.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peat.spec.js","sourceRoot":"","sources":["../../../src/utilities/tests/peat.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utilities_helper_1 = require("../helpers/utilities.helper");
4
+ describe("PEAT function", () => {
5
+ it("creates an array of the specified length", () => {
6
+ const length = 5;
7
+ const array = (0, utilities_helper_1.PEAT)(length);
8
+ expect(array.length).toBe(length);
9
+ });
10
+ it("fills the array with the specified value", () => {
11
+ const fillValue = "test";
12
+ const array = (0, utilities_helper_1.PEAT)(3, fillValue);
13
+ expect(array).toEqual([fillValue, fillValue, fillValue]);
14
+ });
15
+ it("fills the array with index + 1 if no fill value is provided", () => {
16
+ const length = 3;
17
+ const array = (0, utilities_helper_1.PEAT)(length);
18
+ expect(array).toEqual([1, 2, 3]);
19
+ });
20
+ });
21
+ //# sourceMappingURL=sleep.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.spec.js","sourceRoot":"","sources":["../../../src/utilities/tests/sleep.spec.ts"],"names":[],"mappings":";;AAAA,kEAAmD;AAEnD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,IAAA,uBAAI,EAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,SAAS,GAAG,MAAM,CAAC;QACzB,MAAM,KAAK,GAAG,IAAA,uBAAI,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,IAAA,uBAAI,EAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "repository": {
4
4
  "url": "git+https://github.com/zoe-codez/digital-alchemy.git"
5
5
  },
6
- "version": "0.1.6",
6
+ "version": "0.1.7",
7
7
  "author": {
8
8
  "url": "https://github.com/zoe-codez",
9
9
  "name": "Zoe"