Exclude sample exam simulations from the dashboard's readiness score
The SUPER-role "preview results" QA tooling seeds a completed ExamSimulation with scripted (not real) answers, flagged IsSample. The dashboard's readiness lookup picked whichever completed simulation was most recent regardless of that flag, so running the QA preview on an account could override its real Exam Readiness card with a synthetic pass probability. Recent-activity/weekly-activity queries got the same exclusion since they read from the same collection for the same reason. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
@@ -199,4 +199,35 @@ public sealed class DashboardTests
|
||||
{
|
||||
Assert.Equal(expected, DashboardStore.ReadinessLabel(passProbability));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SelectLatestReadinessScoreSkipsSampleSimulationsEvenWhenMostRecent()
|
||||
{
|
||||
var today = new DateTime(2026, 7, 25, 0, 0, 0, DateTimeKind.Utc);
|
||||
var simulations = new[]
|
||||
{
|
||||
CompletedSimulation(isSample: true, completedUtc: today, passProbability: 0.98),
|
||||
CompletedSimulation(isSample: false, completedUtc: today.AddDays(-3), passProbability: 0.12)
|
||||
};
|
||||
|
||||
var score = DashboardStore.SelectLatestReadinessScore(simulations);
|
||||
|
||||
Assert.NotNull(score);
|
||||
Assert.Equal(0.12, score.PassProbability);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SelectLatestReadinessScoreReturnsNullWhenOnlySamplesExist()
|
||||
{
|
||||
var simulations = new[] { CompletedSimulation(isSample: true, completedUtc: DateTime.UtcNow, passProbability: 0.98) };
|
||||
|
||||
Assert.Null(DashboardStore.SelectLatestReadinessScore(simulations));
|
||||
}
|
||||
|
||||
private static ExamSimulation CompletedSimulation(bool isSample, DateTime completedUtc, double passProbability) => new()
|
||||
{
|
||||
IsSample = isSample,
|
||||
CompletedUtc = completedUtc,
|
||||
Score = new ExamSimulationScore { PassProbability = passProbability }
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user