52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { detectReferenceSourceLanguage } from "./referenceSourceClassification.js";
|
|
|
|
describe("reference source Dockerfile language detection", () => {
|
|
it.each([
|
|
["DockerfileGuide.ts", "TypeScript"],
|
|
["nested/dockerfileHelper.py", "Python"],
|
|
["docs/dockerfiles.md", "Markdown"],
|
|
["DOCKERFILE_HELPER.JS", "JavaScript"],
|
|
["Dockerfile-Guide.tsx", "TSX"],
|
|
["DockerfileGuide.d.ts", "TypeScript"],
|
|
["DockerfileGuide.d.mts", "TypeScript"],
|
|
["DockerfileGuide.d.cts", "TypeScript"],
|
|
["dockerfiles", null],
|
|
["dockerfileHelper.unknown", null],
|
|
])(
|
|
"uses the extension for unrelated prefix filename %s",
|
|
(path, language) => {
|
|
expect(detectReferenceSourceLanguage(path)).toBe(language);
|
|
},
|
|
);
|
|
|
|
it.each([
|
|
"Dockerfile",
|
|
"dockerfile",
|
|
"DOCKERFILE",
|
|
"nested/DoCkErFiLe",
|
|
"Dockerfile.dev",
|
|
"Dockerfile.dev.ts",
|
|
"nested/dockerfile.dev.ts",
|
|
"DOCKERFILE.DEV.TS",
|
|
"Dockerfile.",
|
|
])("preserves exact and dotted Dockerfile recognition for %s", (path) => {
|
|
expect(detectReferenceSourceLanguage(path)).toBe("Dockerfile");
|
|
});
|
|
|
|
it.each([
|
|
["ordinary.ts", "TypeScript"],
|
|
["ordinary.TS", "TypeScript"],
|
|
["ordinary.d.mts", "TypeScript"],
|
|
["Dockerfile/main.js", "JavaScript"],
|
|
["README.md", "Markdown"],
|
|
["package.json", "JSON"],
|
|
["Containerfile", null],
|
|
[".dockerfile", null],
|
|
["unknown", null],
|
|
])("preserves other filename handling for %s", (path, language) => {
|
|
expect(detectReferenceSourceLanguage(path)).toBe(language);
|
|
});
|
|
});
|