Rebuild CCS case workflow
This commit is contained in:
@@ -8,6 +8,41 @@ namespace QuestionsApi.Tests;
|
||||
|
||||
public sealed class CcsCaseTests
|
||||
{
|
||||
[Fact]
|
||||
public void NewCcsAttemptsAreTimedOnly()
|
||||
{
|
||||
Assert.Null(CcsCaseValidator.ValidateCreate(new CreateCcsAttemptRequest()));
|
||||
Assert.Equal("new CCS attempts must be timed",
|
||||
CcsCaseValidator.ValidateCreate(new CreateCcsAttemptRequest { Mode = CcsAttemptModes.Practice }));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CcsBatchCommandsAreBoundedAndHomogeneous()
|
||||
{
|
||||
var valid = new CcsBatchCommandRequest
|
||||
{
|
||||
CommandId = "batch-1",
|
||||
Commands =
|
||||
[
|
||||
new() { Type = "exam", Code = "general" },
|
||||
new() { Type = "exam", Code = "cardiac" }
|
||||
]
|
||||
};
|
||||
Assert.Null(CcsCaseValidator.ValidateBatch(valid));
|
||||
valid.Commands.Add(new() { Type = "order", Code = "bmp" });
|
||||
Assert.Contains("cannot be mixed", CcsCaseValidator.ValidateBatch(valid), StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CcsTimingReservesTwoMinutesWithoutExtendingTheHardDeadline()
|
||||
{
|
||||
Assert.Equal(18, CcsStore.ActivePhaseMinutes(20));
|
||||
Assert.Equal(8, CcsStore.ActivePhaseMinutes(10));
|
||||
var now = new DateTime(2026, 7, 23, 12, 0, 0, DateTimeKind.Utc);
|
||||
Assert.Equal(now.AddMinutes(2), CcsStore.FinalOrdersDeadline(now, now.AddMinutes(5)));
|
||||
Assert.Equal(now.AddMinutes(1), CcsStore.FinalOrdersDeadline(now, now.AddMinutes(1)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CcsHistoryCursorRoundTripsTimestampAndId()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user