import { timetable, timetableEntry, TimetableResponse } from '../' let response: TimetableResponse describe('Timetable', () => { beforeEach(() => { response = { error: null, data: { textList: [ { x: 11, y: 64, fColor: '#000000', fontsize: 14, text: '8:30', bold: false, italic: false, id: 9, parentId: 6, type: 'ClockAxisBox', }, { x: 11, y: 125, fColor: '#000000', fontsize: 14, text: '9:00', bold: false, italic: false, id: 12, parentId: 6, type: 'ClockAxisBox', }, ], boxList: [ { x: 0, y: 950, width: 1226, height: 112, bColor: '#FFFFFF', fColor: '#FFFFFF', id: 0, parentId: null, type: 'Footer', lessonGuids: null, }, { x: 56, y: 0, width: 223, height: 34, bColor: '#FFFFFF', fColor: '#000000', id: 1, parentId: null, type: 'HeadingDay', lessonGuids: null, }, ], lineList: [ { p1x: 51, p1y: 34, p2x: 56, p2y: 34, color: '#000000', id: 7, parentId: 6, type: 'ClockAxisGradiation', }, { p1x: 0, p1y: 64, p2x: 56, p2y: 64, color: '#000000', id: 8, parentId: 6, type: 'ClockAxisGradiation', }, ], lessonInfo: [ { guidId: 'N2FjMDc1NjYtZmM2Yy0wZDQyLTY3M2YtZWI5NGNiZDA3ZGU4', texts: ['Lunch', '', 'Ö5'], timeStart: '11:40:00', timeEnd: '12:05:00', dayOfWeekNumber: 1, blockName: '', }, { guidId: 'ZTQ1NWE0N2EtNzAwOS0wZTAzLTQ1ZDYtNTA1NWI4Y2JhNDYw', texts: ['BL', 'KUr', '221'], timeStart: '09:40:00', timeEnd: '11:35:00', dayOfWeekNumber: 1, blockName: 'block', }, ], }, exception: null, validation: [], } }) describe('timetableEntry', () => { it('parses basic timeTableEntry data correctly', () => { const entry = timetableEntry(response.data.lessonInfo[1], 2021, 15, 'sv') expect(entry.id).toEqual( 'ZTQ1NWE0N2EtNzAwOS0wZTAzLTQ1ZDYtNTA1NWI4Y2JhNDYw' ) expect(entry.code).toEqual('BL') expect(entry.name).toEqual('Bild') expect(entry.teacher).toEqual('KUr') expect(entry.location).toEqual('221') expect(entry.timeStart).toEqual('09:40:00') expect(entry.timeEnd).toEqual('11:35:00') expect(entry.dayOfWeek).toEqual(1) expect(entry.blockName).toEqual('block') }) it('parses dates correctly', () => { const entry = timetableEntry(response.data.lessonInfo[1], 2021, 15, 'sv') expect(entry.dateStart).toEqual('2021-04-12T09:40:00.000+02:00') expect(entry.dateEnd).toEqual('2021-04-12T11:35:00.000+02:00') }) }) describe('timetable', () => { it('throws error', () => { response.error = 'b0rk' expect(() => timetable(response, 2021, 15, 'sv')).toThrow('b0rk') }) it('parses lessonInfo', () => { const table = timetable(response, 2021, 15, 'sv') expect(table).toHaveLength(2) expect(table[0].id).toEqual( 'N2FjMDc1NjYtZmM2Yy0wZDQyLTY3M2YtZWI5NGNiZDA3ZGU4' ) expect(table[1].id).toEqual( 'ZTQ1NWE0N2EtNzAwOS0wZTAzLTQ1ZDYtNTA1NWI4Y2JhNDYw' ) }) }) })