Skip to content

Commit a44d056

Browse files
committed
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.
1 parent e5c126a commit a44d056

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

core/util/wakelock.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,18 @@ const _STATES = {
5959
ERROR: 'error',
6060
};
6161

62-
export default class WakeLockManager {
62+
class TestOnlyWakeLockManagerStateChangeEvent extends Event {
63+
constructor(oldState, newState) {
64+
super("testOnlyStateChange");
65+
this.oldState = oldState;
66+
this.newState = newState;
67+
}
68+
}
69+
70+
export default class WakeLockManager extends EventTarget {
6371
constructor() {
72+
super();
73+
6474
this._state = _STATES.RELEASED;
6575
this._wakelock = null;
6676

@@ -130,6 +140,7 @@ export default class WakeLockManager {
130140
let oldState = this._state;
131141
Log.Debug(`WakelockManager transitioning ${oldState} -> ${newState}`);
132142
this._state = newState;
143+
this.dispatchEvent(new TestOnlyWakeLockManagerStateChangeEvent(oldState, newState));
133144
}
134145

135146
_awaitVisible() {

0 commit comments

Comments
 (0)