- What was broken was that it would just play activity from the first page view, but then would stop at the second page view (meta) as actions after that had been discarded - This restores the functionality given by the comment 'return the events from last meta to the end.' - we never want to discard events that are after the baseline time - I believe 'session' is the incorrect terminology for this function name, as a session in web analytics usually means a series of page views
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { expect } from 'chai';
|
|
import { discardPriorSnapshots } from '../src/replay/machine';
|
|
import { sampleEvents } from './utils';
|
|
import { EventType } from '../src/types';
|
|
|
|
const events = sampleEvents.filter(
|
|
(e) => ![EventType.DomContentLoaded, EventType.Load].includes(e.type),
|
|
);
|
|
const nextEvents = events.map((e) => ({
|
|
...e,
|
|
timestamp: e.timestamp + 1000,
|
|
}));
|
|
const nextNextEvents = nextEvents.map((e) => ({
|
|
...e,
|
|
timestamp: e.timestamp + 1000,
|
|
}));
|
|
|
|
describe('get last session', () => {
|
|
it('will return all the events when there is only one session', () => {
|
|
expect(discardPriorSnapshots(events, events[0].timestamp)).to.deep.equal(events);
|
|
});
|
|
|
|
it('will return last session when there is more than one in the events', () => {
|
|
const multiple = events.concat(nextEvents).concat(nextNextEvents);
|
|
expect(
|
|
discardPriorSnapshots(
|
|
multiple,
|
|
nextNextEvents[nextNextEvents.length - 1].timestamp,
|
|
),
|
|
).to.deep.equal(nextNextEvents);
|
|
});
|
|
|
|
it('will return last session when baseline time is future time', () => {
|
|
const multiple = events.concat(nextEvents).concat(nextNextEvents);
|
|
expect(
|
|
discardPriorSnapshots(
|
|
multiple,
|
|
nextNextEvents[nextNextEvents.length - 1].timestamp + 1000,
|
|
),
|
|
).to.deep.equal(nextNextEvents);
|
|
});
|
|
|
|
it('will return all sessions when baseline time is prior time', () => {
|
|
expect(discardPriorSnapshots(events, events[0].timestamp - 1000)).to.deep.equal(
|
|
events,
|
|
);
|
|
});
|
|
});
|