@flighthq/power 0.1.0 → 0.2.0
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/dist/power.d.ts +1 -1
- package/dist/power.d.ts.map +1 -1
- package/dist/power.js +67 -23
- package/dist/power.js.map +1 -1
- package/package.json +8 -3
- package/src/power.test.ts +64 -37
package/dist/power.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare function createPowerStatus(): PowerStatus;
|
|
|
6
6
|
export declare function createWebPowerBackend(): PowerBackend;
|
|
7
7
|
export declare function detachPower(power: Power): void;
|
|
8
8
|
export declare function disposePower(power: Power): void;
|
|
9
|
-
export declare function enablePowerSignals():
|
|
9
|
+
export declare function enablePowerSignals(power: Power): void;
|
|
10
10
|
export declare function getPowerBackend(): PowerBackend;
|
|
11
11
|
export declare function getPowerBatteryHealth(out: PowerBatteryHealth): PowerBatteryHealth | null;
|
|
12
12
|
export declare function getPowerIdlePollingIntervalMs(): number;
|
package/dist/power.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../src/power.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AASzB,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,SAAK,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../src/power.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AASzB,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,SAAK,GAAG,IAAI,CAyDzE;AAID,wBAAgB,WAAW,IAAI,KAAK,CAanC;AAGD,wBAAgB,wBAAwB,IAAI,kBAAkB,CAQ7D;AAGD,wBAAgB,iBAAiB,IAAI,WAAW,CAW/C;AAID,wBAAgB,qBAAqB,IAAI,YAAY,CA0JpD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAM9C;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAE/C;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAWrD;AAED,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAID,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,IAAI,CAExF;AAGD,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAE5D;AAGD,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,CAEhF;AAGD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAGD,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAGD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAGD,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAElE;AAKD,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEtE;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAEtF"}
|
package/dist/power.js
CHANGED
|
@@ -12,30 +12,52 @@ export function attachPower(power, idleThresholdSeconds = 60) {
|
|
|
12
12
|
let wasCharging = backend.getStatus(_scratch).isCharging;
|
|
13
13
|
const unsubscribeChange = backend.subscribe(() => {
|
|
14
14
|
const status = backend.getStatus(_scratch);
|
|
15
|
-
|
|
15
|
+
if (power.onChange !== null)
|
|
16
|
+
emitSignal(power.onChange, status);
|
|
16
17
|
if (status.isCharging !== wasCharging) {
|
|
17
18
|
wasCharging = status.isCharging;
|
|
18
|
-
|
|
19
|
+
const transition = status.isCharging ? power.onCharging : power.onDischarging;
|
|
20
|
+
if (transition !== null)
|
|
21
|
+
emitSignal(transition);
|
|
19
22
|
}
|
|
20
23
|
});
|
|
21
|
-
const unsubscribeLockScreen = backend.subscribeLockScreen(() =>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
24
|
+
const unsubscribeLockScreen = backend.subscribeLockScreen(() => {
|
|
25
|
+
if (power.onLockScreen !== null)
|
|
26
|
+
emitSignal(power.onLockScreen);
|
|
27
|
+
});
|
|
28
|
+
const unsubscribeLowPowerModeChange = backend.subscribeLowPowerModeChange(() => {
|
|
29
|
+
if (power.onLowPowerModeChange !== null)
|
|
30
|
+
emitSignal(power.onLowPowerModeChange);
|
|
31
|
+
});
|
|
32
|
+
const unsubscribeResume = backend.subscribeResume(() => {
|
|
33
|
+
if (power.onResume !== null)
|
|
34
|
+
emitSignal(power.onResume);
|
|
35
|
+
});
|
|
36
|
+
const unsubscribeSuspend = backend.subscribeSuspend(() => {
|
|
37
|
+
if (power.onSuspend !== null)
|
|
38
|
+
emitSignal(power.onSuspend);
|
|
39
|
+
});
|
|
40
|
+
const unsubscribeThermalStateChange = backend.subscribeThermalStateChange(() => {
|
|
41
|
+
if (power.onThermalStateChange !== null)
|
|
42
|
+
emitSignal(power.onThermalStateChange);
|
|
43
|
+
});
|
|
44
|
+
const unsubscribeUnlockScreen = backend.subscribeUnlockScreen(() => {
|
|
45
|
+
if (power.onUnlockScreen !== null)
|
|
46
|
+
emitSignal(power.onUnlockScreen);
|
|
47
|
+
});
|
|
27
48
|
// Idle state polling: poll at the configured interval and emit onIdleStateChange on transitions.
|
|
28
49
|
// The poll emits only when at least one slot is connected, avoiding spurious allocations when
|
|
29
50
|
// nobody is listening. The interval still runs (cheaply) so state transitions are never missed
|
|
30
51
|
// when a listener connects after attach.
|
|
31
52
|
let lastIdleState = backend.getSystemIdleState(idleThresholdSeconds);
|
|
32
53
|
const idleIntervalId = setInterval(() => {
|
|
33
|
-
|
|
54
|
+
const idleSignal = power.onIdleStateChange;
|
|
55
|
+
if (idleSignal === null || !hasSignalSlots(idleSignal))
|
|
34
56
|
return;
|
|
35
57
|
const current = backend.getSystemIdleState(idleThresholdSeconds);
|
|
36
58
|
if (current !== lastIdleState) {
|
|
37
59
|
lastIdleState = current;
|
|
38
|
-
emitSignal(
|
|
60
|
+
emitSignal(idleSignal);
|
|
39
61
|
}
|
|
40
62
|
}, _idlePollingIntervalMs);
|
|
41
63
|
_subscriptions.set(power, () => {
|
|
@@ -49,19 +71,20 @@ export function attachPower(power, idleThresholdSeconds = 60) {
|
|
|
49
71
|
clearInterval(idleIntervalId);
|
|
50
72
|
});
|
|
51
73
|
}
|
|
52
|
-
// Allocates a Power event entity with
|
|
74
|
+
// Allocates a Power event entity with its signals left null. Call enablePowerSignals to allocate the
|
|
75
|
+
// signals to connect to, and attachPower to start delivering backend changes into them.
|
|
53
76
|
export function createPower() {
|
|
54
77
|
return {
|
|
55
|
-
onChange:
|
|
56
|
-
onCharging:
|
|
57
|
-
onDischarging:
|
|
58
|
-
onIdleStateChange:
|
|
59
|
-
onLockScreen:
|
|
60
|
-
onLowPowerModeChange:
|
|
61
|
-
onResume:
|
|
62
|
-
onSuspend:
|
|
63
|
-
onThermalStateChange:
|
|
64
|
-
onUnlockScreen:
|
|
78
|
+
onChange: null,
|
|
79
|
+
onCharging: null,
|
|
80
|
+
onDischarging: null,
|
|
81
|
+
onIdleStateChange: null,
|
|
82
|
+
onLockScreen: null,
|
|
83
|
+
onLowPowerModeChange: null,
|
|
84
|
+
onResume: null,
|
|
85
|
+
onSuspend: null,
|
|
86
|
+
onThermalStateChange: null,
|
|
87
|
+
onUnlockScreen: null,
|
|
65
88
|
};
|
|
66
89
|
}
|
|
67
90
|
// Allocates a zeroed PowerBatteryHealth, suitable as the `out` for getPowerBatteryHealth.
|
|
@@ -268,8 +291,29 @@ export function detachPower(power) {
|
|
|
268
291
|
export function disposePower(power) {
|
|
269
292
|
detachPower(power);
|
|
270
293
|
}
|
|
271
|
-
|
|
272
|
-
|
|
294
|
+
// Allocates any not-yet-allocated Power signals so callers can connect to them. Idempotent: signals
|
|
295
|
+
// already allocated are left untouched. Pair with attachPower to begin delivery.
|
|
296
|
+
export function enablePowerSignals(power) {
|
|
297
|
+
if (power.onChange === null)
|
|
298
|
+
power.onChange = createSignal();
|
|
299
|
+
if (power.onCharging === null)
|
|
300
|
+
power.onCharging = createSignal();
|
|
301
|
+
if (power.onDischarging === null)
|
|
302
|
+
power.onDischarging = createSignal();
|
|
303
|
+
if (power.onIdleStateChange === null)
|
|
304
|
+
power.onIdleStateChange = createSignal();
|
|
305
|
+
if (power.onLockScreen === null)
|
|
306
|
+
power.onLockScreen = createSignal();
|
|
307
|
+
if (power.onLowPowerModeChange === null)
|
|
308
|
+
power.onLowPowerModeChange = createSignal();
|
|
309
|
+
if (power.onResume === null)
|
|
310
|
+
power.onResume = createSignal();
|
|
311
|
+
if (power.onSuspend === null)
|
|
312
|
+
power.onSuspend = createSignal();
|
|
313
|
+
if (power.onThermalStateChange === null)
|
|
314
|
+
power.onThermalStateChange = createSignal();
|
|
315
|
+
if (power.onUnlockScreen === null)
|
|
316
|
+
power.onUnlockScreen = createSignal();
|
|
273
317
|
}
|
|
274
318
|
export function getPowerBackend() {
|
|
275
319
|
if (_backend === null)
|
package/dist/power.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power.js","sourceRoot":"","sources":["../src/power.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"power.js","sourceRoot":"","sources":["../src/power.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/power",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/flighthq/flight.git",
|
|
7
|
+
"directory": "packages/power"
|
|
8
|
+
},
|
|
4
9
|
"type": "module",
|
|
5
10
|
"main": "dist/index.js",
|
|
6
11
|
"types": "dist/index.d.ts",
|
|
@@ -27,8 +32,8 @@
|
|
|
27
32
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
28
33
|
},
|
|
29
34
|
"dependencies": {
|
|
30
|
-
"@flighthq/signals": "0.
|
|
31
|
-
"@flighthq/types": "0.
|
|
35
|
+
"@flighthq/signals": "0.2.0",
|
|
36
|
+
"@flighthq/types": "0.2.0"
|
|
32
37
|
},
|
|
33
38
|
"devDependencies": {
|
|
34
39
|
"typescript": "^5.3.0"
|
package/src/power.test.ts
CHANGED
|
@@ -144,10 +144,11 @@ describe('attachPower', () => {
|
|
|
144
144
|
const backend = fakeBackend();
|
|
145
145
|
setPowerBackend(backend);
|
|
146
146
|
const power = createPower();
|
|
147
|
+
enablePowerSignals(power);
|
|
147
148
|
let changes = 0;
|
|
148
149
|
let charging = 0;
|
|
149
|
-
connectSignal(power.onChange
|
|
150
|
-
connectSignal(power.onCharging
|
|
150
|
+
connectSignal(power.onChange!, () => changes++);
|
|
151
|
+
connectSignal(power.onCharging!, () => charging++);
|
|
151
152
|
attachPower(power);
|
|
152
153
|
backend.charging = true;
|
|
153
154
|
backend.fire();
|
|
@@ -159,10 +160,11 @@ describe('attachPower', () => {
|
|
|
159
160
|
const backend = fakeBackend();
|
|
160
161
|
setPowerBackend(backend);
|
|
161
162
|
const power = createPower();
|
|
163
|
+
enablePowerSignals(power);
|
|
162
164
|
let suspends = 0;
|
|
163
165
|
let resumes = 0;
|
|
164
|
-
connectSignal(power.onSuspend
|
|
165
|
-
connectSignal(power.onResume
|
|
166
|
+
connectSignal(power.onSuspend!, () => suspends++);
|
|
167
|
+
connectSignal(power.onResume!, () => resumes++);
|
|
166
168
|
attachPower(power);
|
|
167
169
|
backend.fireSuspend();
|
|
168
170
|
backend.fireResume();
|
|
@@ -174,10 +176,11 @@ describe('attachPower', () => {
|
|
|
174
176
|
const backend = fakeBackend();
|
|
175
177
|
setPowerBackend(backend);
|
|
176
178
|
const power = createPower();
|
|
179
|
+
enablePowerSignals(power);
|
|
177
180
|
let locks = 0;
|
|
178
181
|
let unlocks = 0;
|
|
179
|
-
connectSignal(power.onLockScreen
|
|
180
|
-
connectSignal(power.onUnlockScreen
|
|
182
|
+
connectSignal(power.onLockScreen!, () => locks++);
|
|
183
|
+
connectSignal(power.onUnlockScreen!, () => unlocks++);
|
|
181
184
|
attachPower(power);
|
|
182
185
|
backend.fireLockScreen();
|
|
183
186
|
backend.fireUnlockScreen();
|
|
@@ -189,8 +192,9 @@ describe('attachPower', () => {
|
|
|
189
192
|
const backend = fakeBackend();
|
|
190
193
|
setPowerBackend(backend);
|
|
191
194
|
const power = createPower();
|
|
195
|
+
enablePowerSignals(power);
|
|
192
196
|
let lowPowerChanges = 0;
|
|
193
|
-
connectSignal(power.onLowPowerModeChange
|
|
197
|
+
connectSignal(power.onLowPowerModeChange!, () => lowPowerChanges++);
|
|
194
198
|
attachPower(power);
|
|
195
199
|
backend.fireLowPowerModeChange();
|
|
196
200
|
expect(lowPowerChanges).toBe(1);
|
|
@@ -200,8 +204,9 @@ describe('attachPower', () => {
|
|
|
200
204
|
const backend = fakeBackend();
|
|
201
205
|
setPowerBackend(backend);
|
|
202
206
|
const power = createPower();
|
|
207
|
+
enablePowerSignals(power);
|
|
203
208
|
let thermalChanges = 0;
|
|
204
|
-
connectSignal(power.onThermalStateChange
|
|
209
|
+
connectSignal(power.onThermalStateChange!, () => thermalChanges++);
|
|
205
210
|
attachPower(power);
|
|
206
211
|
backend.fireThermalStateChange();
|
|
207
212
|
expect(thermalChanges).toBe(1);
|
|
@@ -211,8 +216,9 @@ describe('attachPower', () => {
|
|
|
211
216
|
const backend = fakeBackend();
|
|
212
217
|
setPowerBackend(backend);
|
|
213
218
|
const power = createPower();
|
|
219
|
+
enablePowerSignals(power);
|
|
214
220
|
let changes = 0;
|
|
215
|
-
connectSignal(power.onChange
|
|
221
|
+
connectSignal(power.onChange!, () => changes++);
|
|
216
222
|
attachPower(power);
|
|
217
223
|
attachPower(power);
|
|
218
224
|
backend.fire();
|
|
@@ -226,8 +232,9 @@ describe('attachPower', () => {
|
|
|
226
232
|
backend.getSystemIdleState = () => idleState as ReturnType<typeof backend.getSystemIdleState>;
|
|
227
233
|
setPowerBackend(backend);
|
|
228
234
|
const power = createPower();
|
|
235
|
+
enablePowerSignals(power);
|
|
229
236
|
let idleChanges = 0;
|
|
230
|
-
connectSignal(power.onIdleStateChange
|
|
237
|
+
connectSignal(power.onIdleStateChange!, () => idleChanges++);
|
|
231
238
|
setPowerIdlePollingIntervalMs(100);
|
|
232
239
|
attachPower(power, 30);
|
|
233
240
|
// Change state and advance timer.
|
|
@@ -247,13 +254,14 @@ describe('attachPower', () => {
|
|
|
247
254
|
backend.getSystemIdleState = () => idleState as ReturnType<typeof backend.getSystemIdleState>;
|
|
248
255
|
setPowerBackend(backend);
|
|
249
256
|
const power = createPower();
|
|
250
|
-
|
|
257
|
+
enablePowerSignals(power);
|
|
258
|
+
// Signals enabled but no listener connected.
|
|
251
259
|
setPowerIdlePollingIntervalMs(100);
|
|
252
260
|
attachPower(power, 30);
|
|
253
261
|
idleState = 'Idle';
|
|
254
262
|
vi.advanceTimersByTime(200);
|
|
255
263
|
// No signal has slots so no emission, no error.
|
|
256
|
-
expect(power.onIdleStateChange
|
|
264
|
+
expect(power.onIdleStateChange!.data).toBeNull();
|
|
257
265
|
disposePower(power);
|
|
258
266
|
vi.useRealTimers();
|
|
259
267
|
setPowerIdlePollingIntervalMs(5000);
|
|
@@ -270,7 +278,8 @@ describe('attachPower', () => {
|
|
|
270
278
|
};
|
|
271
279
|
setPowerBackend(backend);
|
|
272
280
|
const power = createPower();
|
|
273
|
-
|
|
281
|
+
enablePowerSignals(power);
|
|
282
|
+
connectSignal(power.onIdleStateChange!, () => {});
|
|
274
283
|
setPowerIdlePollingIntervalMs(100);
|
|
275
284
|
attachPower(power, 30);
|
|
276
285
|
vi.advanceTimersByTime(150);
|
|
@@ -286,18 +295,18 @@ describe('attachPower', () => {
|
|
|
286
295
|
});
|
|
287
296
|
|
|
288
297
|
describe('createPower', () => {
|
|
289
|
-
it('creates an entity with all signals
|
|
298
|
+
it('creates an entity with all signals left null until enabled', () => {
|
|
290
299
|
const power = createPower();
|
|
291
|
-
expect(power.onChange).
|
|
292
|
-
expect(power.onCharging).
|
|
293
|
-
expect(power.onDischarging).
|
|
294
|
-
expect(power.onIdleStateChange).
|
|
295
|
-
expect(power.onLockScreen).
|
|
296
|
-
expect(power.onLowPowerModeChange).
|
|
297
|
-
expect(power.onResume).
|
|
298
|
-
expect(power.onSuspend).
|
|
299
|
-
expect(power.onThermalStateChange).
|
|
300
|
-
expect(power.onUnlockScreen).
|
|
300
|
+
expect(power.onChange).toBeNull();
|
|
301
|
+
expect(power.onCharging).toBeNull();
|
|
302
|
+
expect(power.onDischarging).toBeNull();
|
|
303
|
+
expect(power.onIdleStateChange).toBeNull();
|
|
304
|
+
expect(power.onLockScreen).toBeNull();
|
|
305
|
+
expect(power.onLowPowerModeChange).toBeNull();
|
|
306
|
+
expect(power.onResume).toBeNull();
|
|
307
|
+
expect(power.onSuspend).toBeNull();
|
|
308
|
+
expect(power.onThermalStateChange).toBeNull();
|
|
309
|
+
expect(power.onUnlockScreen).toBeNull();
|
|
301
310
|
});
|
|
302
311
|
});
|
|
303
312
|
|
|
@@ -397,8 +406,9 @@ describe('detachPower', () => {
|
|
|
397
406
|
const backend = fakeBackend();
|
|
398
407
|
setPowerBackend(backend);
|
|
399
408
|
const power = createPower();
|
|
409
|
+
enablePowerSignals(power);
|
|
400
410
|
let changes = 0;
|
|
401
|
-
connectSignal(power.onChange
|
|
411
|
+
connectSignal(power.onChange!, () => changes++);
|
|
402
412
|
attachPower(power);
|
|
403
413
|
detachPower(power);
|
|
404
414
|
backend.fire();
|
|
@@ -430,18 +440,35 @@ describe('disposePower', () => {
|
|
|
430
440
|
});
|
|
431
441
|
|
|
432
442
|
describe('enablePowerSignals', () => {
|
|
433
|
-
it('
|
|
434
|
-
const
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
expect(power.
|
|
438
|
-
|
|
439
|
-
expect(power.
|
|
440
|
-
expect(power.
|
|
441
|
-
expect(power.
|
|
442
|
-
expect(power.
|
|
443
|
-
expect(power.
|
|
444
|
-
expect(power.
|
|
443
|
+
it('allocates the null signals so callers can connect and receive emissions', () => {
|
|
444
|
+
const backend = fakeBackend();
|
|
445
|
+
setPowerBackend(backend);
|
|
446
|
+
const power = createPower();
|
|
447
|
+
expect(power.onChange).toBeNull();
|
|
448
|
+
enablePowerSignals(power);
|
|
449
|
+
expect(power.onChange).not.toBeNull();
|
|
450
|
+
expect(power.onCharging).not.toBeNull();
|
|
451
|
+
expect(power.onDischarging).not.toBeNull();
|
|
452
|
+
expect(power.onIdleStateChange).not.toBeNull();
|
|
453
|
+
expect(power.onLockScreen).not.toBeNull();
|
|
454
|
+
expect(power.onLowPowerModeChange).not.toBeNull();
|
|
455
|
+
expect(power.onResume).not.toBeNull();
|
|
456
|
+
expect(power.onSuspend).not.toBeNull();
|
|
457
|
+
expect(power.onThermalStateChange).not.toBeNull();
|
|
458
|
+
expect(power.onUnlockScreen).not.toBeNull();
|
|
459
|
+
let changes = 0;
|
|
460
|
+
connectSignal(power.onChange!, () => changes++);
|
|
461
|
+
attachPower(power);
|
|
462
|
+
backend.fire();
|
|
463
|
+
expect(changes).toBe(1);
|
|
464
|
+
});
|
|
465
|
+
|
|
466
|
+
it('is idempotent — a second call keeps the same signal objects', () => {
|
|
467
|
+
const power = createPower();
|
|
468
|
+
enablePowerSignals(power);
|
|
469
|
+
const signal = power.onChange;
|
|
470
|
+
enablePowerSignals(power);
|
|
471
|
+
expect(power.onChange).toBe(signal);
|
|
445
472
|
});
|
|
446
473
|
});
|
|
447
474
|
|