@homebridge-plugins/homebridge-august 3.1.0 → 3.1.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.
- package/.github/scripts/npm-version-script-esm-auto.js +201 -0
- package/.github/scripts/resolve-version-bump-esm.js +118 -0
- package/.github/workflows/release.yml +62 -13
- package/CHANGELOG.md +9 -2
- package/dist/devices/device.d.ts +1 -0
- package/dist/devices/device.d.ts.map +1 -1
- package/dist/devices/device.js +6 -4
- package/dist/devices/device.js.map +1 -1
- package/dist/devices/lock.js +2 -2
- package/dist/devices/lock.js.map +1 -1
- package/dist/homebridge-ui/server.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/package.json +6 -7
- package/dist/platform.d.ts +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +2 -9
- package/dist/platform.js.map +1 -1
- package/dist/platform.matter.d.ts +45 -0
- package/dist/platform.matter.d.ts.map +1 -1
- package/dist/platform.matter.js +120 -65
- package/dist/platform.matter.js.map +1 -1
- package/dist/settings.d.ts +4 -4
- package/dist/settings.d.ts.map +1 -1
- package/docs/variables/default.html +1 -1
- package/package.json +6 -7
- package/typedoc.json +1 -1
- package/dist/devices/device.test.d.ts +0 -2
- package/dist/devices/device.test.d.ts.map +0 -1
- package/dist/devices/device.test.js +0 -281
- package/dist/devices/device.test.js.map +0 -1
- package/dist/devices/lock.test.d.ts +0 -2
- package/dist/devices/lock.test.d.ts.map +0 -1
- package/dist/devices/lock.test.js +0 -265
- package/dist/devices/lock.test.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -97
- package/dist/index.test.js.map +0 -1
- package/dist/platform.matter.test.d.ts +0 -2
- package/dist/platform.matter.test.d.ts.map +0 -1
- package/dist/platform.matter.test.js +0 -385
- package/dist/platform.matter.test.js.map +0 -1
- package/dist/platform.test.d.ts +0 -2
- package/dist/platform.test.d.ts.map +0 -1
- package/dist/platform.test.js +0 -514
- package/dist/platform.test.js.map +0 -1
- package/dist/settings.test.d.ts +0 -2
- package/dist/settings.test.d.ts.map +0 -1
- package/dist/settings.test.js +0 -138
- package/dist/settings.test.js.map +0 -1
package/dist/index.test.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import registerPlatform from './index.js';
|
|
3
|
-
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
4
|
-
describe('registerPlatform', () => {
|
|
5
|
-
it('should register a platform proxy with homebridge', () => {
|
|
6
|
-
const api = {
|
|
7
|
-
registerPlatform: vi.fn(),
|
|
8
|
-
isMatterAvailable: vi.fn(() => false),
|
|
9
|
-
isMatterEnabled: vi.fn(() => false),
|
|
10
|
-
};
|
|
11
|
-
registerPlatform(api);
|
|
12
|
-
expect(api.registerPlatform).toHaveBeenCalledWith(PLUGIN_NAME, PLATFORM_NAME, expect.any(Function));
|
|
13
|
-
});
|
|
14
|
-
it('should instantiate AugustPlatform (HAP) when Matter is not available', () => {
|
|
15
|
-
const log = { info: vi.fn(), warn: vi.fn(), error: vi.fn(), debug: vi.fn(), success: vi.fn() };
|
|
16
|
-
const config = { platform: 'August', name: 'Test', credentials: { augustId: 'a', password: 'b', countryCode: 'US', isValidated: false } };
|
|
17
|
-
const api = {
|
|
18
|
-
registerPlatform: vi.fn(),
|
|
19
|
-
isMatterAvailable: vi.fn(() => false),
|
|
20
|
-
isMatterEnabled: vi.fn(() => false),
|
|
21
|
-
hap: { uuid: { generate: vi.fn(() => 'mock-uuid') } },
|
|
22
|
-
on: vi.fn(),
|
|
23
|
-
user: { configPath: vi.fn(() => '/mock/config.json') },
|
|
24
|
-
};
|
|
25
|
-
let registeredCtor;
|
|
26
|
-
vi.mocked(api.registerPlatform).mockImplementation((_plugin, _platform, ctor) => {
|
|
27
|
-
registeredCtor = ctor;
|
|
28
|
-
});
|
|
29
|
-
registerPlatform(api);
|
|
30
|
-
const instance = new registeredCtor(log, config, api);
|
|
31
|
-
// Should be an AugustPlatform instance (HAP) when Matter is unavailable
|
|
32
|
-
expect(instance).toBeDefined();
|
|
33
|
-
expect(instance.constructor.name).toBe('AugustPlatform');
|
|
34
|
-
});
|
|
35
|
-
it('should instantiate AugustMatterPlatform when Matter is available and enabled', () => {
|
|
36
|
-
const log = { info: vi.fn(), warn: vi.fn(), error: vi.fn(), debug: vi.fn(), success: vi.fn() };
|
|
37
|
-
const config = { platform: 'August', name: 'Test', credentials: { augustId: 'a', password: 'b', countryCode: 'US', isValidated: false } };
|
|
38
|
-
const api = {
|
|
39
|
-
registerPlatform: vi.fn(),
|
|
40
|
-
isMatterAvailable: vi.fn(() => true),
|
|
41
|
-
isMatterEnabled: vi.fn(() => true),
|
|
42
|
-
hap: { uuid: { generate: vi.fn(() => 'mock-uuid') } },
|
|
43
|
-
matter: {
|
|
44
|
-
uuid: { generate: vi.fn(() => 'mock-matter-uuid') },
|
|
45
|
-
deviceTypes: { DoorLock: {} },
|
|
46
|
-
updateAccessoryState: vi.fn(),
|
|
47
|
-
registerPlatformAccessories: vi.fn(),
|
|
48
|
-
unregisterPlatformAccessories: vi.fn(),
|
|
49
|
-
},
|
|
50
|
-
on: vi.fn(),
|
|
51
|
-
user: { configPath: vi.fn(() => '/mock/config.json') },
|
|
52
|
-
};
|
|
53
|
-
let registeredCtor;
|
|
54
|
-
vi.mocked(api.registerPlatform).mockImplementation((_plugin, _platform, ctor) => {
|
|
55
|
-
registeredCtor = ctor;
|
|
56
|
-
});
|
|
57
|
-
registerPlatform(api);
|
|
58
|
-
const instance = new registeredCtor(log, config, api);
|
|
59
|
-
// Should be an AugustMatterPlatform instance when Matter is available
|
|
60
|
-
expect(instance).toBeDefined();
|
|
61
|
-
expect(instance.constructor.name).toBe('AugustMatterPlatform');
|
|
62
|
-
});
|
|
63
|
-
it('should fall back to AugustPlatform (HAP) when disableMatter is true', () => {
|
|
64
|
-
const log = { info: vi.fn(), warn: vi.fn(), error: vi.fn(), debug: vi.fn(), success: vi.fn() };
|
|
65
|
-
const config = {
|
|
66
|
-
platform: 'August',
|
|
67
|
-
name: 'Test',
|
|
68
|
-
credentials: { augustId: 'a', password: 'b', countryCode: 'US', isValidated: false },
|
|
69
|
-
options: { disableMatter: true },
|
|
70
|
-
};
|
|
71
|
-
const api = {
|
|
72
|
-
registerPlatform: vi.fn(),
|
|
73
|
-
isMatterAvailable: vi.fn(() => true),
|
|
74
|
-
isMatterEnabled: vi.fn(() => true),
|
|
75
|
-
hap: { uuid: { generate: vi.fn(() => 'mock-uuid') } },
|
|
76
|
-
matter: {
|
|
77
|
-
uuid: { generate: vi.fn(() => 'mock-matter-uuid') },
|
|
78
|
-
deviceTypes: { DoorLock: {} },
|
|
79
|
-
updateAccessoryState: vi.fn(),
|
|
80
|
-
registerPlatformAccessories: vi.fn(),
|
|
81
|
-
unregisterPlatformAccessories: vi.fn(),
|
|
82
|
-
},
|
|
83
|
-
on: vi.fn(),
|
|
84
|
-
user: { configPath: vi.fn(() => '/mock/config.json') },
|
|
85
|
-
};
|
|
86
|
-
let registeredCtor;
|
|
87
|
-
vi.mocked(api.registerPlatform).mockImplementation((_plugin, _platform, ctor) => {
|
|
88
|
-
registeredCtor = ctor;
|
|
89
|
-
});
|
|
90
|
-
registerPlatform(api);
|
|
91
|
-
const instance = new registeredCtor(log, config, api);
|
|
92
|
-
// Should be AugustPlatform (HAP) when disableMatter is true
|
|
93
|
-
expect(instance).toBeDefined();
|
|
94
|
-
expect(instance.constructor.name).toBe('AugustPlatform');
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
//# sourceMappingURL=index.test.js.map
|
package/dist/index.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.matter.test.d.ts","sourceRoot":"","sources":["../src/platform.matter.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
-
import August from 'august-yale';
|
|
4
|
-
import { AugustMatterPlatform } from './platform.matter.js';
|
|
5
|
-
// Mock the august-yale module
|
|
6
|
-
vi.mock('august-yale', () => {
|
|
7
|
-
const MockAugust = vi.fn().mockImplementation(function () {
|
|
8
|
-
return {
|
|
9
|
-
end: vi.fn(),
|
|
10
|
-
lock: vi.fn().mockResolvedValue(undefined),
|
|
11
|
-
unlock: vi.fn().mockResolvedValue(undefined),
|
|
12
|
-
details: vi.fn(),
|
|
13
|
-
};
|
|
14
|
-
});
|
|
15
|
-
const MockConstructor = MockAugust;
|
|
16
|
-
MockConstructor.details = vi.fn();
|
|
17
|
-
MockConstructor.authorize = vi.fn();
|
|
18
|
-
MockConstructor.validate = vi.fn();
|
|
19
|
-
MockConstructor.subscribe = vi.fn().mockResolvedValue(() => { }); // returns unsubscribe fn by default
|
|
20
|
-
return {
|
|
21
|
-
default: MockConstructor,
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
// Mock file system
|
|
25
|
-
vi.mock('node:fs', () => ({
|
|
26
|
-
readFileSync: vi.fn(),
|
|
27
|
-
writeFileSync: vi.fn(),
|
|
28
|
-
}));
|
|
29
|
-
describe('augustMatterPlatform', () => {
|
|
30
|
-
let platform;
|
|
31
|
-
let mockApi;
|
|
32
|
-
let mockLog;
|
|
33
|
-
let mockConfig;
|
|
34
|
-
let mockMatterApi;
|
|
35
|
-
beforeEach(() => {
|
|
36
|
-
vi.clearAllMocks();
|
|
37
|
-
mockMatterApi = {
|
|
38
|
-
uuid: { generate: vi.fn((id) => `matter-uuid-${id}`) },
|
|
39
|
-
deviceTypes: { DoorLock: { deviceType: 11 } },
|
|
40
|
-
types: {
|
|
41
|
-
DoorLock: {
|
|
42
|
-
LockState: {
|
|
43
|
-
NotFullyLocked: 0,
|
|
44
|
-
Locked: 1,
|
|
45
|
-
Unlocked: 2,
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
registerPlatformAccessories: vi.fn().mockResolvedValue(undefined),
|
|
50
|
-
updatePlatformAccessories: vi.fn().mockResolvedValue(undefined),
|
|
51
|
-
unregisterPlatformAccessories: vi.fn().mockResolvedValue(undefined),
|
|
52
|
-
updateAccessoryState: vi.fn().mockResolvedValue(undefined),
|
|
53
|
-
getAccessoryState: vi.fn().mockResolvedValue(undefined),
|
|
54
|
-
};
|
|
55
|
-
mockApi = {
|
|
56
|
-
hap: {
|
|
57
|
-
uuid: { generate: vi.fn(() => 'hap-uuid') },
|
|
58
|
-
},
|
|
59
|
-
user: {
|
|
60
|
-
configPath: vi.fn(() => '/mock/config.json'),
|
|
61
|
-
},
|
|
62
|
-
on: vi.fn(),
|
|
63
|
-
registerPlatformAccessories: vi.fn(),
|
|
64
|
-
updatePlatformAccessories: vi.fn(),
|
|
65
|
-
unregisterPlatformAccessories: vi.fn(),
|
|
66
|
-
publishExternalAccessories: vi.fn(),
|
|
67
|
-
isMatterAvailable: vi.fn(() => true),
|
|
68
|
-
isMatterEnabled: vi.fn(() => true),
|
|
69
|
-
matter: mockMatterApi,
|
|
70
|
-
};
|
|
71
|
-
mockLog = {
|
|
72
|
-
info: vi.fn(),
|
|
73
|
-
warn: vi.fn(),
|
|
74
|
-
error: vi.fn(),
|
|
75
|
-
debug: vi.fn(),
|
|
76
|
-
success: vi.fn(),
|
|
77
|
-
};
|
|
78
|
-
mockConfig = {
|
|
79
|
-
platform: 'August',
|
|
80
|
-
name: 'Test August',
|
|
81
|
-
credentials: {
|
|
82
|
-
augustId: 'test@example.com',
|
|
83
|
-
password: 'testpassword',
|
|
84
|
-
countryCode: 'US',
|
|
85
|
-
installId: 'test-install-id',
|
|
86
|
-
isValidated: true,
|
|
87
|
-
},
|
|
88
|
-
options: {
|
|
89
|
-
logging: 'debug',
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
vi.mocked(readFileSync).mockReturnValue(JSON.stringify({
|
|
93
|
-
platforms: [mockConfig],
|
|
94
|
-
}));
|
|
95
|
-
});
|
|
96
|
-
afterEach(() => {
|
|
97
|
-
vi.restoreAllMocks();
|
|
98
|
-
});
|
|
99
|
-
describe('configureAccessory', () => {
|
|
100
|
-
it('should stage (not immediately unregister) cached HAP accessories for deferred cleanup', async () => {
|
|
101
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
102
|
-
const hapAccessory = {
|
|
103
|
-
UUID: 'hap-uuid-1',
|
|
104
|
-
displayName: 'Front Door',
|
|
105
|
-
};
|
|
106
|
-
await platform.configureAccessory(hapAccessory);
|
|
107
|
-
// HAP accessory should NOT be unregistered immediately; deferred until Matter registration succeeds
|
|
108
|
-
expect(mockApi.unregisterPlatformAccessories).not.toHaveBeenCalled();
|
|
109
|
-
});
|
|
110
|
-
it('should unregister staged HAP accessory after successful Matter registration', async () => {
|
|
111
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
112
|
-
const device = {
|
|
113
|
-
lockId: 'lock-abc',
|
|
114
|
-
LockName: 'Front Door',
|
|
115
|
-
SerialNumber: 'SN123',
|
|
116
|
-
skuNumber: 'AUG-SL05',
|
|
117
|
-
currentFirmwareVersion: '1.2.3',
|
|
118
|
-
hide_device: false,
|
|
119
|
-
homeKitEnabled: false,
|
|
120
|
-
};
|
|
121
|
-
// Stage a HAP accessory with UUID matching what matterApi.uuid.generate will return for this lockId
|
|
122
|
-
const hapAccessory = {
|
|
123
|
-
UUID: 'matter-uuid-lock-abc',
|
|
124
|
-
displayName: 'Front Door',
|
|
125
|
-
};
|
|
126
|
-
await platform.configureAccessory(hapAccessory);
|
|
127
|
-
await platform.Lock(device);
|
|
128
|
-
// After Matter registration succeeds, the staged HAP accessory should be unregistered
|
|
129
|
-
expect(mockApi.unregisterPlatformAccessories).toHaveBeenCalledWith('homebridge-august', 'August', [hapAccessory]);
|
|
130
|
-
});
|
|
131
|
-
it('should not add HAP accessories to the accessories cache', async () => {
|
|
132
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
133
|
-
const hapAccessory = {
|
|
134
|
-
UUID: 'hap-uuid-2',
|
|
135
|
-
displayName: 'Back Door',
|
|
136
|
-
};
|
|
137
|
-
await platform.configureAccessory(hapAccessory);
|
|
138
|
-
// accessories array from the HAP base class should remain empty
|
|
139
|
-
expect(platform.accessories).toHaveLength(0);
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
describe('configureMatterAccessory', () => {
|
|
143
|
-
it('should store Matter accessories in the matterAccessories map', () => {
|
|
144
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
145
|
-
const matterAccessory = {
|
|
146
|
-
UUID: 'matter-uuid-lock1',
|
|
147
|
-
displayName: 'Front Door',
|
|
148
|
-
deviceType: { deviceType: 11 },
|
|
149
|
-
serialNumber: 'ABC123',
|
|
150
|
-
manufacturer: 'August Home Inc.',
|
|
151
|
-
model: 'AUG-SL05',
|
|
152
|
-
context: { lockId: 'lock1' },
|
|
153
|
-
};
|
|
154
|
-
platform.configureMatterAccessory(matterAccessory);
|
|
155
|
-
expect(platform.matterAccessories.has('matter-uuid-lock1')).toBe(true);
|
|
156
|
-
expect(platform.matterAccessories.get('matter-uuid-lock1')).toBe(matterAccessory);
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
describe('lock (Matter accessory registration)', () => {
|
|
160
|
-
it('should register a new Matter DoorLock accessory when Matter API is available', async () => {
|
|
161
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
162
|
-
const device = {
|
|
163
|
-
lockId: 'lock-abc',
|
|
164
|
-
LockName: 'Front Door',
|
|
165
|
-
SerialNumber: 'SN123',
|
|
166
|
-
skuNumber: 'AUG-SL05',
|
|
167
|
-
currentFirmwareVersion: '1.2.3',
|
|
168
|
-
hide_device: false,
|
|
169
|
-
homeKitEnabled: false,
|
|
170
|
-
};
|
|
171
|
-
// Expose the protected Lock method for testing
|
|
172
|
-
await platform.Lock(device);
|
|
173
|
-
expect(mockMatterApi.registerPlatformAccessories).toHaveBeenCalledOnce();
|
|
174
|
-
const [pluginName, platformName, accessories] = mockMatterApi.registerPlatformAccessories.mock.calls[0];
|
|
175
|
-
expect(pluginName).toBe('homebridge-august');
|
|
176
|
-
expect(platformName).toBe('August');
|
|
177
|
-
expect(accessories).toHaveLength(1);
|
|
178
|
-
expect(accessories[0].deviceType).toBe(mockMatterApi.deviceTypes.DoorLock);
|
|
179
|
-
expect(accessories[0].manufacturer).toBe('August Home Inc.');
|
|
180
|
-
expect(accessories[0].serialNumber).toBe('SN123');
|
|
181
|
-
});
|
|
182
|
-
it('should restore an existing cached Matter accessory', async () => {
|
|
183
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
184
|
-
const uuid = 'matter-uuid-lock-abc';
|
|
185
|
-
const cachedAccessory = {
|
|
186
|
-
UUID: uuid,
|
|
187
|
-
displayName: 'Front Door',
|
|
188
|
-
deviceType: { deviceType: 11 },
|
|
189
|
-
serialNumber: 'SN123',
|
|
190
|
-
manufacturer: 'August Home Inc.',
|
|
191
|
-
model: 'AUG-SL05',
|
|
192
|
-
context: { lockId: 'lock-abc' },
|
|
193
|
-
};
|
|
194
|
-
platform.configureMatterAccessory(cachedAccessory);
|
|
195
|
-
const device = {
|
|
196
|
-
lockId: 'lock-abc',
|
|
197
|
-
LockName: 'Front Door',
|
|
198
|
-
SerialNumber: 'SN123',
|
|
199
|
-
skuNumber: 'AUG-SL05',
|
|
200
|
-
currentFirmwareVersion: '1.2.3',
|
|
201
|
-
hide_device: false,
|
|
202
|
-
homeKitEnabled: false,
|
|
203
|
-
};
|
|
204
|
-
await platform.Lock(device);
|
|
205
|
-
// re-registers to update handlers
|
|
206
|
-
expect(mockMatterApi.registerPlatformAccessories).toHaveBeenCalledOnce();
|
|
207
|
-
// Should have logged the "Restoring" message
|
|
208
|
-
expect(mockLog.info).toHaveBeenCalledWith(expect.stringContaining('Restoring existing Matter accessory'));
|
|
209
|
-
});
|
|
210
|
-
it('should unregister stale Matter accessory when device is hidden', async () => {
|
|
211
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
212
|
-
const uuid = 'matter-uuid-hidden-lock';
|
|
213
|
-
mockMatterApi.uuid.generate.mockReturnValueOnce(uuid);
|
|
214
|
-
const cachedAccessory = {
|
|
215
|
-
UUID: uuid,
|
|
216
|
-
displayName: 'Hidden Lock',
|
|
217
|
-
deviceType: { deviceType: 11 },
|
|
218
|
-
serialNumber: 'SN456',
|
|
219
|
-
manufacturer: 'August Home Inc.',
|
|
220
|
-
model: 'AUG-SL05',
|
|
221
|
-
context: { lockId: 'hidden-lock' },
|
|
222
|
-
};
|
|
223
|
-
platform.configureMatterAccessory(cachedAccessory);
|
|
224
|
-
const device = {
|
|
225
|
-
lockId: 'hidden-lock',
|
|
226
|
-
LockName: 'Hidden Lock',
|
|
227
|
-
SerialNumber: 'SN456',
|
|
228
|
-
hide_device: true, // hidden device
|
|
229
|
-
homeKitEnabled: false,
|
|
230
|
-
};
|
|
231
|
-
await platform.Lock(device);
|
|
232
|
-
// Should unregister the stale accessory
|
|
233
|
-
expect(mockMatterApi.unregisterPlatformAccessories).toHaveBeenCalledWith('homebridge-august', 'August', [cachedAccessory]);
|
|
234
|
-
expect(platform.matterAccessories.has(uuid)).toBe(false);
|
|
235
|
-
expect(mockMatterApi.registerPlatformAccessories).not.toHaveBeenCalled();
|
|
236
|
-
});
|
|
237
|
-
it('should not register when Matter API is unavailable', async () => {
|
|
238
|
-
const apiWithoutMatter = {
|
|
239
|
-
...mockApi,
|
|
240
|
-
matter: null,
|
|
241
|
-
};
|
|
242
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, apiWithoutMatter);
|
|
243
|
-
const device = {
|
|
244
|
-
lockId: 'lock-xyz',
|
|
245
|
-
LockName: 'Some Lock',
|
|
246
|
-
hide_device: false,
|
|
247
|
-
homeKitEnabled: false,
|
|
248
|
-
};
|
|
249
|
-
await platform.Lock(device);
|
|
250
|
-
expect(mockMatterApi.registerPlatformAccessories).not.toHaveBeenCalled();
|
|
251
|
-
});
|
|
252
|
-
it('should set initial lockState to 0 (NotFullyLocked) until first poll resolves', async () => {
|
|
253
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
254
|
-
const device = {
|
|
255
|
-
lockId: 'lock-nullstate',
|
|
256
|
-
LockName: 'Null State Lock',
|
|
257
|
-
SerialNumber: 'SN789',
|
|
258
|
-
hide_device: false,
|
|
259
|
-
homeKitEnabled: false,
|
|
260
|
-
};
|
|
261
|
-
await platform.Lock(device);
|
|
262
|
-
const registeredAccessory = mockMatterApi.registerPlatformAccessories.mock.calls[0][2][0];
|
|
263
|
-
expect(registeredAccessory.clusters?.doorLock?.lockState).toBe(0);
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
describe('fetchAndUpdateMatterLockState', () => {
|
|
267
|
-
it('should update lockState to 1 (Locked) when lock is locked', async () => {
|
|
268
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
269
|
-
const mockDetailsResult = { LockStatus: { state: { locked: true, unlocked: false } } };
|
|
270
|
-
platform.augustConfig = {
|
|
271
|
-
details: vi.fn().mockResolvedValue(mockDetailsResult),
|
|
272
|
-
};
|
|
273
|
-
const device = { lockId: 'lock-test', LockName: 'Test Lock' };
|
|
274
|
-
await platform.fetchAndUpdateMatterLockState(device, 'test-uuid', mockMatterApi);
|
|
275
|
-
expect(mockMatterApi.updateAccessoryState).toHaveBeenCalledWith('test-uuid', 'doorLock', { lockState: 1 });
|
|
276
|
-
});
|
|
277
|
-
it('should update lockState to 2 (Unlocked) when lock is unlocked', async () => {
|
|
278
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
279
|
-
const mockDetailsResult = { LockStatus: { state: { locked: false, unlocked: true } } };
|
|
280
|
-
platform.augustConfig = {
|
|
281
|
-
details: vi.fn().mockResolvedValue(mockDetailsResult),
|
|
282
|
-
};
|
|
283
|
-
const device = { lockId: 'lock-test', LockName: 'Test Lock' };
|
|
284
|
-
await platform.fetchAndUpdateMatterLockState(device, 'test-uuid', mockMatterApi);
|
|
285
|
-
expect(mockMatterApi.updateAccessoryState).toHaveBeenCalledWith('test-uuid', 'doorLock', { lockState: 2 });
|
|
286
|
-
});
|
|
287
|
-
it('should update lockState to 0 (NotFullyLocked) for ambiguous state', async () => {
|
|
288
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
289
|
-
const mockDetailsResult = { LockStatus: { state: { locked: false, unlocked: false } } };
|
|
290
|
-
platform.augustConfig = {
|
|
291
|
-
details: vi.fn().mockResolvedValue(mockDetailsResult),
|
|
292
|
-
};
|
|
293
|
-
const device = { lockId: 'lock-test', LockName: 'Test Lock' };
|
|
294
|
-
await platform.fetchAndUpdateMatterLockState(device, 'test-uuid', mockMatterApi);
|
|
295
|
-
expect(mockMatterApi.updateAccessoryState).toHaveBeenCalledWith('test-uuid', 'doorLock', { lockState: 0 });
|
|
296
|
-
});
|
|
297
|
-
it('should not throw when August API details call fails', async () => {
|
|
298
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
299
|
-
platform.augustConfig = {
|
|
300
|
-
details: vi.fn().mockRejectedValue(new Error('API error')),
|
|
301
|
-
};
|
|
302
|
-
// Mock refreshAugustSession to do nothing so retry also fails gracefully
|
|
303
|
-
vi.spyOn(platform, 'refreshAugustSession').mockResolvedValue(undefined);
|
|
304
|
-
const device = { lockId: 'lock-test', LockName: 'Test Lock' };
|
|
305
|
-
await expect(platform.fetchAndUpdateMatterLockState(device, 'test-uuid', mockMatterApi)).resolves.toBeUndefined();
|
|
306
|
-
expect(mockMatterApi.updateAccessoryState).not.toHaveBeenCalled();
|
|
307
|
-
});
|
|
308
|
-
it('should not call updateAccessoryState when augustConfig is not initialized', async () => {
|
|
309
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
310
|
-
// augustConfig is not set (undefined / no details method)
|
|
311
|
-
const device = { lockId: 'lock-test', LockName: 'Test Lock' };
|
|
312
|
-
await expect(platform.fetchAndUpdateMatterLockState(device, 'test-uuid', mockMatterApi)).resolves.toBeUndefined();
|
|
313
|
-
expect(mockMatterApi.updateAccessoryState).not.toHaveBeenCalled();
|
|
314
|
-
});
|
|
315
|
-
it('should retry with session refresh when details call fails', async () => {
|
|
316
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
317
|
-
const mockDetailsResult = { LockStatus: { state: { locked: true, unlocked: false } } };
|
|
318
|
-
const mockDetails = vi.fn()
|
|
319
|
-
.mockRejectedValueOnce(new Error('502 Bad Gateway'))
|
|
320
|
-
.mockResolvedValueOnce(mockDetailsResult);
|
|
321
|
-
platform.augustConfig = { details: mockDetails };
|
|
322
|
-
const refreshSpy = vi.spyOn(platform, 'refreshAugustSession').mockResolvedValue(undefined);
|
|
323
|
-
const device = { lockId: 'lock-test', LockName: 'Test Lock' };
|
|
324
|
-
await platform.fetchAndUpdateMatterLockState(device, 'test-uuid', mockMatterApi);
|
|
325
|
-
expect(refreshSpy).toHaveBeenCalledOnce();
|
|
326
|
-
expect(mockMatterApi.updateAccessoryState).toHaveBeenCalledWith('test-uuid', 'doorLock', { lockState: 1 });
|
|
327
|
-
});
|
|
328
|
-
it('should not throw when both initial call and retry fail', async () => {
|
|
329
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
330
|
-
platform.augustConfig = {
|
|
331
|
-
details: vi.fn().mockRejectedValue(new Error('ETIMEDOUT')),
|
|
332
|
-
};
|
|
333
|
-
vi.spyOn(platform, 'refreshAugustSession').mockResolvedValue(undefined);
|
|
334
|
-
const device = { lockId: 'lock-test', LockName: 'Test Lock' };
|
|
335
|
-
await expect(platform.fetchAndUpdateMatterLockState(device, 'test-uuid', mockMatterApi)).resolves.toBeUndefined();
|
|
336
|
-
expect(mockMatterApi.updateAccessoryState).not.toHaveBeenCalled();
|
|
337
|
-
});
|
|
338
|
-
});
|
|
339
|
-
describe('PubNub subscription lifecycle (Matter path equivalent of PR #206)', () => {
|
|
340
|
-
it('should capture unsubscribe function from August.subscribe()', async () => {
|
|
341
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
342
|
-
const mockUnsubscribe = vi.fn();
|
|
343
|
-
vi.mocked(August.subscribe).mockResolvedValueOnce(mockUnsubscribe);
|
|
344
|
-
const device = {
|
|
345
|
-
lockId: 'lock-sub',
|
|
346
|
-
LockName: 'Sub Lock',
|
|
347
|
-
SerialNumber: 'SN001',
|
|
348
|
-
hide_device: false,
|
|
349
|
-
homeKitEnabled: false,
|
|
350
|
-
};
|
|
351
|
-
await platform.Lock(device);
|
|
352
|
-
// The unsubscribe should be stored in the internal map
|
|
353
|
-
const uuid = mockMatterApi.uuid.generate('lock-sub');
|
|
354
|
-
const stored = platform.matterPubNubUnsubscribes.get(uuid);
|
|
355
|
-
expect(stored).toBe(mockUnsubscribe);
|
|
356
|
-
});
|
|
357
|
-
it('should tear down PubNub subscription when device is hidden (stale accessory removal)', async () => {
|
|
358
|
-
platform = new AugustMatterPlatform(mockLog, mockConfig, mockApi);
|
|
359
|
-
const uuid = 'matter-uuid-hidden-sub';
|
|
360
|
-
mockMatterApi.uuid.generate.mockReturnValueOnce(uuid);
|
|
361
|
-
const mockUnsubscribe = vi.fn();
|
|
362
|
-
platform.matterPubNubUnsubscribes.set(uuid, mockUnsubscribe);
|
|
363
|
-
const cachedAccessory = {
|
|
364
|
-
UUID: uuid,
|
|
365
|
-
displayName: 'Hidden Lock',
|
|
366
|
-
deviceType: { deviceType: 11 },
|
|
367
|
-
serialNumber: 'SN002',
|
|
368
|
-
manufacturer: 'August Home Inc.',
|
|
369
|
-
model: 'AUG-SL05',
|
|
370
|
-
context: { lockId: 'hidden-sub' },
|
|
371
|
-
};
|
|
372
|
-
platform.configureMatterAccessory(cachedAccessory);
|
|
373
|
-
const device = {
|
|
374
|
-
lockId: 'hidden-sub',
|
|
375
|
-
LockName: 'Hidden Lock',
|
|
376
|
-
hide_device: true,
|
|
377
|
-
homeKitEnabled: false,
|
|
378
|
-
};
|
|
379
|
-
await platform.Lock(device);
|
|
380
|
-
expect(mockUnsubscribe).toHaveBeenCalledOnce();
|
|
381
|
-
expect(platform.matterPubNubUnsubscribes.has(uuid)).toBe(false);
|
|
382
|
-
});
|
|
383
|
-
});
|
|
384
|
-
});
|
|
385
|
-
//# sourceMappingURL=platform.matter.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.matter.test.js","sourceRoot":"","sources":["../src/platform.matter.test.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.test.d.ts","sourceRoot":"","sources":["../src/platform.test.ts"],"names":[],"mappings":""}
|