@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,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@digital-alchemy/core");
5
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
6
+ const __1 = require("..");
7
+ const mock_assistant_1 = require("../mock_assistant");
8
+ describe("Workflows", () => {
9
+ const application = (0, core_1.CreateApplication)({
10
+ libraries: [__1.LIB_HASS],
11
+ // @ts-expect-error testing
12
+ name: "testing",
13
+ services: {
14
+ Test({ hass, scheduler }) {
15
+ scheduler.cron({
16
+ async exec() {
17
+ await hass.call.switch.turn_on({
18
+ entity_id: "switch.bedroom_lamp",
19
+ });
20
+ },
21
+ schedule: core_1.CronExpression.EVERY_DAY_AT_8PM,
22
+ });
23
+ const entity = hass.entity.byId("sensor.magic");
24
+ entity.onUpdate(async () => {
25
+ const action = entity.state === "test" ? "turn_on" : "turn_off";
26
+ await hass.call.switch[action]({
27
+ entity_id: "switch.porch_light",
28
+ });
29
+ });
30
+ entity.onUpdate(async (new_state, old_state) => {
31
+ if (old_state.state === "away" && new_state.state === "here") {
32
+ await hass.call.switch.turn_on({
33
+ entity_id: "switch.living_room_mood_lights",
34
+ });
35
+ }
36
+ });
37
+ },
38
+ },
39
+ });
40
+ const runner = (0, mock_assistant_1.CreateTestRunner)(application);
41
+ afterEach(async () => {
42
+ await application.teardown();
43
+ jest.restoreAllMocks();
44
+ });
45
+ describe("Event and Response", () => {
46
+ it("should be able to trigger a workflow", async () => {
47
+ expect.assertions(2);
48
+ await runner(undefined, async ({ mock_assistant, hass }) => {
49
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
50
+ const turnOff = jest.spyOn(hass.call.switch, "turn_off");
51
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
52
+ state: "test",
53
+ });
54
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
55
+ state: "foo",
56
+ });
57
+ expect(turnOn).toHaveBeenCalledTimes(1);
58
+ expect(turnOff).toHaveBeenCalledTimes(1);
59
+ });
60
+ });
61
+ it("should be able to trigger a from an initial state", async () => {
62
+ expect.assertions(1);
63
+ await runner(({ mock_assistant }) => {
64
+ mock_assistant.fixtures.setState({
65
+ "sensor.magic": {
66
+ state: "away",
67
+ },
68
+ });
69
+ }, async ({ hass, mock_assistant }) => {
70
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
71
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
72
+ state: "here",
73
+ });
74
+ await (0, core_1.sleep)(1);
75
+ expect(turnOn).toHaveBeenCalledWith({
76
+ entity_id: "switch.living_room_mood_lights",
77
+ });
78
+ });
79
+ });
80
+ it("should not trigger a from an invalid initial state", async () => {
81
+ expect.assertions(1);
82
+ await runner(({ mock_assistant }) => mock_assistant.fixtures.setState({
83
+ "sensor.magic": {
84
+ state: "mars",
85
+ },
86
+ }), async ({ hass, mock_assistant }) => {
87
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
88
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
89
+ state: "here",
90
+ });
91
+ expect(turnOn).not.toHaveBeenCalledWith({
92
+ entity_id: "switch.living_room_mood_lights",
93
+ });
94
+ });
95
+ });
96
+ });
97
+ describe("Timers", () => {
98
+ beforeEach(() => {
99
+ jest.useFakeTimers();
100
+ });
101
+ afterEach(() => {
102
+ jest.useRealTimers();
103
+ });
104
+ it("should run at 3PM", async () => {
105
+ expect.assertions(1);
106
+ await runner(() => {
107
+ jest.setSystemTime((0, dayjs_1.default)("2024-01-01 19:59:59").toDate());
108
+ jest.runOnlyPendingTimersAsync();
109
+ }, ({ hass }) => {
110
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
111
+ jest.advanceTimersByTime(2 * core_1.SECOND);
112
+ expect(turnOn).toHaveBeenCalledWith({
113
+ entity_id: "switch.bedroom_lamp",
114
+ });
115
+ });
116
+ });
117
+ });
118
+ });
119
+ //# sourceMappingURL=workflow.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.spec.js","sourceRoot":"","sources":["../../src/testing/workflow.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,13 +2,16 @@
2
2
  "name": "@digital-alchemy/hass",
