fix(career): preserve evidence listing on SQLite
This commit is contained in:
@@ -4,6 +4,7 @@ using JobTrackerApi.Models;
|
||||
using JobTrackerApi.Services;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Data.Sqlite;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
@@ -33,6 +34,28 @@ public sealed class CareerEvidenceControllerTests
|
||||
Assert.Empty(await db.CareerEvidence.Where(x => x.OwnerUserId == "owner-1").ToListAsync());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task List_orders_owned_evidence_by_actual_timestamp_with_sqlite()
|
||||
{
|
||||
await using var connection = new SqliteConnection("Data Source=:memory:");
|
||||
await connection.OpenAsync();
|
||||
var current = new Mock<ICurrentUserService>();
|
||||
current.SetupGet(x => x.UserId).Returns("owner-1");
|
||||
await using var db = new JobTrackerContext(new DbContextOptionsBuilder<JobTrackerContext>().UseSqlite(connection).Options, current.Object);
|
||||
await db.Database.EnsureCreatedAsync();
|
||||
db.CareerEvidence.AddRange(
|
||||
new CareerEvidence { OwnerUserId = "owner-1", Title = "Older local clock", Statement = "Owned earlier fact", UpdatedAtUtc = DateTimeOffset.Parse("2026-10-11T22:00:00+02:00") },
|
||||
new CareerEvidence { OwnerUserId = "owner-1", Title = "Newer instant", Statement = "Owned later fact", UpdatedAtUtc = DateTimeOffset.Parse("2026-10-11T20:30:00+00:00") },
|
||||
new CareerEvidence { OwnerUserId = "owner-2", Title = "Private future fact", Statement = "Other tenant", UpdatedAtUtc = DateTimeOffset.Parse("2026-10-12T12:00:00+00:00") });
|
||||
await db.SaveChangesAsync();
|
||||
var controller = new CareerEvidenceController(db, Users("owner-1").Object);
|
||||
|
||||
var listed = Assert.IsAssignableFrom<IEnumerable<CareerEvidenceController.EvidenceDto>>(Assert.IsType<OkObjectResult>((await controller.List(default)).Result).Value).ToList();
|
||||
|
||||
Assert.Equal(["Newer instant", "Older local clock"], listed.Select(x => x.Title));
|
||||
Assert.Equal(3, await db.CareerEvidence.IgnoreQueryFilters().CountAsync());
|
||||
}
|
||||
|
||||
private static Mock<UserManager<ApplicationUser>> Users(string id)
|
||||
{
|
||||
var store = new Mock<IUserStore<ApplicationUser>>();
|
||||
|
||||
Reference in New Issue
Block a user