-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
test.js
68 lines (59 loc) · 2.09 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import test from "node:test";
import assert from "node:assert/strict";
import fs from "node:fs/promises";
import { fileURLToPath } from "node:url";
import prettier from "prettier";
import synchronizedPrettier, { createSynchronizedPrettier } from "./index.cjs";
import fakePrettier from "./a-fake-prettier-to-test.cjs";
const code = await fs.readFile("./index.cjs", "utf8");
test("format", async () => {
const formatOptions = { parser: "meriyah" };
const formattedBySynchronizedPrettier = synchronizedPrettier.format(
code,
formatOptions,
);
assert.equal(typeof formattedBySynchronizedPrettier, "string");
const formattedByPrettier = await prettier.format(code, formatOptions);
assert.equal(formattedBySynchronizedPrettier, formattedByPrettier);
let error;
try {
synchronizedPrettier.format("foo(", formatOptions);
} catch (formatError) {
error = formatError;
}
assert.deepEqual(error.loc, { start: { line: 1, column: 4 } });
});
test("version", () => {
assert.equal(synchronizedPrettier.version, prettier.version);
});
test("functions not exported directly", async () => {
const parseOptions = { parser: "meriyah" };
const { ast: astParsedBySynchronizedPrettier } =
synchronizedPrettier.__debug.parse(code, parseOptions);
assert.equal(astParsedBySynchronizedPrettier.type, "Program");
const { ast: astParsedByPrettier } = await prettier.__debug.parse(
code,
parseOptions,
);
assert.deepEqual(astParsedBySynchronizedPrettier, astParsedByPrettier);
});
{
const fakePrettierRelatedPath = "./a-fake-prettier-to-test.cjs";
const fakePrettierUrl = new URL(fakePrettierRelatedPath, import.meta.url);
for (const prettierEntry of [
fakePrettierUrl,
fakePrettierUrl.href,
fileURLToPath(fakePrettierUrl),
]) {
test(prettierEntry, async () => {
const fakeSynchronizedPrettier = createSynchronizedPrettier({
prettierEntry,
});
assert.equal(fakeSynchronizedPrettier.version, fakePrettier.version);
assert.equal(
fakeSynchronizedPrettier.format("code"),
await fakePrettier.format("code"),
);
});
}
}