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.
This commit is contained in:
parent
077c54f312
commit
f4f2f8d725
|
|
@ -59,8 +59,18 @@ const _STATES = {
|
||||||
ERROR: 'error',
|
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() {
|
constructor() {
|
||||||
|
super();
|
||||||
|
|
||||||
this._state = _STATES.RELEASED;
|
this._state = _STATES.RELEASED;
|
||||||
this._wakelock = null;
|
this._wakelock = null;
|
||||||
|
|
||||||
|
|
@ -130,6 +140,7 @@ export default class WakeLockManager {
|
||||||
let oldState = this._state;
|
let oldState = this._state;
|
||||||
Log.Debug(`WakelockManager transitioning ${oldState} -> ${newState}`);
|
Log.Debug(`WakelockManager transitioning ${oldState} -> ${newState}`);
|
||||||
this._state = newState;
|
this._state = newState;
|
||||||
|
this.dispatchEvent(new TestOnlyWakeLockManagerStateChangeEvent(oldState, newState));
|
||||||
}
|
}
|
||||||
|
|
||||||
_awaitVisible() {
|
_awaitVisible() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue