step-sequence-generator
Version:
A step sequence generator for figure skating programs
109 lines (108 loc) • 5.18 kB
JavaScript
;
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);
});
});
});
});