@digital-alchemy/hass 0.3.21 → 0.3.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 (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 +7 -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 +32 -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 +57 -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 +11 -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 +4 -0
  94. package/dist/mock_assistant/helpers/utils.js +49 -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 +38 -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 +119 -0
  131. package/dist/testing/workflow.spec.js.map +1 -0
  132. package/package.json +36 -9
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@digital-alchemy/core");
4
+ const mock_assistant_1 = require("../mock_assistant");
5
+ const utils_1 = require("./utils");
6
+ const SETTLE_TIMEOUT = 1000;
7
+ describe("Call Proxy E2E", () => {
8
+ let application;
9
+ afterEach(async () => {
10
+ if (application) {
11
+ await application.teardown();
12
+ application = undefined;
13
+ }
14
+ jest.restoreAllMocks();
15
+ });
16
+ it("should cause a service call to happen", async () => {
17
+ expect.assertions(1);
18
+ application = (0, mock_assistant_1.CreateTestingApplication)({
19
+ Test({ lifecycle, hass }) {
20
+ lifecycle.onReady(async () => {
21
+ let hit = false;
22
+ const wait = (0, core_1.sleep)(SETTLE_TIMEOUT);
23
+ hass.entity.byId("switch.porch_light").onUpdate(() => {
24
+ hit = true;
25
+ wait.kill("continue");
26
+ });
27
+ await hass.call.switch.toggle({
28
+ entity_id: "switch.porch_light",
29
+ });
30
+ await wait;
31
+ expect(hit).toBe(true);
32
+ await application.teardown();
33
+ });
34
+ },
35
+ });
36
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
37
+ });
38
+ it("should be possible to mock a call", async () => {
39
+ expect.assertions(1);
40
+ application = (0, mock_assistant_1.CreateTestingApplication)({
41
+ Test({ lifecycle, hass }) {
42
+ lifecycle.onReady(async () => {
43
+ const spy = jest
44
+ .spyOn(hass.call.switch, "toggle")
45
+ .mockImplementation(async () => undefined);
46
+ await hass.call.switch.toggle({
47
+ entity_id: "switch.porch_light",
48
+ });
49
+ expect(spy).toHaveBeenCalledWith({ entity_id: "switch.porch_light" });
50
+ await application.teardown();
51
+ });
52
+ },
53
+ });
54
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
55
+ });
56
+ });
57
+ //# sourceMappingURL=call-proxy.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-proxy.spec.js","sourceRoot":"","sources":["../../src/e2e/call-proxy.spec.ts"],"names":[],"mappings":";;AAAA,gDAM+B;AAE/B,sDAA0E;AAC1E,mCAA0C;AAE1C,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,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,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,WAAW,GAAG,IAAA,yCAAwB,EAAC;YACrC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAkB;gBACtC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;oBAC3B,IAAI,GAAG,GAAG,KAAK,CAAC;oBAChB,MAAM,IAAI,GAAG,IAAA,YAAK,EAAC,cAAc,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;wBACnD,GAAG,GAAG,IAAI,CAAC;wBACX,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;wBAC5B,SAAS,EAAE,oBAAoB;qBAChC,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC;oBACX,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,SAAS,CAAC,IAAA,4BAAW,EAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAR,gBAAQ,EAAE,KAAK,EAAL,aAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,WAAW,GAAG,IAAA,yCAAwB,EAAC;YACrC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAkB;gBACtC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;oBAC3B,MAAM,GAAG,GAAG,IAAI;yBACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;yBACjC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;wBAC5B,SAAS,EAAE,oBAAoB;qBAChC,CAAC,CAAC;oBACH,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;oBACtE,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,SAAS,CAAC,IAAA,4BAAW,EAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAR,gBAAQ,EAAE,KAAK,EAAL,aAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mock_assistant_1 = require("../mock_assistant");
4
+ const utils_1 = require("./utils");
5
+ describe("Device E2E", () => {
6
+ let application;
7
+ afterEach(async () => {
8
+ if (application) {
9
+ await application.teardown();
10
+ application = undefined;
11
+ }
12
+ jest.restoreAllMocks();
13
+ });
14
+ it("should delete a floor", async () => {
15
+ expect.assertions(1);
16
+ application = (0, mock_assistant_1.CreateTestingApplication)({
17
+ Test({ lifecycle, hass }) {
18
+ lifecycle.onReady(async () => {
19
+ expect(hass.device.current.length).toBe(1);
20
+ await application.teardown();
21
+ });
22
+ },
23
+ });
24
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
25
+ });
26
+ });
27
+ //# sourceMappingURL=device.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.spec.js","sourceRoot":"","sources":["../../src/e2e/device.spec.ts"],"names":[],"mappings":";;AAOA,sDAA0E;AAC1E,mCAA0C;AAE1C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,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,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,WAAW,GAAG,IAAA,yCAAwB,EAAC;YACrC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAkB;gBACtC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;oBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC3C,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,SAAS,CAAC,IAAA,4BAAW,EAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAR,gBAAQ,EAAE,KAAK,EAAL,aAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@digital-alchemy/core");
4
+ const mock_assistant_1 = require("../mock_assistant");
5
+ const utils_1 = require("./utils");
6
+ describe("Entity E2E", () => {
7
+ let application;
8
+ afterEach(async () => {
9
+ if (application) {
10
+ await application.teardown();
11
+ application = undefined;
12
+ }
13
+ jest.restoreAllMocks();
14
+ });
15
+ describe("Proxy Objects", () => {
16
+ it("should maintain accurate state", async () => {
17
+ expect.assertions(3);
18
+ application = (0, mock_assistant_1.CreateTestingApplication)({
19
+ Test({ lifecycle, hass }) {
20
+ lifecycle.onReady(async () => {
21
+ const porch = hass.entity.byId("switch.porch_light");
22
+ const startRaw = hass.entity.raw("switch.porch_light");
23
+ expect(porch.state).toBe(startRaw.state);
24
+ hass.call.switch.toggle({ entity_id: "switch.porch_light" });
25
+ const updated = await porch.nextState();
26
+ const endRaw = hass.entity.raw("switch.porch_light");
27
+ expect(updated.state).toBe(porch.state);
28
+ expect(endRaw.state).toBe(porch.state);
29
+ await application.teardown();
30
+ });
31
+ },
32
+ });
33
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
34
+ });
35
+ it("should provide all the properties", async () => {
36
+ expect.assertions(6);
37
+ application = (0, mock_assistant_1.CreateTestingApplication)({
38
+ Test({ lifecycle, hass }) {
39
+ lifecycle.onReady(async () => {
40
+ const porch = hass.entity.byId("switch.porch_light");
41
+ const raw = hass.entity.raw("switch.porch_light");
42
+ expect(porch.state).toBe(raw.state);
43
+ expect(porch.attributes).toEqual(raw.attributes);
44
+ expect(porch.last_changed).toBe(raw.last_changed);
45
+ expect(porch.last_updated).toBe(raw.last_updated);
46
+ expect(porch.last_reported).toBe(raw.last_reported);
47
+ expect(porch.entity_id).toBe(raw.entity_id);
48
+ await application.teardown();
49
+ });
50
+ },
51
+ });
52
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
53
+ });
54
+ it("should run callbacks onUpdate", async () => {
55
+ expect.assertions(1);
56
+ let counter = 0;
57
+ const expected = 3;
58
+ application = (0, mock_assistant_1.CreateTestingApplication)({
59
+ Test({ lifecycle, hass }) {
60
+ lifecycle.onReady(async () => {
61
+ const porch = hass.entity.byId("switch.porch_light");
62
+ porch.onUpdate(() => counter++);
63
+ for (let i = 0; i < expected; i++) {
64
+ await hass.call.switch.toggle({
65
+ entity_id: "switch.porch_light",
66
+ });
67
+ await (0, core_1.sleep)(50);
68
+ }
69
+ expect(counter).toBe(expected);
70
+ await application.teardown();
71
+ });
72
+ },
73
+ });
74
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
75
+ });
76
+ it("should able to remove onUpdate via param", async () => {
77
+ expect.assertions(1);
78
+ let counter = 0;
79
+ application = (0, mock_assistant_1.CreateTestingApplication)({
80
+ Test({ lifecycle, hass }) {
81
+ lifecycle.onReady(async () => {
82
+ const porch = hass.entity.byId("switch.porch_light");
83
+ porch.onUpdate((_new_state, _old_state, remove) => {
84
+ remove();
85
+ counter++;
86
+ });
87
+ for (let i = 0; i <= 3; i++) {
88
+ await hass.call.switch.toggle({
89
+ entity_id: "switch.porch_light",
90
+ });
91
+ await (0, core_1.sleep)(50);
92
+ }
93
+ expect(counter).toBe(1);
94
+ await application.teardown();
95
+ });
96
+ },
97
+ });
98
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
99
+ });
100
+ it("should able to remove onUpdate via return", async () => {
101
+ expect.assertions(1);
102
+ let counter = 0;
103
+ application = (0, mock_assistant_1.CreateTestingApplication)({
104
+ Test({ lifecycle, hass }) {
105
+ lifecycle.onReady(async () => {
106
+ const porch = hass.entity.byId("switch.porch_light");
107
+ const { remove } = porch.onUpdate(() => {
108
+ remove();
109
+ counter++;
110
+ });
111
+ for (let i = 0; i <= 3; i++) {
112
+ await hass.call.switch.toggle({
113
+ entity_id: "switch.porch_light",
114
+ });
115
+ await (0, core_1.sleep)(50);
116
+ }
117
+ expect(counter).toBe(1);
118
+ await application.teardown();
119
+ });
120
+ },
121
+ });
122
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
123
+ });
124
+ it("should able to remove onUpdate via removeAll", async () => {
125
+ expect.assertions(1);
126
+ let counter = 0;
127
+ application = (0, mock_assistant_1.CreateTestingApplication)({
128
+ Test({ lifecycle, hass }) {
129
+ lifecycle.onReady(async () => {
130
+ const porch = hass.entity.byId("switch.porch_light");
131
+ porch.onUpdate(() => {
132
+ porch.removeAllListeners();
133
+ counter++;
134
+ });
135
+ for (let i = 0; i <= 3; i++) {
136
+ await hass.call.switch.toggle({
137
+ entity_id: "switch.porch_light",
138
+ });
139
+ await (0, core_1.sleep)(50);
140
+ }
141
+ expect(counter).toBe(1);
142
+ await application.teardown();
143
+ });
144
+ },
145
+ });
146
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
147
+ });
148
+ it("should run callbacks once", async () => {
149
+ expect.assertions(1);
150
+ let counter = 0;
151
+ application = (0, mock_assistant_1.CreateTestingApplication)({
152
+ Test({ lifecycle, hass }) {
153
+ lifecycle.onReady(async () => {
154
+ const porch = hass.entity.byId("switch.porch_light");
155
+ porch.once(() => counter++);
156
+ for (let i = 0; i <= 2; i++) {
157
+ await hass.call.switch.toggle({
158
+ entity_id: "switch.porch_light",
159
+ });
160
+ await (0, core_1.sleep)(50);
161
+ }
162
+ expect(counter).toBe(1);
163
+ await application.teardown();
164
+ });
165
+ },
166
+ });
167
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
168
+ });
169
+ it("should get next state", async () => {
170
+ expect.assertions(1);
171
+ application = (0, mock_assistant_1.CreateTestingApplication)({
172
+ Test({ lifecycle, hass }) {
173
+ lifecycle.onReady(async () => {
174
+ const porch = hass.entity.byId("switch.porch_light");
175
+ setImmediate(async () => {
176
+ const next = await porch.nextState();
177
+ expect(next.state).toBe(porch.state);
178
+ });
179
+ await hass.call.switch.toggle({ entity_id: "switch.porch_light" });
180
+ await (0, core_1.sleep)(50);
181
+ await application.teardown();
182
+ });
183
+ },
184
+ });
185
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
186
+ });
187
+ it("should run callbacks onUpdate", async () => {
188
+ expect.assertions(1);
189
+ application = (0, mock_assistant_1.CreateTestingApplication)({
190
+ Test({ lifecycle, hass }) {
191
+ lifecycle.onReady(async () => {
192
+ const porch = hass.entity.byId("switch.porch_light");
193
+ setImmediate(async () => {
194
+ const next = await porch.nextState();
195
+ expect(next.state).toBe(porch.state);
196
+ });
197
+ await hass.call.switch.toggle({ entity_id: "switch.porch_light" });
198
+ await (0, core_1.sleep)(50);
199
+ await application.teardown();
200
+ });
201
+ },
202
+ });
203
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
204
+ });
205
+ });
206
+ describe("Lifecycle", () => {
207
+ it("should have data available onReady", async () => {
208
+ expect.assertions(6);
209
+ application = (0, mock_assistant_1.CreateTestingApplication)({
210
+ Test({ lifecycle, hass }) {
211
+ lifecycle.onReady(async () => {
212
+ expect(hass.entity.listEntities().length).toEqual(18);
213
+ expect(hass.area.current.length).toEqual(3);
214
+ expect(hass.floor.current.length).toEqual(2);
215
+ expect(hass.device.current.length).toEqual(1);
216
+ expect(hass.label.current.length).toEqual(1);
217
+ expect(hass.entity.registry.current.length).toEqual(19);
218
+ await application.teardown();
219
+ });
220
+ },
221
+ });
222
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
223
+ });
224
+ });
225
+ describe("Querying", () => {
226
+ it("should return properly byArea", async () => {
227
+ expect.assertions(3);
228
+ application = (0, mock_assistant_1.CreateTestingApplication)({
229
+ Test({ lifecycle, hass }) {
230
+ lifecycle.onReady(async () => {
231
+ expect(hass.entity.byArea("bedroom")).toEqual([
232
+ "switch.bedroom_lamp",
233
+ ]);
234
+ expect(hass.entity.byArea("living_room")).toEqual([
235
+ "switch.living_room_mood_lights",
236
+ ]);
237
+ expect(hass.entity.byArea("kitchen")).toEqual([
238
+ "switch.kitchen_cabinets",
239
+ ]);
240
+ await application.teardown();
241
+ });
242
+ },
243
+ });
244
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
245
+ });
246
+ it("should return properly byFloor", async () => {
247
+ expect.assertions(2);
248
+ application = (0, mock_assistant_1.CreateTestingApplication)({
249
+ Test({ lifecycle, hass }) {
250
+ lifecycle.onReady(async () => {
251
+ expect(hass.entity.byFloor("upstairs")).toEqual([
252
+ "switch.bedroom_lamp",
253
+ ]);
254
+ expect(hass.entity.byFloor("downstairs")).toEqual([
255
+ "switch.kitchen_cabinets",
256
+ "switch.living_room_mood_lights",
257
+ ]);
258
+ await application.teardown();
259
+ });
260
+ },
261
+ });
262
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
263
+ });
264
+ it("should return properly byLabel", async () => {
265
+ expect.assertions(1);
266
+ application = (0, mock_assistant_1.CreateTestingApplication)({
267
+ Test({ lifecycle, hass }) {
268
+ lifecycle.onReady(async () => {
269
+ expect(hass.entity.byLabel("synapse")).toEqual([
270
+ "binary_sensor.hass_e2e_online",
271
+ "sensor.magic",
272
+ "binary_sensor.toggles",
273
+ "switch.bedroom_lamp",
274
+ "switch.kitchen_cabinets",
275
+ "switch.living_room_mood_lights",
276
+ "switch.porch_light",
277
+ ]);
278
+ await application.teardown();
279
+ });
280
+ },
281
+ });
282
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
283
+ });
284
+ it("should return properly byPlatform", async () => {
285
+ expect.assertions(1);
286
+ application = (0, mock_assistant_1.CreateTestingApplication)({
287
+ Test({ lifecycle, hass }) {
288
+ lifecycle.onReady(async () => {
289
+ expect(hass.entity.byPlatform("synapse")).toEqual([
290
+ "binary_sensor.hass_e2e_online",
291
+ "sensor.magic",
292
+ "binary_sensor.toggles",
293
+ "switch.bedroom_lamp",
294
+ "switch.kitchen_cabinets",
295
+ "switch.living_room_mood_lights",
296
+ "switch.porch_light",
297
+ ]);
298
+ await application.teardown();
299
+ });
300
+ },
301
+ });
302
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
303
+ });
304
+ it("should return properly byDevice", async () => {
305
+ expect.assertions(1);
306
+ application = (0, mock_assistant_1.CreateTestingApplication)({
307
+ Test({ lifecycle, hass }) {
308
+ lifecycle.onReady(async () => {
309
+ expect(hass.entity.byDevice("308e39cf50a9fc6c30b4110724ed1f2e")).toEqual([
310
+ "sensor.sun_next_dawn",
311
+ "sensor.sun_next_dusk",
312
+ "sensor.sun_next_midnight",
313
+ "sensor.sun_next_noon",
314
+ "sensor.sun_next_rising",
315
+ "sensor.sun_next_setting",
316
+ "sensor.sun_solar_elevation",
317
+ "sensor.sun_solar_azimuth",
318
+ "sensor.sun_solar_rising",
319
+ ]);
320
+ await application.teardown();
321
+ });
322
+ },
323
+ });
324
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
325
+ });
326
+ });
327
+ });
328
+ //# sourceMappingURL=entity.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.spec.js","sourceRoot":"","sources":["../../src/e2e/entity.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@digital-alchemy/core");
4
+ const mock_assistant_1 = require("../mock_assistant");
5
+ const utils_1 = require("./utils");
6
+ const SETTLE_TIMEOUT = 1000;
7
+ describe("Fetch API E2E", () => {
8
+ let application;
9
+ afterEach(async () => {
10
+ if (application) {
11
+ await application.teardown();
12
+ application = undefined;
13
+ }
14
+ jest.restoreAllMocks();
15
+ });
16
+ it("should perform service calls", async () => {
17
+ expect.assertions(1);
18
+ application = (0, mock_assistant_1.CreateTestingApplication)({
19
+ Test({ lifecycle, hass }) {
20
+ lifecycle.onReady(async () => {
21
+ let hit = false;
22
+ const wait = (0, core_1.sleep)(SETTLE_TIMEOUT);
23
+ hass.entity.byId("switch.porch_light").onUpdate(() => {
24
+ hit = true;
25
+ wait.kill("continue");
26
+ });
27
+ await hass.fetch.callService("switch.toggle", {
28
+ entity_id: "switch.porch_light",
29
+ });
30
+ await wait;
31
+ expect(hit).toBe(true);
32
+ await application.teardown();
33
+ });
34
+ },
35
+ });
36
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
37
+ });
38
+ it("should check config", async () => {
39
+ expect.assertions(1);
40
+ application = (0, mock_assistant_1.CreateTestingApplication)({
41
+ Test({ lifecycle, hass }) {
42
+ lifecycle.onReady(async () => {
43
+ const result = await hass.fetch.checkConfig();
44
+ expect(result.result).toBe("valid");
45
+ await application.teardown();
46
+ });
47
+ },
48
+ });
49
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
50
+ });
51
+ it("should retrieve entities", async () => {
52
+ expect.assertions(1);
53
+ application = (0, mock_assistant_1.CreateTestingApplication)({
54
+ Test({ lifecycle, hass }) {
55
+ lifecycle.onReady(async () => {
56
+ const result = await hass.fetch.getAllEntities();
57
+ expect(result.length).toBe(hass.entity.listEntities().length);
58
+ await application.teardown();
59
+ });
60
+ },
61
+ });
62
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
63
+ });
64
+ it("should retrieve services", async () => {
65
+ expect.assertions(2);
66
+ application = (0, mock_assistant_1.CreateTestingApplication)({
67
+ Test({ lifecycle, hass }) {
68
+ lifecycle.onReady(async () => {
69
+ const result = await hass.fetch.getAllEntities();
70
+ expect(core_1.is.array(result)).toBe(true);
71
+ expect(result.length).toBe(18);
72
+ await application.teardown();
73
+ });
74
+ },
75
+ });
76
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
77
+ });
78
+ });
79
+ //# sourceMappingURL=fetch.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.spec.js","sourceRoot":"","sources":["../../src/e2e/fetch.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@digital-alchemy/core");
4
+ const helpers_1 = require("../helpers");
5
+ const mock_assistant_1 = require("../mock_assistant");
6
+ const utils_1 = require("./utils");
7
+ describe("Floor E2E", () => {
8
+ let application;
9
+ const testFloor = "test";
10
+ afterEach(async () => {
11
+ if (application) {
12
+ await application.teardown();
13
+ application = undefined;
14
+ }
15
+ jest.restoreAllMocks();
16
+ });
17
+ it("should fire events on registry updated", async () => {
18
+ expect.assertions(1);
19
+ application = (0, mock_assistant_1.CreateTestingApplication)({
20
+ Test({ lifecycle, hass, event }) {
21
+ lifecycle.onReady(async () => {
22
+ let hit = false;
23
+ event.on(helpers_1.FLOOR_REGISTRY_UPDATED, () => (hit = true));
24
+ await hass.socket.fireEvent("floor_registry_updated");
25
+ await (0, core_1.sleep)(50);
26
+ expect(hit).toBe(true);
27
+ await application.teardown();
28
+ });
29
+ },
30
+ });
31
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
32
+ });
33
+ it("should create a floor", async () => {
34
+ expect.assertions(1);
35
+ application = (0, mock_assistant_1.CreateTestingApplication)({
36
+ Test({ lifecycle, hass }) {
37
+ lifecycle.onReady(async () => {
38
+ await hass.floor.create({
39
+ level: 1,
40
+ name: "test",
41
+ });
42
+ expect(hass.floor.current.some(i => i.floor_id === testFloor)).toBe(true);
43
+ await application.teardown();
44
+ });
45
+ },
46
+ });
47
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
48
+ });
49
+ it("should update a floor", async () => {
50
+ expect.assertions(1);
51
+ application = (0, mock_assistant_1.CreateTestingApplication)({
52
+ Test({ lifecycle, hass }) {
53
+ lifecycle.onReady(async () => {
54
+ const item = hass.floor.current.find(i => i.floor_id === testFloor);
55
+ await hass.floor.update({
56
+ ...item,
57
+ name: "extra test",
58
+ });
59
+ expect(hass.floor.current.find(i => i.floor_id === testFloor)?.name).toBe("extra test");
60
+ await application.teardown();
61
+ });
62
+ },
63
+ });
64
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
65
+ });
66
+ it("should delete a floor", async () => {
67
+ expect.assertions(2);
68
+ application = (0, mock_assistant_1.CreateTestingApplication)({
69
+ Test({ lifecycle, hass }) {
70
+ lifecycle.onReady(async () => {
71
+ expect(hass.floor.current.some(i => i.floor_id === testFloor)).toBe(true);
72
+ await hass.floor.delete(testFloor);
73
+ expect(hass.floor.current.some(i => i.floor_id === testFloor)).toBe(false);
74
+ await application.teardown();
75
+ });
76
+ },
77
+ });
78
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { BASE_URL: utils_1.BASE_URL, TOKEN: utils_1.TOKEN } }));
79
+ });
80
+ });
81
+ //# sourceMappingURL=floor.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floor.spec.js","sourceRoot":"","sources":["../../src/e2e/floor.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};