32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
import { describe, expect, test } from '@jest/globals';
|
|
|
|
import Session from 'Types/session';
|
|
import { Click, Location } from 'Types/session/event';
|
|
import Issue from 'Types/session/issue';
|
|
import { session } from './mocks/sessionResponse';
|
|
import { issues, events } from "./mocks/sessionData";
|
|
|
|
describe('Testing Session class', () => {
|
|
const sessionInfo = new Session(session.data);
|
|
|
|
test('checking type instances', () => {
|
|
expect(sessionInfo).toBeInstanceOf(Session);
|
|
expect(sessionInfo.issues[0]).toBeInstanceOf(Issue);
|
|
expect(sessionInfo.events[0]).toBeInstanceOf(Location);
|
|
expect(sessionInfo.events[1]).toBeInstanceOf(Click);
|
|
});
|
|
test('checking basic session info(id, userId, issues and events lengths to match)', () => {
|
|
expect(sessionInfo.sessionId).toBe('8119081922378909');
|
|
expect(sessionInfo.isMobile).toBe(false);
|
|
expect(sessionInfo.userNumericHash).toBe(55003039);
|
|
expect(sessionInfo.userId).toBe('fernando.dufour@pravaler.com.br');
|
|
expect(sessionInfo.issues.length).toBe(2);
|
|
expect(sessionInfo.notesWithEvents.length).toBe(362);
|
|
});
|
|
test('checking issue mapping', () => {
|
|
expect([...sessionInfo.issues]).toMatchObject(issues);
|
|
});
|
|
test('checking events mapping', () => {
|
|
expect([...sessionInfo.events.slice(0, 10)]).toMatchObject(events)
|
|
})
|
|
});
|