fix(cv): make initial revision atomic
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using JobTrackerApi.Data;
|
||||
using JobTrackerApi.Models;
|
||||
using JobTrackerApi.Services;
|
||||
using Microsoft.Data.Sqlite;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
@@ -366,6 +367,26 @@ public sealed class CvBuilderTests
|
||||
Assert.True(versions[0].IsCurrent);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Create_persists_variant_and_initial_history_on_a_relational_store()
|
||||
{
|
||||
await using var connection = new SqliteConnection("Data Source=:memory:");
|
||||
await connection.OpenAsync();
|
||||
var options = new DbContextOptionsBuilder<JobTrackerContext>().UseSqlite(connection).Options;
|
||||
var currentUser = new Mock<ICurrentUserService>();
|
||||
currentUser.SetupGet(service => service.UserId).Returns("user-1");
|
||||
await using var db = new JobTrackerContext(options, currentUser.Object);
|
||||
await db.Database.EnsureCreatedAsync();
|
||||
var service = new CvVariantService(db, new CareerProfileService(db), new ThemedCvRenderer());
|
||||
|
||||
var created = await service.CreateAsync("user-1", "Atomic CV", null, new CvVariantSettings(), default);
|
||||
|
||||
Assert.Single(await db.CvVariants.IgnoreQueryFilters().Where(item => item.Id == created.Id).ToListAsync());
|
||||
var history = await db.CvVariantVersions.IgnoreQueryFilters().Where(item => item.CvVariantId == created.Id).ToListAsync();
|
||||
Assert.Single(history);
|
||||
Assert.Equal(1, history[0].Version);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Restore_reapplies_old_settings_as_a_new_version()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user