3
3
  "repository": "https://github.com/Digital-Alchemy-TS/hass",
4
4
  "homepage": "https://docs.digital-alchemy.app/Hass",
5
- "version": "0.3.21",
5
+ "version": "0.3.23",
6
6
  "scripts": {
7
7
  "build": "rm -rf dist/; tsc",
8
8
  "lint": "eslint src",
9
9
  "test": "./scripts/test.sh",
10
10
  "prepublishOnly": "npm run build",
11
- "upgrade": "ncu -u -f '@digital-alchemy/*'; npm i"
11
+ "upgrade": "ncu -f '@digital-alchemy/*' -u; npm i"
12
+ },
13
+ "bin": {
14
+ "mock-assistant": "./dist/mock_assistant/main.js"
12
15
  },
13
16
  "author": {
14
17
  "url": "https://github.com/zoe-codez",
@@ -21,17 +24,20 @@
21
24
  "node": ">=20"
22
25
  },
23
26
  "exports": {
24
- ".": "./dist/index.js"
27
+ ".": "./dist/index.js",
28
+ "./mock-assistant": "./dist/mock_assistant/index.js"
25
29
  },
26
30
  "license": "MIT",
27
31
  "dependencies": {
28
- "@digital-alchemy/core": "^0.3.12",
29
- "dayjs": "^1.11.10",
30
- "prom-client": "^15.1.1",
31
- "ws": "^8.16.0"
32
+ "@digital-alchemy/core": "^0.3.13",
33
+ "dayjs": "^1.11.11",
34
+ "prom-client": "^15.1.2",
35
+ "ws": "^8.17.0"
32
36
  },
33
37
  "devDependencies": {
34
38
  "@cspell/eslint-plugin": "^8.7.0",
39
+ "@digital-alchemy/synapse": "^0.3.5",
40
+ "@digital-alchemy/type-writer": "^0.3.11",
35
41
  "@types/figlet": "^1.5.8",
36
42
  "@types/jest": "^29.5.12",
37
43
  "@types/js-yaml": "^4.0.9",
@@ -40,8 +46,8 @@
40
46
  "@types/node": "^20.12.7",
41
47
  "@types/uuid": "^9.0.8",
42
48
  "@types/ws": "^8.5.10",
43
- "@typescript-eslint/eslint-plugin": "7.6.0",
44
- "@typescript-eslint/parser": "7.6.0",
49
+ "@typescript-eslint/eslint-plugin": "7.8.0",
50
+ "@typescript-eslint/parser": "7.8.0",
45
51
  "eslint": "8.57.0",
46
52
  "eslint-config-prettier": "9.1.0",
47
53
  "eslint-plugin-import": "^2.29.1",
@@ -61,5 +67,26 @@
61
67
  "tsx": "^4.7.3",
62
68
  "type-fest": "^4.18.0",
63
69
  "typescript": "^5.4.5"
70
+ },
71
+ "jest": {
72
+ "preset": "ts-jest",
73
+ "testEnvironment": "node",
74
+ "moduleFileExtensions": [
75
+ "ts",
76
+ "js",
77
+ "json",
78
+ "node"
79
+ ],
80
+ "testMatch": [
81
+ "**/?(*.)+(spec|test).ts"
82
+ ],
83
+ "transform": {
84
+ "^.+\\.ts$": [
85
+ "ts-jest",
86
+ {
87
+ "tsconfig": "tsconfig.spec.json"
88
+ }
89
+ ]
90
+ }
64
91
  }
65
92
  }