Add regression tests and pause(timeOffset) test (#288)
* increase timeout from 2 (default to 10 seconds * add regression tests for playing multiple times * add pause at tests
This commit is contained in:
@@ -15,6 +15,8 @@ interface ISuite extends Suite {
|
|||||||
}
|
}
|
||||||
|
|
||||||
describe('replayer', function (this: ISuite) {
|
describe('replayer', function (this: ISuite) {
|
||||||
|
this.timeout(10_000);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
this.browser = await launchPuppeteer();
|
this.browser = await launchPuppeteer();
|
||||||
|
|
||||||
@@ -85,4 +87,48 @@ describe('replayer', function (this: ISuite) {
|
|||||||
events.filter((e) => e.timestamp - events[0].timestamp >= 1500).length,
|
events.filter((e) => e.timestamp - events[0].timestamp >= 1500).length,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('can play a second time in the future', async () => {
|
||||||
|
const actionLength = await this.page.evaluate(`
|
||||||
|
const { Replayer } = rrweb;
|
||||||
|
const replayer = new Replayer(events);
|
||||||
|
replayer.play(500);
|
||||||
|
replayer.play(1500);
|
||||||
|
replayer['timer']['actions'].length;
|
||||||
|
`);
|
||||||
|
expect(actionLength).to.equal(
|
||||||
|
events.filter((e) => e.timestamp - events[0].timestamp >= 1500).length,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('can play a second time to the past', async () => {
|
||||||
|
const actionLength = await this.page.evaluate(`
|
||||||
|
const { Replayer } = rrweb;
|
||||||
|
const replayer = new Replayer(events);
|
||||||
|
replayer.play(1500);
|
||||||
|
replayer.play(500);
|
||||||
|
replayer['timer']['actions'].length;
|
||||||
|
`);
|
||||||
|
expect(actionLength).to.equal(
|
||||||
|
events.filter((e) => e.timestamp - events[0].timestamp >= 500).length,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('can pause at any time offset', async () => {
|
||||||
|
const actionLength = await this.page.evaluate(`
|
||||||
|
const { Replayer } = rrweb;
|
||||||
|
const replayer = new Replayer(events);
|
||||||
|
replayer.pause(2500);
|
||||||
|
replayer['timer']['actions'].length;
|
||||||
|
`);
|
||||||
|
const currentTime = await this.page.evaluate(`
|
||||||
|
replayer.getCurrentTime();
|
||||||
|
`)
|
||||||
|
const currentState = await this.page.evaluate(`
|
||||||
|
replayer['service']['state']['value'];
|
||||||
|
`)
|
||||||
|
expect(actionLength).to.equal(0)
|
||||||
|
expect(currentTime).to.equal(2500);
|
||||||
|
expect(currentState).to.equal('paused');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user