@digital-alchemy/hass 25.5.1 → 25.5.2

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 (82) hide show
  1. package/dist/hass.module.d.mts +13 -1
  2. package/dist/hass.module.mjs +16 -1
  3. package/dist/hass.module.mjs.map +1 -1
  4. package/dist/helpers/fetch.mjs +0 -1
  5. package/dist/helpers/fetch.mjs.map +1 -1
  6. package/dist/helpers/utility.d.mts +1 -0
  7. package/dist/helpers/utility.mjs +4 -0
  8. package/dist/helpers/utility.mjs.map +1 -1
  9. package/dist/mock_assistant/mock-assistant.module.d.mts +12 -0
  10. package/dist/services/area.service.mjs +9 -1
  11. package/dist/services/area.service.mjs.map +1 -1
  12. package/dist/services/call-proxy.service.mjs +10 -2
  13. package/dist/services/call-proxy.service.mjs.map +1 -1
  14. package/dist/services/config.service.mjs +15 -13
  15. package/dist/services/config.service.mjs.map +1 -1
  16. package/dist/services/device.service.mjs +3 -1
  17. package/dist/services/device.service.mjs.map +1 -1
  18. package/dist/services/diagnostics.service.d.mts +26 -0
  19. package/dist/services/diagnostics.service.mjs +41 -0
  20. package/dist/services/diagnostics.service.mjs.map +1 -0
  21. package/dist/services/entity.service.mjs +12 -1
  22. package/dist/services/entity.service.mjs.map +1 -1
  23. package/dist/services/fetch-api.service.mjs +8 -2
  24. package/dist/services/fetch-api.service.mjs.map +1 -1
  25. package/dist/services/floor.service.mjs +3 -1
  26. package/dist/services/floor.service.mjs.map +1 -1
  27. package/dist/services/id-by.service.mjs +2 -1
  28. package/dist/services/id-by.service.mjs.map +1 -1
  29. package/dist/services/index.d.mts +1 -0
  30. package/dist/services/index.mjs +1 -0
  31. package/dist/services/index.mjs.map +1 -1
  32. package/dist/services/label.service.mjs +3 -1
  33. package/dist/services/label.service.mjs.map +1 -1
  34. package/dist/services/reference.service.mjs +15 -4
  35. package/dist/services/reference.service.mjs.map +1 -1
  36. package/dist/services/registry.service.mjs +8 -8
  37. package/dist/services/registry.service.mjs.map +1 -1
  38. package/dist/services/websocket-api.service.mjs +10 -2
  39. package/dist/services/websocket-api.service.mjs.map +1 -1
  40. package/dist/services/zone.service.mjs +3 -1
  41. package/dist/services/zone.service.mjs.map +1 -1
  42. package/dist/testing/area.spec.mjs +141 -132
  43. package/dist/testing/area.spec.mjs.map +1 -1
  44. package/dist/testing/device.spec.mjs +17 -0
  45. package/dist/testing/device.spec.mjs.map +1 -1
  46. package/dist/testing/entity.spec.mjs +167 -0
  47. package/dist/testing/entity.spec.mjs.map +1 -1
  48. package/dist/testing/fetch.spec.d.mts +1 -0
  49. package/dist/testing/fetch.spec.mjs +45 -0
  50. package/dist/testing/fetch.spec.mjs.map +1 -0
  51. package/dist/testing/floor.spec.mjs +17 -0
  52. package/dist/testing/floor.spec.mjs.map +1 -1
  53. package/dist/testing/label.spec.mjs +17 -0
  54. package/dist/testing/label.spec.mjs.map +1 -1
  55. package/dist/testing/zone.spec.mjs +24 -5
  56. package/dist/testing/zone.spec.mjs.map +1 -1
  57. package/package.json +17 -17
  58. package/src/hass.module.mts +18 -0
  59. package/src/helpers/fetch.mts +1 -1
  60. package/src/helpers/utility.mts +5 -0
  61. package/src/services/area.service.mts +9 -0
  62. package/src/services/call-proxy.service.mts +16 -9
  63. package/src/services/config.service.mts +21 -16
  64. package/src/services/device.service.mts +3 -0
  65. package/src/services/diagnostics.service.mts +45 -0
  66. package/src/services/entity.service.mts +12 -0
  67. package/src/services/fetch-api.service.mts +11 -2
  68. package/src/services/floor.service.mts +3 -0
  69. package/src/services/id-by.service.mts +2 -1
  70. package/src/services/index.mts +1 -0
  71. package/src/services/label.service.mts +3 -0
  72. package/src/services/reference.service.mts +15 -3
  73. package/src/services/registry.service.mts +8 -8
  74. package/src/services/websocket-api.service.mts +10 -2
  75. package/src/services/zone.service.mts +3 -0
  76. package/src/testing/area.spec.mts +153 -140
  77. package/src/testing/device.spec.mts +22 -0
  78. package/src/testing/entity.spec.mts +201 -0
  79. package/src/testing/fetch.spec.mts +54 -0
  80. package/src/testing/floor.spec.mts +22 -0
  81. package/src/testing/label.spec.mts +22 -0
  82. package/src/testing/zone.spec.mts +29 -5
