|
1 | 1 | import fs from "fs"; |
2 | 2 | import path from "path"; |
3 | 3 | import { execSync } from "child_process"; |
| 4 | +import { sanitizeLB } from "../test-utils"; |
4 | 5 |
|
5 | 6 | // Note(drew): OpenAPI support is already well-tested in v2/index.test.ts and |
6 | 7 | // v3/index.test.ts. So this file is mainly for testing other flags. |
7 | 8 |
|
| 9 | +const cmd = `node ../../bin/cli.js`; |
| 10 | + |
8 | 11 | describe("cli", () => { |
9 | 12 | it("--prettier-config (JSON)", async () => { |
10 | | - execSync( |
11 | | - `../../bin/cli.js specs/petstore.yaml -o generated/prettier-json.ts --prettier-config fixtures/.prettierrc`, |
12 | | - { cwd: __dirname } |
13 | | - ); |
| 13 | + execSync(`${cmd} specs/petstore.yaml -o generated/prettier-json.ts --prettier-config fixtures/.prettierrc`, { |
| 14 | + cwd: __dirname, |
| 15 | + }); |
14 | 16 | const [generated, expected] = await Promise.all([ |
15 | 17 | fs.promises.readFile(path.join(__dirname, "generated", "prettier-json.ts"), "utf8"), |
16 | 18 | fs.promises.readFile(path.join(__dirname, "expected", "prettier-json.ts"), "utf8"), |
17 | 19 | ]); |
18 | | - expect(generated).toBe(expected); |
| 20 | + expect(generated).toBe(sanitizeLB(expected)); |
19 | 21 | }); |
20 | 22 |
|
21 | 23 | it("--prettier-config (.js)", async () => { |
22 | | - execSync( |
23 | | - `../../bin/cli.js specs/petstore.yaml -o generated/prettier-js.ts --prettier-config fixtures/prettier.config.js`, |
24 | | - { cwd: __dirname } |
25 | | - ); |
| 24 | + execSync(`${cmd} specs/petstore.yaml -o generated/prettier-js.ts --prettier-config fixtures/prettier.config.js`, { |
| 25 | + cwd: __dirname, |
| 26 | + }); |
26 | 27 | const [generated, expected] = await Promise.all([ |
27 | 28 | fs.promises.readFile(path.join(__dirname, "generated", "prettier-js.ts"), "utf8"), |
28 | 29 | fs.promises.readFile(path.join(__dirname, "expected", "prettier-js.ts"), "utf8"), |
29 | 30 | ]); |
30 | | - expect(generated).toBe(expected); |
| 31 | + expect(generated).toBe(sanitizeLB(expected)); |
31 | 32 | }); |
32 | 33 |
|
33 | 34 | it("stdout", async () => { |
34 | 35 | const expected = fs.readFileSync(path.join(__dirname, "expected", "stdout.ts"), "utf8"); |
35 | | - const generated = execSync(`../../bin/cli.js specs/petstore.yaml`, { cwd: __dirname }); |
36 | | - expect(generated.toString("utf8")).toBe(expected); |
| 36 | + const generated = execSync(`${cmd} specs/petstore.yaml`, { cwd: __dirname }); |
| 37 | + expect(generated.toString("utf8")).toBe(sanitizeLB(expected)); |
37 | 38 | }); |
38 | 39 |
|
39 | 40 | it("supports glob paths", async () => { |
40 | | - execSync(`../../bin/cli.js "specs/*.yaml" -o generated/`, { cwd: __dirname }); // Quotes are necessary because shells like zsh treats glob weirdly |
| 41 | + execSync(`${cmd} "specs/*.yaml" -o generated/`, { cwd: __dirname }); // Quotes are necessary because shells like zsh treats glob weirdly |
41 | 42 | const [generatedPetstore, expectedPetstore, generatedManifold, expectedManifold] = await Promise.all([ |
42 | 43 | fs.promises.readFile(path.join(__dirname, "generated", "specs", "petstore.ts"), "utf8"), |
43 | 44 | fs.promises.readFile(path.join(__dirname, "expected", "petstore.ts"), "utf8"), |
44 | 45 | fs.promises.readFile(path.join(__dirname, "generated", "specs", "manifold.ts"), "utf8"), |
45 | 46 | fs.promises.readFile(path.join(__dirname, "expected", "manifold.ts"), "utf8"), |
46 | 47 | ]); |
47 | | - expect(generatedPetstore).toBe(expectedPetstore); |
48 | | - expect(generatedManifold).toBe(expectedManifold); |
| 48 | + expect(generatedPetstore).toBe(sanitizeLB(expectedPetstore)); |
| 49 | + expect(generatedManifold).toBe(sanitizeLB(expectedManifold)); |
49 | 50 | }); |
50 | 51 | }); |
0 commit comments