* Use normalizeParts from utils in printer-markdown * Remove flatting for concat from normalizeDoc * Fix undef parts * Move normalizeDoc to doc-utils * Add test for normalizeDoc * Modify tests to avoid specllcheck errors
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
const prettier = require("prettier/local");
|
|
const docBuilders = prettier.doc.builders;
|
|
const docUtils = prettier.doc.utils;
|
|
|
|
const { normalizeDoc } = docUtils;
|
|
const { group, concat, fill } = docBuilders;
|
|
|
|
describe("normalizeDoc", () => {
|
|
test.each([
|
|
[
|
|
"removes empty strings",
|
|
concat(["", "foo", fill(["", "bar", ""]), ""]),
|
|
concat(["foo", fill(["bar"])]),
|
|
],
|
|
[
|
|
"flattens nested concat",
|
|
concat(["foo ", "", concat(["bar ", "", concat(["baz", ""])])]),
|
|
concat(["foo bar baz"]),
|
|
],
|
|
[
|
|
"flattens nested concat in other docs",
|
|
group(concat(["foo ", concat(["bar ", "", concat(["baz", ""])])])),
|
|
group(concat(["foo bar baz"])),
|
|
],
|
|
[
|
|
"keeps groups",
|
|
concat([group("foo"), group("bar"), group("baz")]),
|
|
concat([group("foo"), group("bar"), group("baz")]),
|
|
],
|
|
[
|
|
"keeps fills",
|
|
fill(["foo", fill(["bar", fill(["baz"])])]),
|
|
fill(["foo", fill(["bar", fill(["baz"])])]),
|
|
],
|
|
])("%s", (_, doc, expected) => {
|
|
const result = normalizeDoc(doc);
|
|
|
|
expect(result).toEqual(expected);
|
|
});
|
|
});
|