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) {
|
||||
this.timeout(10_000);
|
||||
|
||||
before(async () => {
|
||||
this.browser = await launchPuppeteer();
|
||||
|
||||
@@ -85,4 +87,48 @@ describe('replayer', function (this: ISuite) {
|
||||
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