fix: preserve blank CVs and reliable editor undo

This commit is contained in:
cesnimda
2026-10-27 07:37:03 +01:00
parent 5d4b8f23ce
commit 663023a088
22 changed files with 950 additions and 101 deletions
@@ -16,6 +16,27 @@ namespace JobTrackerApi.Tests;
public sealed class CvExportRevisionTests
{
[Fact]
public async Task Explicit_blank_export_is_rejected_before_pdf_allocation()
{
var current = new Mock<ICurrentUserService>();
current.SetupGet(x => x.UserId).Returns("owner");
await using var db = new JobTrackerContext(new DbContextOptionsBuilder<JobTrackerContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString()).Options, current.Object);
var variants = new CvVariantService(db, new CareerProfileService(db), new ThemedCvRenderer());
var settings = CvVariantSettingsJson.Deserialize("{\"sectionsExplicit\":true,\"includeProfileContact\":false,\"sections\":[]}");
var cv = await variants.CreateAsync("owner", "Blank", null, settings, default);
var user = new ApplicationUser { Id = "owner", FirstName = "Inherited name" };
var users = TestHostFactory.CreateUserManager(user);
users.Setup(x => x.GetUserAsync(It.IsAny<ClaimsPrincipal>())).ReturnsAsync(user);
var pdf = new Mock<ICvPdfExporter>(MockBehavior.Strict);
var controller = new CvVariantController(users.Object, variants, pdf.Object, Mock.Of<ISummarizerService>())
{ ControllerContext = new() { HttpContext = new DefaultHttpContext() } };
var result = Assert.IsType<BadRequestObjectResult>(await controller.ExportPdf(cv.Id, default, 1));
Assert.Equal("cv_empty_content", JsonSerializer.SerializeToElement(result.Value).GetProperty("code").GetString());
pdf.VerifyNoOtherCalls();
}
[Theory]
[InlineData(1, "owner", 409)]
[InlineData(0, "owner", 409)]