serenity/Userland/Applications/Spreadsheet/Tests/test-harness.js
Ali Mohammad Pur bed129a69f LibTest+Spreadsheet: Add some basic spreadsheet runtime behaviour tests
As there's a somewhat active development going on, let's keep the
expected behaviour under tests to make sure nothing blows up :^)
2022-02-23 03:17:12 +03:30

47 lines
1.8 KiB
JavaScript

describe("Harness-defined functions", () => {
test("createWorkbook", () => {
expect(createWorkbook).toBeDefined();
const workbook = createWorkbook();
expect(workbook).toBeDefined();
expect(workbook.sheet).toBeDefined();
});
test("createSheet", () => {
const workbook = createWorkbook();
const sheet = createSheet(workbook, "foo");
expect(sheet).toBeDefined();
expect(sheet.get_real_cell_contents).toBeDefined();
expect(sheet.set_real_cell_contents).toBeDefined();
expect(sheet.parse_cell_name).toBeDefined();
expect(sheet.current_cell_position).toBeDefined();
expect(sheet.column_index).toBeDefined();
expect(sheet.column_arithmetic).toBeDefined();
expect(sheet.get_column_bound).toBeDefined();
});
test("Sheet mock behavior", () => {
const workbook = createWorkbook();
const sheet = createSheet(workbook, "foo");
sheet.setCell("A", 0, "10");
expect(sheet.getCell("A", 0)).toEqual(["10", "10"]);
sheet.setCell("A", 0, "=10");
expect(sheet.getCell("A", 0)).toEqual(["=10", 10]);
expect(sheet.getColumns()).toEqual(["A"]);
});
test("Workbook mock behavior", () => {
const workbook = createWorkbook();
const sheet = createSheet(workbook, "foo");
expect(workbook.sheet("foo")).toBe(sheet);
expect(workbook.sheet(0)).toBe(sheet);
expect(workbook.sheet(1)).toBeUndefined();
expect(workbook.sheet("bar")).toBeUndefined();
});
test("Referencing cells", () => {
const workbook = createWorkbook();
const sheet = createSheet(workbook, "foo");
sheet.setCell("A", 0, "42");
sheet.setCell("A", 1, "=A0");
expect(sheet.getCell("A", 1)).toEqual(["=A0", "42"]);
});
});