UNPKG

step-sequence-generator

Version:

A step sequence generator for figure skating programs

109 lines (108 loc) 5.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const BaseExcelParser_js_1 = require("./BaseExcelParser.js"); const mockWorkBook = { SheetNames: ['Sheet1', 'Sheet2'], Sheets: {}, }; var mockColumnName; (function (mockColumnName) { mockColumnName["FAKE_NAME_1"] = "A"; mockColumnName["FAKE_NAME_2"] = "B"; mockColumnName["FAKE_NAME_3"] = "Z"; })(mockColumnName || (mockColumnName = {})); (0, vitest_1.describe)('BaseExcelParser', () => { let parser; (0, vitest_1.beforeEach)(() => { parser = new BaseExcelParser_js_1.BaseExcelParser(mockColumnName); // parser.parse(mockWorkBook); }); (0, vitest_1.describe)('implementation', () => { (0, vitest_1.it)('должен корректно создаваться', () => { (0, vitest_1.expect)(parser).toBeDefined(); (0, vitest_1.expect)(parser).toBeInstanceOf(BaseExcelParser_js_1.BaseExcelParser); }); }); (0, vitest_1.describe)('getFirstSheetsName', () => { (0, vitest_1.it)('Должен отдавать имя первого листа книги', () => { const receivedName = parser['getFirstSheetsName'](mockWorkBook); const expectedName = mockWorkBook.SheetNames[0]; (0, vitest_1.expect)(receivedName).toBe(expectedName); }); }); (0, vitest_1.describe)('cleanUpAndSortSheetKeys', () => { (0, vitest_1.it)('не должно быть ключей, содержащих знак "!"', () => { const mockSheet = { '!margins': {}, A1: {} }; const receivedKeys = parser['cleanUpAndSortSheetKeys'](Object.keys(mockSheet)); const expectedKeys = ['A1']; (0, vitest_1.expect)(receivedKeys).toStrictEqual(expectedKeys); }); (0, vitest_1.it)('ключи листа должны быть отсортированы по возрастающей', () => { const mockSheet = { A1: {}, B1: {}, Z1: {}, A10: {}, B10: {}, Z10: {} }; const receivedKeys = parser['cleanUpAndSortSheetKeys'](Object.keys(mockSheet)); const expectedKeys = ['A1', 'A10', 'B1', 'B10', 'Z1', 'Z10']; (0, vitest_1.expect)(receivedKeys).toStrictEqual(expectedKeys); }); }); (0, vitest_1.describe)('findLastLineNumber', () => { (0, vitest_1.it)('должен отдать номер линии в листе ', () => { const mockSheet = { A1: {}, B1: {}, Z1: {}, A10: {}, B10: {}, Z10: {} }; const receivedNumber = parser['findLastLineNumber'](Object.keys(mockSheet)); const expectedNumber = 10; (0, vitest_1.expect)(receivedNumber).toStrictEqual(expectedNumber); }); }); (0, vitest_1.describe)('createLine and createData', () => { const mockSheet1 = { A2: { v: 'string value A2' }, B2: { v: 'string value B2' }, Z2: { v: '2' }, A3: { v: 'string value A3' }, B3: { v: 'string value B3' }, Z3: { v: '3' }, '!ref': 'A1:H1', }; (0, vitest_1.describe)('createLine', () => { (0, vitest_1.it)('должен вернуть Map со значениями строки листа', () => { const receivedLine = parser['createLine'](mockSheet1, Object.keys(mockColumnName), 2); const expectedLine = new Map([ ['A', 'string value a2'], ['B', 'string value b2'], ['Z', '2'], ]); (0, vitest_1.expect)(receivedLine).toStrictEqual(expectedLine); }); (0, vitest_1.it)('должен вернуть Map с value = пустая строка', () => { const mockSheet1 = { A2: { v: 'test' }, }; const mockColumnName = { FAKE_NAME_3: 'Z', }; const expectedLine = new Map([ ['Z', null], ]); const receivedLine = parser['createLine'](mockSheet1, Object.keys(mockColumnName), 2); (0, vitest_1.expect)(receivedLine).toStrictEqual(expectedLine); }); }); (0, vitest_1.describe)('createData', () => { (0, vitest_1.it)('должен вернуть массив Map со значениями всех строк листа', () => { const receivedData = parser['createData'](mockSheet1, 3, Object.keys(mockColumnName)); const line1 = new Map([ ['A', 'string value a2'], ['B', 'string value b2'], ['Z', '2'], ]); const line2 = new Map([ ['A', 'string value a3'], ['B', 'string value b3'], ['Z', '3'], ]); const expectedData = [line1, line2]; (0, vitest_1.expect)(receivedData).toStrictEqual(expectedData); }); }); }); });