feat(cover-letter): add contextual AI workspace
This commit is contained in:
@@ -114,6 +114,55 @@ public sealed class AiWorkspaceTests
|
||||
Assert.Contains("Professional", res.Title);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Cover_letter_uses_the_linked_cv_current_draft_and_requested_language()
|
||||
{
|
||||
var (db, svc, ai) = New("user-1");
|
||||
await using var _ = db;
|
||||
var jobId = await SeedJobAsync(db, "user-1");
|
||||
var profile = new StructuredCvProfile
|
||||
{
|
||||
Contact = new StructuredCvContact { FullName = "Ada Example" },
|
||||
Jobs =
|
||||
{
|
||||
new StructuredCvJob { Id = "visible-role", Title = "Backend Developer", Company = "Initech", Bullets = { "Built truthful .NET services" } },
|
||||
new StructuredCvJob { Id = "hidden-role", Title = "Unrelated role", Company = "Hidden Corp", Bullets = { "Unrelated work" } },
|
||||
},
|
||||
Skills = { "C#", ".NET" },
|
||||
};
|
||||
db.CareerProfiles.Add(new CareerProfile
|
||||
{
|
||||
OwnerUserId = "user-1",
|
||||
ProfileJson = StructuredCvProfileJson.Serialize(profile),
|
||||
});
|
||||
db.CvVariants.Add(new CvVariant
|
||||
{
|
||||
OwnerUserId = "user-1",
|
||||
JobApplicationId = jobId,
|
||||
Name = "Backend CV",
|
||||
PublicSlug = Guid.NewGuid().ToString("N"),
|
||||
SettingsJson = CvVariantSettingsJson.Serialize(new CvVariantSettings
|
||||
{
|
||||
Overrides = { ["hidden-role"] = new CvItemOverride { Hidden = true } },
|
||||
}),
|
||||
Version = 1,
|
||||
CreatedAtUtc = DateTimeOffset.UtcNow,
|
||||
UpdatedAtUtc = DateTimeOffset.UtcNow,
|
||||
});
|
||||
await db.SaveChangesAsync();
|
||||
|
||||
await svc.GenerateAsync("user-1", jobId, "master profile fallback", "Ada",
|
||||
new AiGenerateRequest("cover-letter", "professional", null, "nb-NO", "Existing manual draft", "shorten"), "p", default);
|
||||
|
||||
Assert.Contains("CV BEING USED: Backend CV", ai.LastText);
|
||||
Assert.Contains("Built truthful .NET services", ai.LastText);
|
||||
Assert.DoesNotContain("Hidden Corp", ai.LastText);
|
||||
Assert.Contains("CURRENT DOCUMENT TO REVISE", ai.LastText);
|
||||
Assert.Contains("Existing manual draft", ai.LastText);
|
||||
Assert.Contains("Norwegian Bokmål", ai.LastInstruction);
|
||||
Assert.Contains("Shorten the current cover letter", ai.LastInstruction);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task History_is_newest_first_and_filters_by_module()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user