diff --git a/src/path-alias/path-alias.test.ts b/src/path-alias/path-alias.test.ts index b3b2f5c..3e596df 100644 --- a/src/path-alias/path-alias.test.ts +++ b/src/path-alias/path-alias.test.ts @@ -60,5 +60,9 @@ Deno.test("preserves .ts extensions in path aliases", async () => { await testFn("ts-extensions"); }); -// TODO handle edge case for path alias to index.ts -// TODO handle priority collision with `@/*` => `src/*` +Deno.test.only( + "resolves alias priority collision for @/* to src/*", + async () => { + await testFn("alias-priority-collision"); + }, +); diff --git a/src/path-alias/spec/src/tests/alias-priority-collision.in.ts b/src/path-alias/spec/src/tests/alias-priority-collision.in.ts new file mode 100644 index 0000000..740af2d --- /dev/null +++ b/src/path-alias/spec/src/tests/alias-priority-collision.in.ts @@ -0,0 +1,9 @@ +import { AuthService } from "@/services/auth"; +import { Logger } from "@/utils/logger"; + +export async function boot() { + const auth = new AuthService(); + const logger = new Logger(); + await auth.initialize(); + logger.info("booted"); +} diff --git a/src/path-alias/spec/src/tests/alias-priority-collision.out.ts b/src/path-alias/spec/src/tests/alias-priority-collision.out.ts new file mode 100644 index 0000000..5b876ac --- /dev/null +++ b/src/path-alias/spec/src/tests/alias-priority-collision.out.ts @@ -0,0 +1,9 @@ +import { AuthService } from "../services/auth"; +import { Logger } from "../utils/logger"; + +export async function boot() { + const auth = new AuthService(); + const logger = new Logger(); + await auth.initialize(); + logger.info("booted"); +} diff --git a/src/path-alias/spec/src/tests/index-alias-edge.in.ts b/src/path-alias/spec/src/tests/index-alias-edge.in.ts new file mode 100644 index 0000000..c521fc7 --- /dev/null +++ b/src/path-alias/spec/src/tests/index-alias-edge.in.ts @@ -0,0 +1,6 @@ +import { UserModel } from "@models"; + +export const creds: UserModel.LoginCredentials = { + username: "u", + password: "p", +}; diff --git a/src/path-alias/spec/src/tests/index-alias-edge.out.ts b/src/path-alias/spec/src/tests/index-alias-edge.out.ts new file mode 100644 index 0000000..9b02e5a --- /dev/null +++ b/src/path-alias/spec/src/tests/index-alias-edge.out.ts @@ -0,0 +1,6 @@ +import { UserModel } from "../models/index.ts"; + +export const creds: UserModel.LoginCredentials = { + username: "u", + password: "p", +}; diff --git a/src/path-alias/spec/tsconfig.json b/src/path-alias/spec/tsconfig.json index c25872b..f53eb60 100644 --- a/src/path-alias/spec/tsconfig.json +++ b/src/path-alias/spec/tsconfig.json @@ -11,7 +11,8 @@ "@types/*": ["src/types/*"], "@models/*": ["src/models/*"], "@controllers/*": ["src/controllers/*"], - "@modules/*": ["src/modules/*"] + "@modules/*": ["src/modules/*"], + "@/*": ["src/*"] } } }