Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
117 lines
2.6 KiB
JavaScript
117 lines
2.6 KiB
JavaScript
import {
|
|
addAlignmentToDoc,
|
|
align,
|
|
conditionalGroup,
|
|
dedent,
|
|
dedentToRoot,
|
|
fill,
|
|
group,
|
|
ifBreak,
|
|
indent,
|
|
indentIfBreak,
|
|
InvalidDocError,
|
|
join,
|
|
label,
|
|
line,
|
|
lineSuffix,
|
|
markAsRoot,
|
|
trim,
|
|
} from "../../src/document/index.js";
|
|
|
|
const invalidDoc = { type: "invalid-type" };
|
|
const validDoc = "string";
|
|
const notArray = {};
|
|
describe("doc builders", () => {
|
|
const invalid = [
|
|
() => indent(),
|
|
() => indent(invalidDoc),
|
|
|
|
() => align(2),
|
|
() => align(2, invalidDoc),
|
|
[() => align(["invalid"], validDoc), TypeError],
|
|
[() => align(undefined, validDoc), TypeError],
|
|
|
|
() => group(),
|
|
() => group(invalidDoc),
|
|
[() => group(validDoc, { expandedStates: notArray }), TypeError],
|
|
() => group(validDoc, { expandedStates: [invalidDoc] }),
|
|
|
|
() => dedentToRoot(),
|
|
() => dedentToRoot(invalidDoc),
|
|
|
|
() => markAsRoot(),
|
|
() => markAsRoot(invalidDoc),
|
|
|
|
() => dedent(),
|
|
() => dedent(invalidDoc),
|
|
|
|
[() => conditionalGroup(), TypeError],
|
|
() => conditionalGroup([]),
|
|
() => conditionalGroup([invalidDoc]),
|
|
() => conditionalGroup([validDoc, invalidDoc]),
|
|
|
|
[() => fill(), TypeError],
|
|
[() => fill(notArray), TypeError],
|
|
() => fill([invalidDoc]),
|
|
[() => fill(["abc", "abc"]), Error],
|
|
[() => fill(["abc", line, "def", "ghi"]), Error],
|
|
[() => fill(["abc", [line, "def"], "ghi"]), Error],
|
|
[() => fill(["abc", "", "def"]), Error],
|
|
|
|
() => ifBreak(),
|
|
() => ifBreak(invalidDoc),
|
|
() => ifBreak(validDoc, 0),
|
|
() => ifBreak(validDoc, null),
|
|
() => ifBreak(validDoc, invalidDoc),
|
|
|
|
() => indentIfBreak(),
|
|
() => indentIfBreak(invalidDoc),
|
|
|
|
() => lineSuffix(),
|
|
() => lineSuffix(invalidDoc),
|
|
|
|
() => join(),
|
|
() => join(invalidDoc),
|
|
() => join(invalidDoc, []),
|
|
[() => join(validDoc, notArray), TypeError],
|
|
() => join(validDoc, [invalidDoc]),
|
|
|
|
() => addAlignmentToDoc(),
|
|
() => addAlignmentToDoc(invalidDoc),
|
|
|
|
() => label(),
|
|
() => label({}, invalidDoc),
|
|
];
|
|
|
|
const valid = [
|
|
group(validDoc),
|
|
group(validDoc, { expandedStates: undefined }),
|
|
|
|
ifBreak(validDoc),
|
|
// eslint-disable-next-line unicorn/no-useless-undefined
|
|
ifBreak(validDoc, undefined),
|
|
|
|
align("any string", validDoc),
|
|
|
|
trim,
|
|
];
|
|
|
|
describe("Invalid usage", () => {
|
|
for (let invalidCase of invalid) {
|
|
if (!Array.isArray(invalidCase)) {
|
|
invalidCase = [invalidCase, InvalidDocError];
|
|
}
|
|
|
|
test(invalidCase[0].toString(), () => {
|
|
expect(invalidCase[0]).toThrow(invalidCase[1]);
|
|
});
|
|
}
|
|
});
|
|
|
|
test("Valid usage", () => {
|
|
for (const doc of valid) {
|
|
expect(doc).toBeDefined();
|
|
}
|
|
});
|
|
});
|