| import { assert } from "chai"; |
| import { getPathsToTry } from "../src/try-path"; |
| import { join } from "path"; |
| |
| describe("mapping-entry", () => { |
| const abosolutePathMappings = [ |
| { |
| pattern: "longest/pre/fix/*", |
| paths: [join("/absolute", "base", "url", "foo2", "bar")] |
| }, |
| { pattern: "pre/fix/*", paths: [join("/absolute", "base", "url", "foo3")] }, |
| { pattern: "*", paths: [join("/absolute", "base", "url", "foo1")] } |
| ]; |
| it("should return no paths for relative requested module", () => { |
| const result = getPathsToTry( |
| [".ts", "tsx"], |
| abosolutePathMappings, |
| "./requested-module" |
| ); |
| assert.deepEqual(result, undefined); |
| }); |
| |
| it("should return no paths if no pattern match the requested module", () => { |
| const result = getPathsToTry( |
| [".ts", "tsx"], |
| [ |
| { |
| pattern: "longest/pre/fix/*", |
| paths: [join("/absolute", "base", "url", "foo2", "bar")] |
| }, |
| { |
| pattern: "pre/fix/*", |
| paths: [join("/absolute", "base", "url", "foo3")] |
| } |
| ], |
| "requested-module" |
| ); |
| assert.deepEqual(result, undefined); |
| }); |
| |
| it("should get all paths that matches requested module", () => { |
| const result = getPathsToTry( |
| [".ts", ".tsx"], |
| abosolutePathMappings, |
| "longest/pre/fix/requested-module" |
| ); |
| assert.deepEqual(result, [ |
| // "longest/pre/fix/*" |
| { type: "file", path: join("/absolute", "base", "url", "foo2", "bar") }, |
| { |
| type: "extension", |
| path: join("/absolute", "base", "url", "foo2", "bar.ts") |
| }, |
| { |
| type: "extension", |
| path: join("/absolute", "base", "url", "foo2", "bar.tsx") |
| }, |
| { |
| type: "package", |
| path: join("/absolute", "base", "url", "foo2", "bar", "package.json") |
| }, |
| { |
| type: "index", |
| path: join("/absolute", "base", "url", "foo2", "bar", "index.ts") |
| }, |
| { |
| type: "index", |
| path: join("/absolute", "base", "url", "foo2", "bar", "index.tsx") |
| }, |
| // "*" |
| { type: "file", path: join("/absolute", "base", "url", "foo1") }, |
| { type: "extension", path: join("/absolute", "base", "url", "foo1.ts") }, |
| { type: "extension", path: join("/absolute", "base", "url", "foo1.tsx") }, |
| { |
| type: "package", |
| path: join("/absolute", "base", "url", "foo1", "package.json") |
| }, |
| { |
| type: "index", |
| path: join("/absolute", "base", "url", "foo1", "index.ts") |
| }, |
| { |
| type: "index", |
| path: join("/absolute", "base", "url", "foo1", "index.tsx") |
| } |
| ]); |
| }); |
| }); |
| |
| // describe("match-star", () => { |
| // it("should match star in last position", () => { |
| // const result = matchStar("lib/*", "lib/mylib"); |
| // assert.equal(result, "mylib"); |
| // }); |
| // it("should match star in first position", () => { |
| // const result = matchStar("*/lib", "mylib/lib"); |
| // assert.equal(result, "mylib"); |
| // }); |
| // }); |