Skip to content

Commit 426255b

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 7d38154 commit 426255b

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

core/util/wakelock.js

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

62-
export default class WakeLockManager {
62+
class TestOnlyWakeLockManagerStateChangeEvent extends Event {
63+
constructor(old_state, new_state) {
64+
super("testOnlyStateChange");
65+
this.old_state = old_state;
66+
this.new_state = new_state;
67+
}
68+
}
69+
70+
export default class WakeLockManager extends EventTarget {
6371
constructor() {
6472
super();
6573

@@ -132,6 +140,7 @@ export default class WakeLockManager {
132140
let old_state = this._state;
133141
Log.Debug(`WakelockManager transitioning ${old_state} -> ${new_state}`);
134142
this._state = new_state;
143+
this.dispatchEvent(new TestOnlyWakeLockManagerStateChangeEvent(old_state, new_state));
135144
}
136145

137146
_awaitVisible() {

0 commit comments

Comments
 (0)