@@ -1,3 +1,5 @@
1
+ import { subscribe } from "node:diagnostics_channel";
2
+
1
3
  import { sleep } from "@digital-alchemy/core";
2
4
 
3
5
  import { LABEL_REGISTRY_UPDATED, LabelDefinition } from "../helpers/index.mts";
@@ -103,6 +105,26 @@ describe("Label", () => {
103
105
  });
104
106
  });
105
107
  });
108
+
109
+ it("should publish diagnostics on label registry update", async () => {
110
+ expect.assertions(1);
111
+ hassTestRunner.configure({ hass: { EMIT_DIAGNOSTICS: true } });
112
+ await hassTestRunner.run(({ lifecycle, hass }) => {
113
+ vi.spyOn(hass.socket, "sendMessage").mockImplementation(async () => undefined);
114
+ const spy = vi.fn();
115
+ subscribe(hass.diagnostics.label.registry_update.name, spy);
116
+ lifecycle.onReady(async () => {
117
+ setImmediate(async () => {
118
+ hass.socket.socketEvents.emit("label_registry_updated");
119
+ });
120
+ await sleep(100);
121
+ expect(spy).toHaveBeenCalledWith(
122
+ expect.objectContaining({ ms: expect.any(Number) }),
123
+ hass.diagnostics.label.registry_update.name,
124
+ );
125
+ });
126
+ });
127
+ });
106
128
  });
107
129
 
108
130
  describe("Order of operations", () => {
@@ -1,3 +1,5 @@
1
+ import { subscribe } from "node:diagnostics_channel";
2
+
1
3
  import { sleep } from "@digital-alchemy/core";
2
4
 
3
5
  import { ZONE_REGISTRY_UPDATED, ZoneDetails } from "../helpers/index.mts";
@@ -10,11 +12,13 @@ describe("Zone", () => {
10
12
  });
11
13
 
12
14
  const EXAMPLE_ZONE = {
13
- icon: "",
14
- latitude: 0,
15
- longitude: 0,
16
- name: "Test",
17
- passive: true,
15
+ icon: "mdi:map-marker",
16
+ id: "test",
17
+ latitude: 37.7749,
18
+ longitude: -122.4194,
19
+ name: "Example Zone",
20
+ passive: false,
21
+ radius: 100,
18
22
  } as ZoneDetails;
19
23
 
20
24
  describe("Lifecycle", () => {
@@ -62,6 +66,26 @@ describe("Zone", () => {
62
66
  });
63
67
  });
64
68
  });
69
+
70
+ it("should publish diagnostics on zone registry update", async () => {
71
+ expect.assertions(1);
72
+ hassTestRunner.configure({ hass: { EMIT_DIAGNOSTICS: true } });
73
+ await hassTestRunner.run(({ lifecycle, hass }) => {
74
+ vi.spyOn(hass.socket, "sendMessage").mockImplementation(async () => undefined);
75
+ const spy = vi.fn();
76
+ subscribe(hass.diagnostics.zone.registry_update.name, spy);
77
+ lifecycle.onReady(async () => {
78
+ setImmediate(async () => {
79
+ hass.socket.socketEvents.emit("zone_registry_updated");
80
+ });
81
+ await sleep(100);
82
+ expect(spy).toHaveBeenCalledWith(
83
+ expect.objectContaining({ ms: expect.any(Number) }),
84
+ hass.diagnostics.zone.registry_update.name,
85
+ );
86
+ });
87
+ });
88
+ });
65
89
  });
66
90
 
67
91
  describe("Order of operations", () => {