From f4f2f8d725700fa75a7af581164b0ae56fae5711 Mon Sep 17 00:00:00 2001 From: Greg Darke Date: Fri, 12 Sep 2025 16:01:49 +1000 Subject: [PATCH] Expose WakeLockManager state transitions for tests Dispatch an event on each state transition inside the WakeLockManager. This gives the unit tests something to synchronise on, allowing us to write fast, flake-free tests. --- app/wakelock.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/wakelock.js b/app/wakelock.js index 398f5f24..2eae408f 100644 --- a/app/wakelock.js +++ b/app/wakelock.js @@ -59,8 +59,18 @@ const _STATES = { ERROR: 'error', }; -export default class WakeLockManager { +class TestOnlyWakeLockManagerStateChangeEvent extends Event { + constructor(oldState, newState) { + super("testOnlyStateChange"); + this.oldState = oldState; + this.newState = newState; + } +} + +export default class WakeLockManager extends EventTarget { constructor() { + super(); + this._state = _STATES.RELEASED; this._wakelock = null; @@ -130,6 +140,7 @@ export default class WakeLockManager { let oldState = this._state; Log.Debug(`WakelockManager transitioning ${oldState} -> ${newState}`); this._state = newState; + this.dispatchEvent(new TestOnlyWakeLockManagerStateChangeEvent(oldState, newState)); } _awaitVisible() {