Restrict results-close rollback to players with suggestions
This commit is contained in:
@@ -236,6 +236,7 @@ public class AdminTests
|
||||
await admin.RegisterAsync("admin", admin: true);
|
||||
var player = factory.CreateClientWithCookies();
|
||||
await player.RegisterAsync("player");
|
||||
await player.CreateSuggestionAsync("Player game");
|
||||
|
||||
var open = await admin.PostAsJsonAsync("/api/admin/results", new { resultsOpen = true });
|
||||
open.EnsureSuccessStatusCode();
|
||||
@@ -263,6 +264,37 @@ public class AdminTests
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Admin_results_closing_sends_players_without_suggestions_to_suggest_phase()
|
||||
{
|
||||
await using var factory = new TestWebApplicationFactory();
|
||||
var admin = factory.CreateClientWithCookies();
|
||||
await admin.RegisterAsync("admin", admin: true);
|
||||
|
||||
var voter = factory.CreateClientWithCookies();
|
||||
await voter.RegisterAsync("voter");
|
||||
await voter.CreateSuggestionAsync("Voter game");
|
||||
|
||||
var open = await admin.PostAsJsonAsync("/api/admin/results", new { resultsOpen = true });
|
||||
open.EnsureSuccessStatusCode();
|
||||
|
||||
var lateJoiner = factory.CreateClientWithCookies();
|
||||
await lateJoiner.RegisterAsync("late");
|
||||
|
||||
var close = await admin.PostAsJsonAsync("/api/admin/results", new { resultsOpen = false });
|
||||
close.EnsureSuccessStatusCode();
|
||||
|
||||
await factory.WithDbContextAsync(async db =>
|
||||
{
|
||||
var voterPlayer = await db.Players.SingleAsync(p => p.Username == "voter");
|
||||
var latePlayer = await db.Players.SingleAsync(p => p.Username == "late");
|
||||
Assert.Equal(Phase.Vote, voterPlayer.CurrentPhase);
|
||||
Assert.Equal(Phase.Suggest, latePlayer.CurrentPhase);
|
||||
Assert.False(voterPlayer.VotesFinal);
|
||||
Assert.False(latePlayer.VotesFinal);
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Vote_status_lists_waiting_players()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user