Jobber/orchestrator/src/server/services/output-language.test.ts
Saad f92b80dfe2
Add language settings for AI-generated resume output (#252)
* Add language settings for AI-generated resume output

* Resolve merge conflicts for language settings PR

* Fix language settings review feedback and CI lint

* Tighten language setting precedence and onboarding validation

---------

Co-authored-by: saad <Saad>
2026-03-11 18:24:01 +00:00

72 lines
1.7 KiB
TypeScript

import type { ResumeProfile } from "@shared/types";
import { describe, expect, it } from "vitest";
import {
detectProfileLanguage,
resolveWritingOutputLanguage,
} from "./output-language";
describe("resolveWritingOutputLanguage", () => {
it("uses the manual language when manual mode is selected", () => {
const result = resolveWritingOutputLanguage({
style: {
languageMode: "manual",
manualLanguage: "spanish",
},
profile: {},
});
expect(result).toEqual({
language: "spanish",
source: "manual",
});
});
it("detects supported non-english resume language from profile text", () => {
const profile: ResumeProfile = {
basics: {
summary:
"Ich entwickle skalierbare Plattformen und arbeite eng mit Produktteams und der Entwicklung zusammen.",
},
sections: {
summary: {
content:
"Erfahrung mit verteilten Systemen, APIs und verantwortlicher Lieferung für das Team.",
},
},
};
expect(detectProfileLanguage(profile)).toBe("german");
expect(
resolveWritingOutputLanguage({
style: {
languageMode: "match-resume",
manualLanguage: "english",
},
profile,
}),
).toEqual({
language: "german",
source: "detected",
});
});
it("falls back to english when resume language detection is weak", () => {
const result = resolveWritingOutputLanguage({
style: {
languageMode: "match-resume",
manualLanguage: "french",
},
profile: {
basics: {
headline: "Senior Engineer",
},
},
});
expect(result).toEqual({
language: "english",
source: "fallback",
});
});
});