Skip to content

Commit

Permalink
use snapshots
Browse files Browse the repository at this point in the history
  • Loading branch information
danielpza committed Aug 19, 2024
1 parent 78736c6 commit c786aa7
Showing 1 changed file with 40 additions and 27 deletions.
67 changes: 40 additions & 27 deletions test/tests/project-ref.test.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,49 @@
// noinspection ES6UnusedImports
import * as path from "node:path";
import path from "node:path";
import { createTsSolutionBuilder, EmittedFiles } from "../utils";
import { projectsPaths, ts } from "../config";

/* ****************************************************************************************************************** *
* Config
* ****************************************************************************************************************** */

/* File Paths */
const projectDir = ts.normalizePath(path.join(projectsPaths, "project-ref"));
const indexFile = ts.normalizePath(path.join(projectDir, "lib/b/index.ts"));

/* ****************************************************************************************************************** *
* Tests
* ****************************************************************************************************************** */
/**
* @exapmle
* const builder = createTsSolutionBuilder({ tsInstance: ts, projectDir });
* const emittedFiles = getRelativeEmittedFiles(builder.getEmitFiles());
*/
function getRelativeEmittedFiles(pathRecord: EmittedFiles) {
const result = {} as EmittedFiles;
for (const key in pathRecord) {
result[path.relative(projectDir, key)] = pathRecord[key];
}
return result;
}

// see: https://github.com/LeDDGroup/typescript-transform-paths/issues/125
describe(`Project References`, () => {
let emittedFiles: EmittedFiles;

beforeAll(() => {
const builder = createTsSolutionBuilder({ tsInstance: ts, projectDir });
emittedFiles = builder.getEmitFiles();
});

test(`Specifier for referenced project file resolves properly`, () => {
expect(emittedFiles[indexFile].js).toMatch(`export { AReffedConst } from "../a/index"`);
expect(emittedFiles[indexFile].dts).toMatch(`export { AReffedConst } from "../a/index"`);
});

test(`Specifier for local file resolves properly`, () => {
expect(emittedFiles[indexFile].js).toMatch(`export { LocalConst } from "./local/index"`);
expect(emittedFiles[indexFile].dts).toMatch(`export { LocalConst } from "./local/index"`);
});
test("project references", () => {
const builder = createTsSolutionBuilder({ tsInstance: ts, projectDir });
const emittedFiles = getRelativeEmittedFiles(builder.getEmitFiles());
expect(emittedFiles).toMatchInlineSnapshot(`
{
"lib/a/index.ts": {
"dts": "export declare const AReffedConst = 43;
",
"js": "export const AReffedConst = 43;
",
},
"lib/b/index.ts": {
"dts": "export { AReffedConst } from "../a/index";
export { LocalConst } from "./local/index";
",
"js": "export { AReffedConst } from "../a/index";
export { LocalConst } from "./local/index";
",
},
"lib/b/local/index.ts": {
"dts": "export declare const LocalConst = 55;
",
"js": "export const LocalConst = 55;
",
},
}
`);
});

0 comments on commit c786aa7

Please sign in to comment.