spreadsheet
typeScript/javascript spreadsheet parser, with formulas.
git clone https://git.vogt.world/spreadsheet.git
Log | Files | README.md
← All files
name: tests/Utilities/ArgsCheckerTest.ts
-rw-r--r--
2515
 1import {
 2  assertEquals,
 3  test
 4} from "../Utils/Asserts";
 5import {
 6  ArgsChecker
 7} from "../../src/Utilities/ArgsChecker";
 8import {NA_ERROR} from "../../src/Errors";
 9
10
11function catchAndAssertErrorFormatting(toExecute : Function, errorString: string, nameToMatch: string) {
12  var toThrow = null;
13  try {
14    toExecute();
15    toThrow = true;
16  } catch (actualError) {
17    if (actualError.name !== errorString || actualError.message.indexOf(nameToMatch) === -1) {
18      console.log("expected:", errorString, " actual:", actualError.name, actualError.message);
19      console.trace();
20    }
21  }
22  if (toThrow) {
23    console.log("expected error: " + errorString, "and function name in error: ", nameToMatch);
24    console.trace();
25  }
26}
27
28const FORMULA_NAME = "FROMTEST";
29test("ArgsChecker.checkLength", function () {
30  assertEquals(ArgsChecker.checkLength(["A", "B"], 2), undefined);
31  assertEquals(ArgsChecker.checkLength(["A"], 1), undefined);
32  assertEquals(ArgsChecker.checkLength([], 0), undefined);
33  catchAndAssertErrorFormatting(function () {
34    ArgsChecker.checkLength(["A", "B"], 100, FORMULA_NAME);
35  }, NA_ERROR, FORMULA_NAME);
36});
37
38
39test("ArgsChecker.checkAtLeastLength", function () {
40  assertEquals(ArgsChecker.checkAtLeastLength(["A", "B"], 2), undefined);
41  assertEquals(ArgsChecker.checkAtLeastLength(["A", "B"], 1), undefined);
42  assertEquals(ArgsChecker.checkAtLeastLength(["A"], 1), undefined);
43  assertEquals(ArgsChecker.checkAtLeastLength(["A"], 0), undefined);
44  assertEquals(ArgsChecker.checkAtLeastLength([], 0), undefined);
45  catchAndAssertErrorFormatting(function () {
46    ArgsChecker.checkAtLeastLength(["A", "B"], 3, FORMULA_NAME);
47  }, NA_ERROR, FORMULA_NAME);
48});
49
50
51test("ArgsChecker.checkLengthWithin", function () {
52  assertEquals(ArgsChecker.checkLengthWithin(["A", "B"], 2, 10), undefined);
53  assertEquals(ArgsChecker.checkLengthWithin(["A", "B"], 1, 4), undefined);
54  assertEquals(ArgsChecker.checkLengthWithin(["A", "B", "C", "D"], 1, 4), undefined);
55  assertEquals(ArgsChecker.checkLengthWithin(["A", "B", "C", "D"], 1, 6), undefined);
56  catchAndAssertErrorFormatting(function () {
57    ArgsChecker.checkLengthWithin(["A", "B"], 3, 10, FORMULA_NAME);
58  }, NA_ERROR, FORMULA_NAME);
59  catchAndAssertErrorFormatting(function () {
60    ArgsChecker.checkLengthWithin(["A", "B"], 5, 10, FORMULA_NAME);
61  }, NA_ERROR, FORMULA_NAME);
62  catchAndAssertErrorFormatting(function () {
63    ArgsChecker.checkLengthWithin(["A", "B", "C", "D"], 5, 6, FORMULA_NAME);
64  }, NA_ERROR, FORMULA_NAME);
65});