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:
Justin Halsall
2026-04-01 12:00:00 +08:00
committed by GitHub
parent 6de74d7bca
commit 4206203036

View File

@@ -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');
});
});