testLineSpansAreForgiving
tcmts.cli.main.testLineSpansAreForgiving · #qn7d6vif · term
import { lineSpans } from "#codebase/tcmts/cli/main";
import assert from "node:assert/strict";
export const testLineSpansAreForgiving = () => {
assert.deepEqual(lineSpans("120"), [[120, 120]]);
assert.deepEqual(lineSpans("120-180"), [[120, 180]]);
// written as an agent might: quoted, spaced, with other separators
assert.deepEqual(lineSpans('"1-60"'), [[1, 60]]);
assert.deepEqual(lineSpans(" 1 : 60 "), [[1, 60]]);
assert.deepEqual(lineSpans("1..60"), [[1, 60]]);
assert.deepEqual(lineSpans("1–60"), [[1, 60]]);
assert.deepEqual(lineSpans("60-1"), [[1, 60]]);
// to the end, and several
assert.deepEqual(lineSpans("90-"), [[90, Infinity]]);
assert.deepEqual(lineSpans("1-20,90-"), [
[1, 20],
[90, Infinity],
]);
assert.equal(lineSpans("the top"), undefined);
assert.equal(lineSpans(""), undefined);
}
uses