@digital-alchemy/hass 0.3.21 → 0.3.22

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 (132) hide show
  1. package/dist/dynamic.d.ts +3227 -202
  2. package/dist/dynamic.js +335 -85
  3. package/dist/dynamic.js.map +1 -1
  4. package/dist/e2e/app/entities.d.ts +5 -0
  5. package/dist/e2e/app/entities.js +21 -0
  6. package/dist/e2e/app/entities.js.map +1 -0
  7. package/dist/e2e/app/main.d.ts +10 -0
  8. package/dist/e2e/app/main.js +15 -0
  9. package/dist/e2e/app/main.js.map +1 -0
  10. package/dist/e2e/area.spec.d.ts +1 -0
  11. package/dist/e2e/area.spec.js +99 -0
  12. package/dist/e2e/area.spec.js.map +1 -0
  13. package/dist/e2e/call-proxy.spec.d.ts +1 -0
  14. package/dist/e2e/call-proxy.spec.js +57 -0
  15. package/dist/e2e/call-proxy.spec.js.map +1 -0
  16. package/dist/e2e/device.spec.d.ts +1 -0
  17. package/dist/e2e/device.spec.js +27 -0
  18. package/dist/e2e/device.spec.js.map +1 -0
  19. package/dist/e2e/entity.spec.d.ts +1 -0
  20. package/dist/e2e/entity.spec.js +328 -0
  21. package/dist/e2e/entity.spec.js.map +1 -0
  22. package/dist/e2e/fetch.spec.d.ts +1 -0
  23. package/dist/e2e/fetch.spec.js +79 -0
  24. package/dist/e2e/fetch.spec.js.map +1 -0
  25. package/dist/e2e/floor.spec.d.ts +1 -0
  26. package/dist/e2e/floor.spec.js +81 -0
  27. package/dist/e2e/floor.spec.js.map +1 -0
  28. package/dist/e2e/label.spec.d.ts +1 -0
  29. package/dist/e2e/label.spec.js +82 -0
  30. package/dist/e2e/label.spec.js.map +1 -0
  31. package/dist/e2e/utils.d.ts +2 -0
  32. package/dist/e2e/utils.js +6 -0
  33. package/dist/e2e/utils.js.map +1 -0
  34. package/dist/extensions/area.extension.d.ts +5 -5
  35. package/dist/extensions/area.extension.js +60 -51
  36. package/dist/extensions/area.extension.js.map +1 -1
  37. package/dist/extensions/call-proxy.extension.d.ts +1 -1
  38. package/dist/extensions/call-proxy.extension.js +13 -26
  39. package/dist/extensions/call-proxy.extension.js.map +1 -1
  40. package/dist/extensions/conversation.extension.js +1 -1
  41. package/dist/extensions/conversation.extension.js.map +1 -1
  42. package/dist/extensions/device.extension.d.ts +1 -1
  43. package/dist/extensions/device.extension.js +2 -1
  44. package/dist/extensions/device.extension.js.map +1 -1
  45. package/dist/extensions/entity.extension.d.ts +23 -10
  46. package/dist/extensions/entity.extension.js +51 -27
  47. package/dist/extensions/entity.extension.js.map +1 -1
  48. package/dist/extensions/fetch-api.extension.d.ts +5 -4
  49. package/dist/extensions/fetch-api.extension.js +41 -30
  50. package/dist/extensions/fetch-api.extension.js.map +1 -1
  51. package/dist/extensions/floor.extension.d.ts +0 -5
  52. package/dist/extensions/floor.extension.js +1 -2
  53. package/dist/extensions/floor.extension.js.map +1 -1
  54. package/dist/extensions/label.extension.d.ts +4 -9
  55. package/dist/extensions/label.extension.js +35 -33
  56. package/dist/extensions/label.extension.js.map +1 -1
  57. package/dist/extensions/websocket-api.extension.d.ts +21 -4
  58. package/dist/extensions/websocket-api.extension.js +94 -57
  59. package/dist/extensions/websocket-api.extension.js.map +1 -1
  60. package/dist/extensions/zone.extension.d.ts +0 -6
  61. package/dist/extensions/zone.extension.js +0 -2
  62. package/dist/extensions/zone.extension.js.map +1 -1
  63. package/dist/hass.module.d.ts +10 -0
  64. package/dist/hass.module.js +13 -0
  65. package/dist/hass.module.js.map +1 -1
  66. package/dist/helpers/constants.helper.d.ts +1 -40
  67. package/dist/helpers/constants.helper.js +2 -45
  68. package/dist/helpers/constants.helper.js.map +1 -1
  69. package/dist/helpers/fetch/calendar.d.ts +1 -1
  70. package/dist/helpers/fetch/configuration.d.ts +4 -4
  71. package/dist/helpers/metrics.helper.d.ts +4 -0
  72. package/dist/helpers/metrics.helper.js +15 -7
  73. package/dist/helpers/metrics.helper.js.map +1 -1
  74. package/dist/helpers/registry.d.ts +1 -1
  75. package/dist/helpers/utility.helper.d.ts +3 -2
  76. package/dist/helpers/utility.helper.js.map +1 -1
  77. package/dist/helpers/websocket.helper.d.ts +12 -12
  78. package/dist/mock_assistant/extensions/events.extension.d.ts +6 -0
  79. package/dist/mock_assistant/extensions/events.extension.js +28 -0
  80. package/dist/mock_assistant/extensions/events.extension.js.map +1 -0
  81. package/dist/mock_assistant/extensions/fixtures.extension.d.ts +13 -0
  82. package/dist/mock_assistant/extensions/fixtures.extension.js +52 -0
  83. package/dist/mock_assistant/extensions/fixtures.extension.js.map +1 -0
  84. package/dist/mock_assistant/extensions/index.d.ts +2 -0
  85. package/dist/mock_assistant/extensions/index.js +6 -0
  86. package/dist/mock_assistant/extensions/index.js.map +1 -0
  87. package/dist/mock_assistant/helpers/fixtures.d.ts +10 -0
  88. package/dist/mock_assistant/helpers/fixtures.js +3 -0
  89. package/dist/mock_assistant/helpers/fixtures.js.map +1 -0
  90. package/dist/mock_assistant/helpers/index.d.ts +2 -0
  91. package/dist/mock_assistant/helpers/index.js +6 -0
  92. package/dist/mock_assistant/helpers/index.js.map +1 -0
  93. package/dist/mock_assistant/helpers/utils.d.ts +3 -0
  94. package/dist/mock_assistant/helpers/utils.js +31 -0
  95. package/dist/mock_assistant/helpers/utils.js.map +1 -0
  96. package/dist/mock_assistant/index.d.ts +3 -0
  97. package/dist/mock_assistant/index.js +7 -0
  98. package/dist/mock_assistant/index.js.map +1 -0
  99. package/dist/mock_assistant/main.d.ts +2 -0
  100. package/dist/mock_assistant/main.js +37 -0
  101. package/dist/mock_assistant/main.js.map +1 -0
  102. package/dist/mock_assistant/mock-assistant.module.d.ts +16 -0
  103. package/dist/mock_assistant/mock-assistant.module.js +22 -0
  104. package/dist/mock_assistant/mock-assistant.module.js.map +1 -0
  105. package/dist/testing/area.spec.d.ts +1 -0
  106. package/dist/testing/area.spec.js +224 -0
  107. package/dist/testing/area.spec.js.map +1 -0
  108. package/dist/testing/config.spec.d.ts +1 -0
  109. package/dist/testing/config.spec.js +232 -0
  110. package/dist/testing/config.spec.js.map +1 -0
  111. package/dist/testing/device.spec.d.ts +1 -0
  112. package/dist/testing/device.spec.js +81 -0
  113. package/dist/testing/device.spec.js.map +1 -0
  114. package/dist/testing/entity.spec.d.ts +1 -0
  115. package/dist/testing/entity.spec.js +29 -0
  116. package/dist/testing/entity.spec.js.map +1 -0
  117. package/dist/testing/fetch-api.spec.d.ts +1 -0
  118. package/dist/testing/fetch-api.spec.js +476 -0
  119. package/dist/testing/fetch-api.spec.js.map +1 -0
  120. package/dist/testing/floor.spec.d.ts +1 -0
  121. package/dist/testing/floor.spec.js +223 -0
  122. package/dist/testing/floor.spec.js.map +1 -0
  123. package/dist/testing/label.spec.d.ts +1 -0
  124. package/dist/testing/label.spec.js +223 -0
  125. package/dist/testing/label.spec.js.map +1 -0
  126. package/dist/testing/websocket.spec.d.ts +8 -0
  127. package/dist/testing/websocket.spec.js +71 -0
  128. package/dist/testing/websocket.spec.js.map +1 -0
  129. package/dist/testing/workflow.spec.d.ts +1 -0
  130. package/dist/testing/workflow.spec.js +164 -0
  131. package/dist/testing/workflow.spec.js.map +1 -0
  132. package/package.json +36 -9
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const helpers_1 = require("../helpers");
4
+ const utils_1 = require("../mock_assistant/helpers/utils");
5
+ describe("Floor", () => {
6
+ let application;
7
+ const EXAMPLE_FLOOR = {
8
+ aliases: [],
9
+ floor_id: "upstairs",
10
+ icon: null,
11
+ level: 2,
12
+ name: "Upstairs",
13
+ };
14
+ afterEach(async () => {
15
+ if (application) {
16
+ await application.teardown();
17
+ application = undefined;
18
+ }
19
+ jest.restoreAllMocks();
20
+ });
21
+ describe("Lifecycle", () => {
22
+ it("should force values to be available before ready", async () => {
23
+ expect.assertions(1);
24
+ application = (0, utils_1.CreateTestingApplication)({
25
+ Test({ lifecycle, hass }) {
26
+ const spy = jest
27
+ .spyOn(hass.socket, "sendMessage")
28
+ .mockImplementation(async () => [EXAMPLE_FLOOR]);
29
+ lifecycle.onReady(async () => {
30
+ await hass.floor.list();
31
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({ type: "config/floor_registry/list" }));
32
+ });
33
+ },
34
+ });
35
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
36
+ hass: {
37
+ AUTO_CONNECT_SOCKET: false,
38
+ AUTO_SCAN_CALL_PROXY: false,
39
+ },
40
+ }));
41
+ });
42
+ });
43
+ describe("API", () => {
44
+ describe("Formatting", () => {
45
+ it("should call list properly", async () => {
46
+ expect.assertions(1);
47
+ application = (0, utils_1.CreateTestingApplication)({
48
+ Test({ lifecycle, hass }) {
49
+ const spy = jest
50
+ .spyOn(hass.socket, "sendMessage")
51
+ .mockImplementation(async () => []);
52
+ lifecycle.onReady(async () => {
53
+ await hass.floor.list();
54
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({ type: "config/floor_registry/list" }));
55
+ });
56
+ },
57
+ });
58
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
59
+ hass: {
60
+ AUTO_CONNECT_SOCKET: false,
61
+ AUTO_SCAN_CALL_PROXY: false,
62
+ },
63
+ }));
64
+ });
65
+ it("should call update properly", async () => {
66
+ expect.assertions(1);
67
+ application = (0, utils_1.CreateTestingApplication)({
68
+ Test({ lifecycle, hass, event }) {
69
+ const spy = jest
70
+ .spyOn(hass.socket, "sendMessage")
71
+ .mockImplementation(async () => undefined);
72
+ lifecycle.onReady(async () => {
73
+ setImmediate(() => event.emit(helpers_1.FLOOR_REGISTRY_UPDATED));
74
+ await hass.floor.update(EXAMPLE_FLOOR);
75
+ expect(spy).toHaveBeenCalledWith({
76
+ type: "config/floor_registry/update",
77
+ ...EXAMPLE_FLOOR,
78
+ });
79
+ });
80
+ },
81
+ });
82
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
83
+ hass: {
84
+ AUTO_CONNECT_SOCKET: false,
85
+ AUTO_SCAN_CALL_PROXY: false,
86
+ },
87
+ }));
88
+ });
89
+ it("should call delete properly", async () => {
90
+ expect.assertions(1);
91
+ application = (0, utils_1.CreateTestingApplication)({
92
+ Test({ lifecycle, hass, event }) {
93
+ const spy = jest
94
+ .spyOn(hass.socket, "sendMessage")
95
+ .mockImplementation(async () => undefined);
96
+ lifecycle.onReady(async () => {
97
+ setImmediate(() => event.emit(helpers_1.FLOOR_REGISTRY_UPDATED));
98
+ await hass.floor.delete(EXAMPLE_FLOOR.floor_id);
99
+ expect(spy).toHaveBeenCalledWith({
100
+ floor_id: "upstairs",
101
+ type: "config/floor_registry/delete",
102
+ });
103
+ });
104
+ },
105
+ });
106
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
107
+ hass: {
108
+ AUTO_CONNECT_SOCKET: false,
109
+ AUTO_SCAN_CALL_PROXY: false,
110
+ },
111
+ }));
112
+ });
113
+ it("should call create properly", async () => {
114
+ expect.assertions(1);
115
+ application = (0, utils_1.CreateTestingApplication)({
116
+ Test({ lifecycle, hass, event }) {
117
+ const spy = jest
118
+ .spyOn(hass.socket, "sendMessage")
119
+ .mockImplementation(async () => undefined);
120
+ lifecycle.onReady(async () => {
121
+ setImmediate(() => event.emit(helpers_1.FLOOR_REGISTRY_UPDATED));
122
+ await hass.floor.create(EXAMPLE_FLOOR);
123
+ expect(spy).toHaveBeenCalledWith({
124
+ type: "config/floor_registry/create",
125
+ ...EXAMPLE_FLOOR,
126
+ });
127
+ });
128
+ },
129
+ });
130
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
131
+ hass: {
132
+ AUTO_CONNECT_SOCKET: false,
133
+ AUTO_SCAN_CALL_PROXY: false,
134
+ },
135
+ }));
136
+ });
137
+ });
138
+ describe("Order of operations", () => {
139
+ it("should wait for an update before returning when updating", async () => {
140
+ expect.assertions(1);
141
+ application = (0, utils_1.CreateTestingApplication)({
142
+ Test({ lifecycle, hass, event }) {
143
+ jest
144
+ .spyOn(hass.socket, "sendMessage")
145
+ .mockImplementation(async () => undefined);
146
+ lifecycle.onReady(async () => {
147
+ const response = hass.floor.update(EXAMPLE_FLOOR);
148
+ let order = "";
149
+ setTimeout(() => {
150
+ order += "a";
151
+ event.emit(helpers_1.FLOOR_REGISTRY_UPDATED);
152
+ }, 5);
153
+ await response;
154
+ order += "b";
155
+ expect(order).toEqual("ab");
156
+ });
157
+ },
158
+ });
159
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
160
+ hass: {
161
+ AUTO_CONNECT_SOCKET: false,
162
+ AUTO_SCAN_CALL_PROXY: false,
163
+ },
164
+ }));
165
+ });
166
+ it("should wait for an update before returning when deleting", async () => {
167
+ expect.assertions(1);
168
+ application = (0, utils_1.CreateTestingApplication)({
169
+ Test({ lifecycle, hass, event }) {
170
+ jest
171
+ .spyOn(hass.socket, "sendMessage")
172
+ .mockImplementation(async () => undefined);
173
+ lifecycle.onReady(async () => {
174
+ const response = hass.floor.delete("example_floor");
175
+ let order = "";
176
+ setTimeout(() => {
177
+ order += "a";
178
+ event.emit(helpers_1.FLOOR_REGISTRY_UPDATED);
179
+ }, 5);
180
+ await response;
181
+ order += "b";
182
+ expect(order).toEqual("ab");
183
+ });
184
+ },
185
+ });
186
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
187
+ hass: {
188
+ AUTO_CONNECT_SOCKET: false,
189
+ AUTO_SCAN_CALL_PROXY: false,
190
+ },
191
+ }));
192
+ });
193
+ it("should wait for an update before returning when creating", async () => {
194
+ expect.assertions(1);
195
+ application = (0, utils_1.CreateTestingApplication)({
196
+ Test({ lifecycle, hass, event }) {
197
+ jest
198
+ .spyOn(hass.socket, "sendMessage")
199
+ .mockImplementation(async () => undefined);
200
+ lifecycle.onReady(async () => {
201
+ const response = hass.floor.create(EXAMPLE_FLOOR);
202
+ let order = "";
203
+ setTimeout(() => {
204
+ order += "a";
205
+ event.emit(helpers_1.FLOOR_REGISTRY_UPDATED);
206
+ }, 5);
207
+ await response;
208
+ order += "b";
209
+ expect(order).toEqual("ab");
210
+ });
211
+ },
212
+ });
213
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
214
+ hass: {
215
+ AUTO_CONNECT_SOCKET: false,
216
+ AUTO_SCAN_CALL_PROXY: false,
217
+ },
218
+ }));
219
+ });
220
+ });
221
+ });
222
+ });
223
+ //# sourceMappingURL=floor.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floor.spec.js","sourceRoot":"","sources":["../../src/testing/floor.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const helpers_1 = require("../helpers");
4
+ const utils_1 = require("../mock_assistant/helpers/utils");
5
+ describe("Label", () => {
6
+ let application;
7
+ const EXAMPLE_LABEL = {
8
+ color: "accent",
9
+ description: "test",
10
+ icon: "mdi:brain",
11
+ label_id: "synapse",
12
+ name: "synapse",
13
+ };
14
+ afterEach(async () => {
15
+ if (application) {
16
+ await application.teardown();
17
+ application = undefined;
18
+ }
19
+ jest.restoreAllMocks();
20
+ });
21
+ describe("Lifecycle", () => {
22
+ it("should force values to be available before ready", async () => {
23
+ expect.assertions(1);
24
+ application = (0, utils_1.CreateTestingApplication)({
25
+ Test({ lifecycle, hass }) {
26
+ const spy = jest
27
+ .spyOn(hass.socket, "sendMessage")
28
+ .mockImplementation(async () => [EXAMPLE_LABEL]);
29
+ lifecycle.onReady(async () => {
30
+ await hass.label.list();
31
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({ type: "config/label_registry/list" }));
32
+ });
33
+ },
34
+ });
35
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
36
+ hass: {
37
+ AUTO_CONNECT_SOCKET: false,
38
+ AUTO_SCAN_CALL_PROXY: false,
39
+ },
40
+ }));
41
+ });
42
+ });
43
+ describe("API", () => {
44
+ describe("Formatting", () => {
45
+ it("should call list properly", async () => {
46
+ expect.assertions(1);
47
+ application = (0, utils_1.CreateTestingApplication)({
48
+ Test({ lifecycle, hass }) {
49
+ const spy = jest
50
+ .spyOn(hass.socket, "sendMessage")
51
+ .mockImplementation(async () => []);
52
+ lifecycle.onReady(async () => {
53
+ await hass.label.list();
54
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({ type: "config/label_registry/list" }));
55
+ });
56
+ },
57
+ });
58
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
59
+ hass: {
60
+ AUTO_CONNECT_SOCKET: false,
61
+ AUTO_SCAN_CALL_PROXY: false,
62
+ },
63
+ }));
64
+ });
65
+ it("should call update properly", async () => {
66
+ expect.assertions(1);
67
+ application = (0, utils_1.CreateTestingApplication)({
68
+ Test({ lifecycle, hass, event }) {
69
+ const spy = jest
70
+ .spyOn(hass.socket, "sendMessage")
71
+ .mockImplementation(async () => undefined);
72
+ lifecycle.onReady(async () => {
73
+ setImmediate(() => event.emit(helpers_1.LABEL_REGISTRY_UPDATED));
74
+ await hass.label.update(EXAMPLE_LABEL);
75
+ expect(spy).toHaveBeenCalledWith({
76
+ type: "config/label_registry/update",
77
+ ...EXAMPLE_LABEL,
78
+ });
79
+ });
80
+ },
81
+ });
82
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
83
+ hass: {
84
+ AUTO_CONNECT_SOCKET: false,
85
+ AUTO_SCAN_CALL_PROXY: false,
86
+ },
87
+ }));
88
+ });
89
+ it("should call delete properly", async () => {
90
+ expect.assertions(1);
91
+ application = (0, utils_1.CreateTestingApplication)({
92
+ Test({ lifecycle, hass, event }) {
93
+ const spy = jest
94
+ .spyOn(hass.socket, "sendMessage")
95
+ .mockImplementation(async () => undefined);
96
+ lifecycle.onReady(async () => {
97
+ setImmediate(() => event.emit(helpers_1.LABEL_REGISTRY_UPDATED));
98
+ await hass.label.delete(EXAMPLE_LABEL.label_id);
99
+ expect(spy).toHaveBeenCalledWith({
100
+ label_id: "synapse",
101
+ type: "config/label_registry/delete",
102
+ });
103
+ });
104
+ },
105
+ });
106
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
107
+ hass: {
108
+ AUTO_CONNECT_SOCKET: false,
109
+ AUTO_SCAN_CALL_PROXY: false,
110
+ },
111
+ }));
112
+ });
113
+ it("should call create properly", async () => {
114
+ expect.assertions(1);
115
+ application = (0, utils_1.CreateTestingApplication)({
116
+ Test({ lifecycle, hass, event }) {
117
+ const spy = jest
118
+ .spyOn(hass.socket, "sendMessage")
119
+ .mockImplementation(async () => undefined);
120
+ lifecycle.onReady(async () => {
121
+ setImmediate(() => event.emit(helpers_1.LABEL_REGISTRY_UPDATED));
122
+ await hass.label.create(EXAMPLE_LABEL);
123
+ expect(spy).toHaveBeenCalledWith({
124
+ type: "config/label_registry/create",
125
+ ...EXAMPLE_LABEL,
126
+ });
127
+ });
128
+ },
129
+ });
130
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
131
+ hass: {
132
+ AUTO_CONNECT_SOCKET: false,
133
+ AUTO_SCAN_CALL_PROXY: false,
134
+ },
135
+ }));
136
+ });
137
+ });
138
+ describe("Order of operations", () => {
139
+ it("should wait for an update before returning when updating", async () => {
140
+ expect.assertions(1);
141
+ application = (0, utils_1.CreateTestingApplication)({
142
+ Test({ lifecycle, hass, event }) {
143
+ jest
144
+ .spyOn(hass.socket, "sendMessage")
145
+ .mockImplementation(async () => undefined);
146
+ lifecycle.onReady(async () => {
147
+ const response = hass.label.update(EXAMPLE_LABEL);
148
+ let order = "";
149
+ setTimeout(() => {
150
+ order += "a";
151
+ event.emit(helpers_1.LABEL_REGISTRY_UPDATED);
152
+ }, 5);
153
+ await response;
154
+ order += "b";
155
+ expect(order).toEqual("ab");
156
+ });
157
+ },
158
+ });
159
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
160
+ hass: {
161
+ AUTO_CONNECT_SOCKET: false,
162
+ AUTO_SCAN_CALL_PROXY: false,
163
+ },
164
+ }));
165
+ });
166
+ it("should wait for an update before returning when deleting", async () => {
167
+ expect.assertions(1);
168
+ application = (0, utils_1.CreateTestingApplication)({
169
+ Test({ lifecycle, hass, event }) {
170
+ jest
171
+ .spyOn(hass.socket, "sendMessage")
172
+ .mockImplementation(async () => undefined);
173
+ lifecycle.onReady(async () => {
174
+ const response = hass.label.delete("example_label");
175
+ let order = "";
176
+ setTimeout(() => {
177
+ order += "a";
178
+ event.emit(helpers_1.LABEL_REGISTRY_UPDATED);
179
+ }, 5);
180
+ await response;
181
+ order += "b";
182
+ expect(order).toEqual("ab");
183
+ });
184
+ },
185
+ });
186
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
187
+ hass: {
188
+ AUTO_CONNECT_SOCKET: false,
189
+ AUTO_SCAN_CALL_PROXY: false,
190
+ },
191
+ }));
192
+ });
193
+ it("should wait for an update before returning when creating", async () => {
194
+ expect.assertions(1);
195
+ application = (0, utils_1.CreateTestingApplication)({
196
+ Test({ lifecycle, hass, event }) {
197
+ jest
198
+ .spyOn(hass.socket, "sendMessage")
199
+ .mockImplementation(async () => undefined);
200
+ lifecycle.onReady(async () => {
201
+ const response = hass.label.create(EXAMPLE_LABEL);
202
+ let order = "";
203
+ setTimeout(() => {
204
+ order += "a";
205
+ event.emit(helpers_1.LABEL_REGISTRY_UPDATED);
206
+ }, 5);
207
+ await response;
208
+ order += "b";
209
+ expect(order).toEqual("ab");
210
+ });
211
+ },
212
+ });
213
+ await application.bootstrap((0, utils_1.SILENT_BOOT)({
214
+ hass: {
215
+ AUTO_CONNECT_SOCKET: false,
216
+ AUTO_SCAN_CALL_PROXY: false,
217
+ },
218
+ }));
219
+ });
220
+ });
221
+ });
222
+ });
223
+ //# sourceMappingURL=label.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.spec.js","sourceRoot":"","sources":["../../src/testing/label.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ApplicationDefinition, ModuleConfiguration, TServiceParams } from "@digital-alchemy/core";
2
+ declare module "@digital-alchemy/core" {
3
+ interface LoadedModules {
4
+ testing_host: ApplicationDefinition<{
5
+ Loader(PARAMS: TServiceParams): void;
6
+ }, ModuleConfiguration>;
7
+ }
8
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mock_assistant_1 = require("../mock_assistant");
4
+ describe("Websocket", () => {
5
+ let application;
6
+ afterEach(async () => {
7
+ if (application) {
8
+ await application.teardown();
9
+ application = undefined;
10
+ }
11
+ jest.restoreAllMocks();
12
+ });
13
+ describe("API Interactions", () => {
14
+ it("should emit events onConnect", async () => {
15
+ expect.assertions(1);
16
+ application = (0, mock_assistant_1.CreateTestingApplication)({
17
+ Test({ lifecycle, hass }) {
18
+ let hit = false;
19
+ hass.socket.onConnect(() => (hit = true));
20
+ lifecycle.onReady(() => {
21
+ expect(hit).toBe(true);
22
+ });
23
+ },
24
+ });
25
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
26
+ });
27
+ it("should emit a socket message with subscribeEvents", async () => {
28
+ expect.assertions(1);
29
+ application = (0, mock_assistant_1.CreateTestingApplication)({
30
+ Test({ lifecycle, hass, context }) {
31
+ const spy = jest
32
+ .spyOn(hass.socket, "sendMessage")
33
+ .mockImplementation(async () => undefined);
34
+ lifecycle.onReady(async () => {
35
+ await hass.socket.subscribe({
36
+ context,
37
+ event_type: "test",
38
+ exec: () => { },
39
+ });
40
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({
41
+ event_type: "test",
42
+ type: "subscribe_events",
43
+ }));
44
+ });
45
+ },
46
+ });
47
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
48
+ });
49
+ it("should emit a socket message with fireEvent", async () => {
50
+ expect.assertions(1);
51
+ application = (0, mock_assistant_1.CreateTestingApplication)({
52
+ Test({ lifecycle, hass }) {
53
+ const spy = jest
54
+ .spyOn(hass.socket, "sendMessage")
55
+ .mockImplementation(async () => undefined);
56
+ lifecycle.onReady(async () => {
57
+ const data = { example: "data" };
58
+ await hass.socket.fireEvent("test_event", data);
59
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({
60
+ event_data: data,
61
+ event_type: "test_event",
62
+ type: "fire_event",
63
+ }));
64
+ });
65
+ },
66
+ });
67
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
68
+ });
69
+ });
70
+ });
71
+ //# sourceMappingURL=websocket.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.spec.js","sourceRoot":"","sources":["../../src/testing/websocket.spec.ts"],"names":[],"mappings":";;AAQA,sDAA0E;AAW1E,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,WAGH,CAAC;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrB,WAAW,GAAG,IAAA,yCAAwB,EAAC;gBACrC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAkB;oBACtC,IAAI,GAAG,GAAG,KAAK,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC1C,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE;wBACrB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YACH,MAAM,WAAW,CAAC,SAAS,CACzB,IAAA,4BAAW,EAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CACnD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrB,WAAW,GAAG,IAAA,yCAAwB,EAAC;gBACrC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAkB;oBAC/C,MAAM,GAAG,GAAG,IAAI;yBACb,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;yBACjC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC7C,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;wBAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;4BAC1B,OAAO;4BACP,UAAU,EAAE,MAAM;4BAClB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;yBACf,CAAC,CAAC;wBACH,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAC9B,MAAM,CAAC,gBAAgB,CAAC;4BACtB,UAAU,EAAE,MAAM;4BAClB,IAAI,EAAE,kBAAkB;yBACzB,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YACH,MAAM,WAAW,CAAC,SAAS,CACzB,IAAA,4BAAW,EAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CACnD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrB,WAAW,GAAG,IAAA,yCAAwB,EAAC;gBACrC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAkB;oBACtC,MAAM,GAAG,GAAG,IAAI;yBACb,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;yBACjC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC7C,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;wBAC3B,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;wBACjC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;wBAChD,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAC9B,MAAM,CAAC,gBAAgB,CAAC;4BACtB,UAAU,EAAE,IAAI;4BAChB,UAAU,EAAE,YAAY;4BACxB,IAAI,EAAE,YAAY;yBACnB,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YACH,MAAM,WAAW,CAAC,SAAS,CACzB,IAAA,4BAAW,EAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CACnD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};