mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-14 13:03:07 +00:00
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import '../../fixtures/window';
|
|
import { Session } from '../../../src/document/history';
|
|
import { delay } from '../../utils/misc';
|
|
|
|
describe('Session', () => {
|
|
it('constructor', () => {
|
|
const session = new Session(1, { a: 1 });
|
|
expect(session.cursor).toBe(1);
|
|
expect(session.data).toEqual({ a: 1 });
|
|
// @ts-ignore
|
|
expect(session.timeGap).toBe(1000);
|
|
expect(session.isActive()).toBeTruthy();
|
|
});
|
|
|
|
it('log()', () => {
|
|
const session = new Session(1, { a: 1 });
|
|
|
|
session.log({ a: 2 });
|
|
session.log({ a: 3 });
|
|
expect(session.data).toEqual({ a: 3 });
|
|
});
|
|
|
|
it('end()', () => {
|
|
const session = new Session(1, { a: 1 });
|
|
|
|
session.end();
|
|
expect(session.isActive()).toBeFalsy();
|
|
session.log({ a: 2 });
|
|
// log is not possible if current session is inactive
|
|
expect(session.data).toEqual({ a: 1 });
|
|
});
|
|
|
|
|
|
it('timeGap', async () => {
|
|
const session = new Session(1, { a: 1 });
|
|
|
|
expect(session.isActive()).toBeTruthy();
|
|
await delay(1200);
|
|
expect(session.isActive()).toBeFalsy();
|
|
session.log({ a: 2 });
|
|
// log is not possible if current session is inactive
|
|
expect(session.data).toEqual({ a: 1 });
|
|
});
|
|
|
|
it('custom timeGap', async () => {
|
|
const session = new Session(1, { a: 1 }, 2000);
|
|
|
|
expect(session.isActive()).toBeTruthy();
|
|
await delay(1200);
|
|
expect(session.isActive()).toBeTruthy();
|
|
await delay(1000);
|
|
expect(session.isActive()).toBeFalsy();
|
|
session.log({ a: 2 });
|
|
// log is not possible if current session is inactive
|
|
expect(session.data).toEqual({ a: 1 });
|
|
});
|
|
}); |