@digital-alchemy/hass 25.11.16 → 25.11.23

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.
Files changed (54) hide show
  1. package/dist/helpers/entity-state.d.mts +20 -3
  2. package/dist/helpers/fetch/service-list.d.mts +86 -5
  3. package/dist/helpers/id-by.d.mts +1 -1
  4. package/dist/helpers/utility.d.mts +1 -1
  5. package/dist/mock_assistant/mock-assistant.module.mjs.map +1 -1
  6. package/dist/mock_assistant/services/websocket-api.service.d.mts +3 -1
  7. package/dist/mock_assistant/services/websocket-api.service.mjs +43 -4
  8. package/dist/mock_assistant/services/websocket-api.service.mjs.map +1 -1
  9. package/dist/services/feature.service.d.mts +2 -2
  10. package/dist/services/feature.service.mjs.map +1 -1
  11. package/dist/services/id-by.service.mjs +4 -1
  12. package/dist/services/id-by.service.mjs.map +1 -1
  13. package/dist/services/reference.service.d.mts +1 -1
  14. package/dist/services/reference.service.mjs +62 -7
  15. package/dist/services/reference.service.mjs.map +1 -1
  16. package/dist/testing/area.spec.mjs +142 -1
  17. package/dist/testing/area.spec.mjs.map +1 -1
  18. package/dist/testing/call-proxy.spec.d.mts +1 -0
  19. package/dist/testing/call-proxy.spec.mjs +204 -0
  20. package/dist/testing/call-proxy.spec.mjs.map +1 -0
  21. package/dist/testing/conversation.spec.mjs +1 -1
  22. package/dist/testing/conversation.spec.mjs.map +1 -1
  23. package/dist/testing/entity.spec.mjs +14 -0
  24. package/dist/testing/entity.spec.mjs.map +1 -1
  25. package/dist/testing/id-by.spec.mjs +38 -0
  26. package/dist/testing/id-by.spec.mjs.map +1 -1
  27. package/dist/testing/ref-by.spec.mjs +805 -4
  28. package/dist/testing/ref-by.spec.mjs.map +1 -1
  29. package/dist/testing/scheduler.spec.d.mts +1 -0
  30. package/dist/testing/scheduler.spec.mjs +412 -0
  31. package/dist/testing/scheduler.spec.mjs.map +1 -0
  32. package/dist/testing/websocket.spec.mjs +25 -0
  33. package/dist/testing/websocket.spec.mjs.map +1 -1
  34. package/dist/testing/workflow.spec.mjs +1 -1
  35. package/dist/testing/workflow.spec.mjs.map +1 -1
  36. package/package.json +17 -16
  37. package/src/helpers/entity-state.mts +20 -3
  38. package/src/helpers/fetch/service-list.mts +89 -5
  39. package/src/helpers/id-by.mts +1 -0
  40. package/src/helpers/utility.mts +1 -1
  41. package/src/mock_assistant/mock-assistant.module.mts +0 -1
  42. package/src/mock_assistant/services/websocket-api.service.mts +46 -4
  43. package/src/services/feature.service.mts +9 -6
  44. package/src/services/id-by.service.mts +4 -1
  45. package/src/services/reference.service.mts +78 -9
  46. package/src/testing/area.spec.mts +166 -2
  47. package/src/testing/call-proxy.spec.mts +241 -0
  48. package/src/testing/conversation.spec.mts +1 -1
  49. package/src/testing/entity.spec.mts +15 -0
  50. package/src/testing/id-by.spec.mts +50 -0
  51. package/src/testing/ref-by.spec.mts +965 -4
  52. package/src/testing/scheduler.spec.mts +444 -0
  53. package/src/testing/websocket.spec.mts +33 -0
  54. package/src/testing/workflow.spec.mts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ref-by.spec.mjs","sourceRoot":"","sources":["../../src/testing/ref-by.spec.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ref-by.spec.mjs","sourceRoot":"","sources":["../../src/testing/ref-by.spec.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,412 @@
