Skip to content

Commit bbdd72d

Browse files
committed
moving test ast compare into it's own file
1 parent cf3db0c commit bbdd72d

2 files changed

Lines changed: 25 additions & 15 deletions

File tree

tests/config/run-test.js

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import path from "node:path";
22
import createEsmUtils from "esm-utils";
33
import { BOM, FULL_TEST } from "./constants.js";
44
import * as failedTests from "./failed-format-tests.js";
5-
import { format, parse } from "./run-prettier.js";
5+
import { format } from "./run-prettier.js";
66
import consistentEndOfLine from "./utils/consistent-end-of-line.js";
77
import createSnapshot from "./utils/create-snapshot.js";
88
import visualizeEndOfLine from "./utils/visualize-end-of-line.js";
9+
import * as testAstCompare from "./test-ast-compare.js";
910
import * as testSecondFormat from "./test-second-format.js";
1011
import { shouldThrowOnFormat } from "./utilities.js";
1112
import getPrettier from "./get-prettier.js";
@@ -126,20 +127,8 @@ async function runTest({
126127
}
127128
}
128129

129-
testSecondFormat.run(code, formatResult, filename, formatOptions);
130-
131-
const isAstUnstableTest = failedTests.isAstUnstable(filename, formatOptions);
132-
// Some parsers skip parsing empty files
133-
if (formatResult.changed && code.trim()) {
134-
const { input, output } = formatResult;
135-
const originalAst = await parse(input, formatOptions);
136-
const formattedAst = await parse(output, formatOptions);
137-
if (isAstUnstableTest) {
138-
expect(formattedAst).not.toEqual(originalAst);
139-
} else {
140-
expect(formattedAst).toEqual(originalAst);
141-
}
142-
}
130+
await testSecondFormat.run(code, formatResult, filename, formatOptions);
131+
await testAstCompare.run(code, formatResult, filename, formatOptions);
143132

144133
if (!shouldSkipEolTest(code, formatResult.options)) {
145134
for (const eol of ["\r\n", "\r"]) {

tests/config/test-ast-compare.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import * as failedTests from "./failed-format-tests.js";
2+
import { parse } from "./run-prettier.js";
3+
4+
async function testAstCompare(source, formatResult, filename, formatOptions) {
5+
const isAstUnstableTest = failedTests.isAstUnstable(filename, formatOptions);
6+
// Some parsers skip parsing empty files
7+
if (formatResult.changed && source.trim()) {
8+
const [originalAst, formattedAst] = await Promise.all(
9+
[formatResult.input, formatResult.output].map((code) =>
10+
parse(code, formatResult.options),
11+
),
12+
);
13+
if (isAstUnstableTest) {
14+
expect(formattedAst).not.toEqual(originalAst);
15+
} else {
16+
expect(formattedAst).toEqual(originalAst);
17+
}
18+
}
19+
}
20+
21+
export { testAstCompare as run };

0 commit comments

Comments
 (0)