From 1e8aaf0280d6ca0b9c317e11e1b53fac8ecdc2f8 Mon Sep 17 00:00:00 2001 From: Ben Yap Date: Sat, 14 May 2022 16:43:20 +1000 Subject: [PATCH] chore: add test for resolving aliases from nested path --- src/steps/loadTSConfig.ts | 2 +- test/steps/computeAliases.test.ts | 28 ++++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/steps/loadTSConfig.ts b/src/steps/loadTSConfig.ts index 095c407..79287b2 100644 --- a/src/steps/loadTSConfig.ts +++ b/src/steps/loadTSConfig.ts @@ -9,7 +9,7 @@ import { TSConfigPropertyError } from "~/utils/errors"; * Load the tsconfig file. If the file extends another tsconfig, * it will be recursively loaded. * - * @param path The path to the tsconfig file. + * @param basePath The path to the tsconfig file. */ export function loadTSConfig(basePath: string): TSConfig { const baseConfig = loadJSON(basePath, "loadTSConfig"); diff --git a/test/steps/computeAliases.test.ts b/test/steps/computeAliases.test.ts index d6c6201..ad4835e 100644 --- a/test/steps/computeAliases.test.ts +++ b/test/steps/computeAliases.test.ts @@ -1,8 +1,10 @@ +import { resolve } from "path"; + import { computeAliases } from "~/steps/computeAliases"; describe("steps/computeAliases", () => { - it("computes aliases correctly", () => { - const aliases = computeAliases(".", { + it("computes aliases correctly from the root path", () => { + const aliases = computeAliases(resolve("."), { compilerOptions: { paths: { "*": ["./lib/*"], @@ -22,4 +24,26 @@ describe("steps/computeAliases", () => { expect(aliases[1].aliasPaths).toEqual([`${cwd}/src`, `${cwd}/root`]); expect(aliases[2].aliasPaths).toEqual([`${cwd}/src/app`]); }); + + it("computes aliases correctly using a nested path", () => { + const aliases = computeAliases(resolve("./src"), { + compilerOptions: { + paths: { + "*": ["../lib/*"], + "~/*": ["./*", "../root/*"], + "@app": ["./app/*"], + }, + }, + }); + + expect(aliases).toHaveLength(3); + expect(aliases[0].prefix).toEqual(""); + expect(aliases[1].prefix).toEqual("~/"); + expect(aliases[2].prefix).toEqual("@app"); + + const cwd = process.cwd(); + expect(aliases[0].aliasPaths).toEqual([`${cwd}/lib`]); + expect(aliases[1].aliasPaths).toEqual([`${cwd}/src`, `${cwd}/root`]); + expect(aliases[2].aliasPaths).toEqual([`${cwd}/src/app`]); + }); });