Files
rea/src/domain/referenceSourceDockerfileLanguage.test.ts
T

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);
});
});