chore: Testing that we have some ranges for the and and or combinators

This commit is contained in:
BluJ
2022-07-15 12:55:52 -06:00
parent 3cac71aa96
commit 75375c4a28
2 changed files with 15 additions and 0 deletions

View File

@@ -72,6 +72,9 @@ export function rangeOf(range: string | Checker): Checker {
}
export function rangeAnd(...ranges: (string | Checker)[]): Checker {
if (ranges.length === 0) {
throw new Error('No ranges given');
}
let [firstCheck, ...rest] = ranges.map(rangeOf);
for (const checker of rest) {
firstCheck = firstCheck.and(checker);
@@ -80,6 +83,9 @@ export function rangeAnd(...ranges: (string | Checker)[]): Checker {
}
export function rangeOr(...ranges: (string | Checker)[]): Checker {
if (ranges.length === 0) {
throw new Error('No ranges given');
}
let [firstCheck, ...rest] = ranges.map(rangeOf);
for (const checker of rest) {
firstCheck = firstCheck.or(checker);

View File

@@ -157,4 +157,13 @@ const { test } = Deno;
expect(checker.check("1.2")).toBe(false);
expect(checker.check("1.2.1")).toBe(false);
})
}
{
test(`no and ranges`, () => {
expect(() => rangeAnd()).toThrow()
})
test(`no or ranges`, () => {
expect(() => rangeOr()).toThrow()
})
}