1
+ import { CronExpression, HOUR, MINUTE, SECOND, TestRunner } from "@digital-alchemy/core";
2
+ import dayjs from "dayjs";
3
+ describe("Scheduler", () => {
4
+ afterEach(async () => {
5
+ vi.restoreAllMocks();
6
+ });
7
+ describe("cron", () => {
8
+ it("runs a cron schedule", async () => {
9
+ vi.useFakeTimers();
10
+ const spy = vi.fn();
11
+ const app = await TestRunner().run(({ scheduler }) => {
12
+ scheduler.cron({
13
+ exec: spy,
14
+ schedule: CronExpression.EVERY_MINUTE,
15
+ });
16
+ });
17
+ vi.advanceTimersByTime(60 * MINUTE);
18
+ await app.teardown();
19
+ expect(spy).toHaveBeenCalledTimes(60);
20
+ vi.useRealTimers();
21
+ });
22
+ });
23
+ describe("interval", () => {
24
+ it("runs an interval schedule", async () => {
25
+ vi.useFakeTimers();
26
+ const spy = vi.fn();
27
+ const app = await TestRunner().run(({ scheduler }) => {
28
+ // @ts-expect-error it's temporarily still here
29
+ scheduler.interval({
30
+ exec: spy,
31
+ interval: MINUTE,
32
+ });
33
+ });
34
+ vi.advanceTimersByTime(60 * MINUTE);
35
+ expect(spy).toHaveBeenCalledTimes(60);
36
+ vi.useRealTimers();
37
+ await app.teardown();
38
+ });
39
+ });
40
+ describe("setInterval", () => {
41
+ it("runs", async () => {
42
+ vi.useFakeTimers();
43
+ const spy = vi.fn();
44
+ const app = await TestRunner().run(({ scheduler }) => {
45
+ scheduler.setInterval(spy, MINUTE);
46
+ });
47
+ vi.advanceTimersByTime(60 * MINUTE);
48
+ expect(spy).toHaveBeenCalledTimes(60);
49
+ vi.useRealTimers();
50
+ await app.teardown();
51
+ });
52
+ it("stops", async () => {
53
+ vi.useFakeTimers();
54
+ const spy = vi.fn();
55
+ const app = await TestRunner().run(({ scheduler, lifecycle }) => {
56
+ const remove = scheduler.setInterval(spy, MINUTE);
57
+ lifecycle.onReady(() => {
58
+ setTimeout(() => remove(), 30 * MINUTE);
59
+ });
60
+ });
61
+ vi.advanceTimersByTime(60 * MINUTE);
62
+ expect(spy).toHaveBeenCalledTimes(30);
63
+ vi.useRealTimers();
64
+ await app.teardown();
65
+ });
66
+ it("stops early", async () => {
67
+ const spy = vi.fn();
68
+ const intervalSpy = vi.spyOn(globalThis, "setInterval");
69
+ const app = await TestRunner().run(({ scheduler }) => {
70
+ const remove = scheduler.setInterval(spy, MINUTE);
71
+ remove();
72
+ });
73
+ expect(intervalSpy).not.toHaveBeenCalled();
74
+ await app.teardown();
75
+ });
76
+ it("handles tuple offset [amount, unit]", async () => {
77
+ vi.useFakeTimers();
78
+ const spy = vi.fn();
79
+ const app = await TestRunner().run(({ scheduler }) => {
80
+ scheduler.setInterval(spy, [30, "seconds"]);
81
+ });
82
+ vi.advanceTimersByTime(29 * SECOND);
83
+ expect(spy).not.toHaveBeenCalled();
84
+ vi.advanceTimersByTime(2 * SECOND);
85
+ expect(spy).toHaveBeenCalledTimes(1);
86
+ vi.advanceTimersByTime(30 * SECOND);
87
+ expect(spy).toHaveBeenCalledTimes(2);
88
+ vi.useRealTimers();
89
+ await app.teardown();
90
+ });
91
+ it("handles object offset (DurationUnitsObjectType)", async () => {
92
+ vi.useFakeTimers();
93
+ const spy = vi.fn();
94
+ const app = await TestRunner().run(({ scheduler }) => {
95
+ scheduler.setInterval(spy, { minutes: 1, seconds: 30 });
96
+ });
97
+ vi.advanceTimersByTime(MINUTE + 29 * SECOND);
98
+ expect(spy).not.toHaveBeenCalled();
99
+ vi.advanceTimersByTime(2 * SECOND);
100
+ expect(spy).toHaveBeenCalledTimes(1);
101
+ vi.advanceTimersByTime(MINUTE + 30 * SECOND);
102
+ expect(spy).toHaveBeenCalledTimes(2);
103
+ vi.useRealTimers();
104
+ await app.teardown();
105
+ });
106
+ it("handles string offset (ISO 8601 partial)", async () => {
107
+ vi.useFakeTimers();
108
+ const spy = vi.fn();
109
+ const app = await TestRunner().run(({ scheduler }) => {
110
+ scheduler.setInterval(spy, "1M30S"); // 1 minute 30 seconds
111
+ });
112
+ vi.advanceTimersByTime(MINUTE + 29 * SECOND);
113
+ expect(spy).not.toHaveBeenCalled();
114
+ vi.advanceTimersByTime(2 * SECOND);
115
+ expect(spy).toHaveBeenCalledTimes(1);
116
+ vi.advanceTimersByTime(MINUTE + 30 * SECOND);
117
+ expect(spy).toHaveBeenCalledTimes(2);
118
+ vi.useRealTimers();
119
+ await app.teardown();
120
+ });
121
+ it("handles function offset", async () => {
122
+ vi.useFakeTimers();
123
+ const spy = vi.fn();
124
+ const app = await TestRunner().run(({ scheduler }) => {
125
+ scheduler.setInterval(spy, () => 2 * MINUTE);
126
+ });
127
+ vi.advanceTimersByTime(2 * MINUTE - SECOND);
128
+ expect(spy).not.toHaveBeenCalled();
129
+ vi.advanceTimersByTime(2 * SECOND);
130
+ expect(spy).toHaveBeenCalledTimes(1);
131
+ vi.advanceTimersByTime(2 * MINUTE);
132
+ expect(spy).toHaveBeenCalledTimes(2);
133
+ vi.useRealTimers();
134
+ await app.teardown();
135
+ });
136
+ it("handles Duration object", async () => {
137
+ vi.useFakeTimers();
138
+ const spy = vi.fn();
139
+ const app = await TestRunner().run(({ scheduler }) => {
140
+ const duration = dayjs.duration({ minutes: 2, seconds: 30 });
141
+ scheduler.setInterval(spy, duration);
142
+ });
143
+ vi.advanceTimersByTime(2 * MINUTE + 29 * SECOND);
144
+ expect(spy).not.toHaveBeenCalled();
145
+ vi.advanceTimersByTime(2 * SECOND);
146
+ expect(spy).toHaveBeenCalledTimes(1);
147
+ vi.advanceTimersByTime(2 * MINUTE + 30 * SECOND);
148
+ expect(spy).toHaveBeenCalledTimes(2);
149
+ vi.useRealTimers();
150
+ await app.teardown();
151
+ });
152
+ it("handles tuple with hours", async () => {
153
+ vi.useFakeTimers();
154
+ const spy = vi.fn();
155
+ const app = await TestRunner().run(({ scheduler }) => {
156
+ scheduler.setInterval(spy, [1, "hour"]);
157
+ });
158
+ vi.advanceTimersByTime(HOUR - SECOND);
159
+ expect(spy).not.toHaveBeenCalled();
160
+ vi.advanceTimersByTime(2 * SECOND);
161
+ expect(spy).toHaveBeenCalledTimes(1);
162
+ vi.advanceTimersByTime(HOUR);
163
+ expect(spy).toHaveBeenCalledTimes(2);
164
+ vi.useRealTimers();
165
+ await app.teardown();
166
+ });
167
+ });
168
+ describe("setTimeout", () => {
169
+ it("runs", async () => {
170
+ vi.useFakeTimers();
171
+ const spy = vi.fn();
172
+ const app = await TestRunner().run(({ scheduler }) => {
173
+ scheduler.setTimeout(spy, MINUTE);
174
+ });
175
+ vi.advanceTimersByTime(59 * SECOND);
176
+ expect(spy).not.toHaveBeenCalled();
177
+ vi.advanceTimersByTime(3 * SECOND);
178
+ expect(spy).toHaveBeenCalledTimes(1);
179
+ vi.useRealTimers();
180
+ await app.teardown();
181
+ });
182
+ it("stops", async () => {
183
+ vi.useFakeTimers();
184
+ const spy = vi.fn();
185
+ const app = await TestRunner().run(({ scheduler }) => {
186
+ const remove = scheduler.setTimeout(spy, MINUTE);
187
+ setTimeout(() => remove(), 30 * SECOND);
188
+ });
189
+ vi.advanceTimersByTime(5 * MINUTE);
190
+ expect(spy).not.toHaveBeenCalled();
191
+ vi.useRealTimers();
192
+ await app.teardown();
193
+ });
194
+ it("stops early", async () => {
195
+ const spy = vi.fn();
196
+ const intervalSpy = vi.spyOn(globalThis, "setTimeout");
197
+ const app = await TestRunner().run(({ scheduler }) => {
198
+ const remove = scheduler.setTimeout(spy, MINUTE);
199
+ remove();
200
+ });
201
+ expect(intervalSpy).not.toHaveBeenCalled();
202
+ await app.teardown();
203
+ });
204
+ it("handles tuple offset [amount, unit]", async () => {
205
+ vi.useFakeTimers();
206
+ const spy = vi.fn();
207
+ const app = await TestRunner().run(({ scheduler }) => {
208
+ scheduler.setTimeout(spy, [30, "seconds"]);
209
+ });
210
+ vi.advanceTimersByTime(29 * SECOND);
211
+ expect(spy).not.toHaveBeenCalled();
212
+ vi.advanceTimersByTime(2 * SECOND);
213
+ expect(spy).toHaveBeenCalledTimes(1);
214
+ vi.useRealTimers();
215
+ await app.teardown();
216
+ });
217
+ it("handles object offset (DurationUnitsObjectType)", async () => {
218
+ vi.useFakeTimers();
219
+ const spy = vi.fn();
220
+ const app = await TestRunner().run(({ scheduler }) => {
221
+ scheduler.setTimeout(spy, { minutes: 1, seconds: 30 });
222
+ });
223
+ vi.advanceTimersByTime(MINUTE + 29 * SECOND);
224
+ expect(spy).not.toHaveBeenCalled();
225
+ vi.advanceTimersByTime(2 * SECOND);
226
+ expect(spy).toHaveBeenCalledTimes(1);
227
+ vi.useRealTimers();
228
+ await app.teardown();
229
+ });
230
+ it("handles string offset (ISO 8601 partial)", async () => {
231
+ vi.useFakeTimers();
232
+ const spy = vi.fn();
233
+ const app = await TestRunner().run(({ scheduler }) => {
234
+ scheduler.setTimeout(spy, "1M30S"); // 1 minute 30 seconds
235
+ });
236
+ vi.advanceTimersByTime(MINUTE + 29 * SECOND);
237
+ expect(spy).not.toHaveBeenCalled();
238
+ vi.advanceTimersByTime(2 * SECOND);
239
+ expect(spy).toHaveBeenCalledTimes(1);
240
+ vi.useRealTimers();
241
+ await app.teardown();
242
+ });
243
+ it("handles function offset", async () => {
244
+ vi.useFakeTimers();
245
+ const spy = vi.fn();
246
+ const app = await TestRunner().run(({ scheduler }) => {
247
+ scheduler.setTimeout(spy, () => 2 * MINUTE);
248
+ });
249
+ vi.advanceTimersByTime(2 * MINUTE - SECOND);
250
+ expect(spy).not.toHaveBeenCalled();
251
+ vi.advanceTimersByTime(2 * SECOND);
252
+ expect(spy).toHaveBeenCalledTimes(1);
253
+ vi.useRealTimers();
254
+ await app.teardown();
255
+ });
256
+ it("handles Duration object", async () => {
257
+ vi.useFakeTimers();
258
+ const spy = vi.fn();
259
+ const app = await TestRunner().run(({ scheduler }) => {
260
+ const duration = dayjs.duration({ minutes: 2, seconds: 30 });
261
+ scheduler.setTimeout(spy, duration);
262
+ });
263
+ vi.advanceTimersByTime(2 * MINUTE + 29 * SECOND);
264
+ expect(spy).not.toHaveBeenCalled();
265
+ vi.advanceTimersByTime(2 * SECOND);
266
+ expect(spy).toHaveBeenCalledTimes(1);
267
+ vi.useRealTimers();
268
+ await app.teardown();
269
+ });
270
+ it("handles zero timeout", async () => {
271
+ vi.useFakeTimers();
272
+ const spy = vi.fn();
273
+ const app = await TestRunner().run(({ scheduler }) => {
274
+ scheduler.setTimeout(spy, 0);
275
+ });
276
+ vi.advanceTimersByTime(1);
277
+ expect(spy).toHaveBeenCalledTimes(1);
278
+ vi.useRealTimers();
279
+ await app.teardown();
280
+ });
281
+ it("handles tuple with hours", async () => {
282
+ vi.useFakeTimers();
283
+ const spy = vi.fn();
284
+ const app = await TestRunner().run(({ scheduler }) => {
285
+ scheduler.setTimeout(spy, [1, "hour"]);
286
+ });
287
+ vi.advanceTimersByTime(HOUR - SECOND);
288
+ expect(spy).not.toHaveBeenCalled();
289
+ vi.advanceTimersByTime(2 * SECOND);
290
+ expect(spy).toHaveBeenCalledTimes(1);
291
+ vi.useRealTimers();
292
+ await app.teardown();
293
+ });
294
+ });
295
+ describe("sliding", () => {
296
+ it("requires an next method", async () => {
297
+ expect.assertions(1);
298
+ await TestRunner().run(({ scheduler }) => {
299
+ expect(() => {
300
+ scheduler.sliding({
301
+ exec: () => { },
302
+ next: undefined,
303
+ reset: "",
304
+ });
305
+ }).toThrow();
306
+ });
307
+ });
308
+ it("requires an exec method", async () => {
309
+ expect.assertions(1);
310
+ await TestRunner().run(({ scheduler }) => {
311
+ expect(() => {
312
+ scheduler.sliding({
313
+ exec: undefined,
314
+ next: () => undefined,
315
+ reset: "",
316
+ });
317
+ }).toThrow();
318
+ });
319
+ });
320
+ // This works, but the test is being weird with fake timers
321
+ it.skip("runs a sliding schedule", async () => {
322
+ vi.useFakeTimers();
323
+ const advanceHours = 5;
324
+ vi.setSystemTime(dayjs("2024-09-13T00:00:00.000Z").toDate());
325
+ const spy = vi.fn();
326
+ const app = await TestRunner().run(({ scheduler }) => {
327
+ scheduler.sliding({
328
+ exec: spy,
329
+ next: () => dayjs().add(1, "minute"),
330
+ reset: CronExpression.EVERY_HOUR,
331
+ });
332
+ });
333
+ vi.advanceTimersByTime(advanceHours * HOUR);
334
+ vi.useRealTimers();
335
+ await app.teardown();
336
+ expect(spy).toHaveBeenCalledTimes(advanceHours);
337
+ });
338
+ it("can stop a schedule", async () => {
339
+ vi.useFakeTimers();
340
+ const advanceHours = 3;
341
+ vi.setSystemTime(dayjs("2024-09-13T00:00:00.000Z").toDate());
342
+ const spy = vi.fn();
343
+ let stop;
344
+ const app = await TestRunner().run(({ scheduler }) => {
345
+ stop = scheduler.sliding({
346
+ exec: spy,
347
+ next: () => dayjs().add(1, "minute"),
348
+ reset: CronExpression.EVERY_HOUR,
349
+ });
350
+ });
351
+ stop();
352
+ vi.advanceTimersByTime(advanceHours * HOUR);
353
+ expect(spy).toHaveBeenCalledTimes(0);
354
+ vi.useRealTimers();
355
+ await app.teardown();
356
+ });
357
+ it("can stop a schedule while waiting for next call", async () => {
358
+ vi.useFakeTimers();
359
+ vi.setSystemTime(dayjs("2024-09-13T00:00:00.000Z").toDate());
360
+ const spy = vi.fn();
361
+ let stop;
362
+ const app = await TestRunner().run(({ scheduler }) => {
363
+ stop = scheduler.sliding({
364
+ exec: spy,
365
+ next: () => dayjs().add(2, "hour"),
366
+ reset: CronExpression.EVERY_DAY_AT_MIDNIGHT,
367
+ });
368
+ });
369
+ vi.advanceTimersByTime(1 * HOUR);
370
+ stop();
371
+ vi.advanceTimersByTime(2 * HOUR);
372
+ expect(spy).toHaveBeenCalledTimes(0);
373
+ vi.useRealTimers();
374
+ await app.teardown();
375
+ });
376
+ it("does not exec if a next time isn't returned", async () => {
377
+ vi.useFakeTimers();
378
+ const advanceDays = 1;
379
+ vi.setSystemTime(dayjs("2024-09-13T00:00:00.000Z").toDate());
380
+ const spy = vi.fn();
381
+ const app = await TestRunner().run(({ scheduler }) => {
382
+ scheduler.sliding({
383
+ exec: spy,
384
+ next: () => undefined,
385
+ reset: CronExpression.MONDAY_TO_FRIDAY_AT_8AM,
386
+ });
387
+ });
388
+ vi.advanceTimersByTime(advanceDays * HOUR);
389
+ expect(spy).toHaveBeenCalledTimes(0);
390
+ vi.useRealTimers();
391
+ await app.teardown();
392
+ });
393
+ it("does not exec if a next time is in past", async () => {
394
+ vi.useFakeTimers();
395
+ const advanceDays = 1;
396
+ vi.setSystemTime(dayjs("2024-09-13T00:00:00.000Z").toDate());
397
+ const spy = vi.fn();
398
+ const app = await TestRunner().run(({ scheduler }) => {
399
+ scheduler.sliding({
400
+ exec: spy,
401
+ next: () => dayjs().subtract(1, "minute"),
402
+ reset: CronExpression.MONDAY_TO_FRIDAY_AT_8AM,
403
+ });
404
+ });
405
+ vi.advanceTimersByTime(advanceDays * HOUR);
406
+ expect(spy).toHaveBeenCalledTimes(0);
407
+ vi.useRealTimers();
408
+ await app.teardown();
409
+ });
410
+ });
411
+ });
412
+ //# sourceMappingURL=scheduler.spec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.spec.mjs","sourceRoot":"","sources":["../../src/testing/scheduler.spec.mts"],"names":[],"mappings":"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"}
@@ -220,6 +220,31 @@ describe("Websocket", () => {
220
220
  });
221
221
  });
222
222
  });
223
+ describe("Auth Message Handlers", () => {
224
+ it("should handle auth_invalid message and exit", async () => {
225
+ expect.assertions(3);
226
+ const exitSpy = vi
227
+ .spyOn(process, "exit")
228
+ // @ts-expect-error testing
229
+ .mockImplementation(() => { });
230
+ await hassTestRunner.run(({ lifecycle, hass, logger }) => {
231
+ const fatalSpy = vi.spyOn(logger, "fatal").mockImplementation(() => { });
232
+ lifecycle.onReady(async () => {
233
+ const message = {
234
+ id: 1,
235
+ type: "auth_invalid",
236
+ };
237
+ await hass.socket.onMessage(message);
238
+ expect(exitSpy).toHaveBeenCalled();
239
+ expect(hass.socket.connectionState).toBe("invalid");
240
+ expect(fatalSpy).toHaveBeenCalledWith(expect.objectContaining({
241
+ message,
242
+ name: expect.any(Function),
243
+ }), "received auth invalid {connecting} => {invalid}");
244
+ });
245
+ });
246
+ });
247
+ });
223
248
  describe("Subscription Registry", () => {
224
249
  it("should prevent duplicate subscriptions", async () => {
225
250
  expect.assertions(1);