Require suggestion before entering vote phase
This commit is contained in:
@@ -91,6 +91,7 @@ public class StateTests
|
||||
await using var factory = new TestWebApplicationFactory();
|
||||
var client = factory.CreateClientWithCookies();
|
||||
await client.RegisterAsync("advance");
|
||||
await client.CreateSuggestionAsync("Advance game");
|
||||
|
||||
await factory.WithDbContextAsync(async db =>
|
||||
{
|
||||
@@ -121,6 +122,7 @@ public class StateTests
|
||||
await using var factory = new TestWebApplicationFactory();
|
||||
var admin = factory.CreateClientWithCookies();
|
||||
await admin.RegisterAsync("admin", admin: true);
|
||||
await admin.CreateSuggestionAsync("Admin game");
|
||||
|
||||
await admin.PostAsJsonAsync("/api/me/phase/next", new { }); // Vote
|
||||
await factory.WithDbContextAsync(async db =>
|
||||
@@ -143,6 +145,7 @@ public class StateTests
|
||||
await using var factory = new TestWebApplicationFactory();
|
||||
var client = factory.CreateClientWithCookies();
|
||||
await client.RegisterAsync("player");
|
||||
await client.CreateSuggestionAsync("Player game");
|
||||
|
||||
var toVote = await client.PostAsync("/api/me/phase/next", JsonContent.Create(new { }));
|
||||
toVote.EnsureSuccessStatusCode();
|
||||
@@ -152,6 +155,20 @@ public class StateTests
|
||||
Assert.Equal(HttpStatusCode.BadRequest, toResults.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Phase_next_from_suggest_requires_at_least_one_suggestion()
|
||||
{
|
||||
await using var factory = new TestWebApplicationFactory();
|
||||
var client = factory.CreateClientWithCookies();
|
||||
await client.RegisterAsync("nosuggest");
|
||||
|
||||
var response = await client.PostAsJsonAsync("/api/me/phase/next", new { });
|
||||
|
||||
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||
var me = await client.GetFromJsonAsync<JsonElement>("/api/me");
|
||||
Assert.Equal(nameof(Phase.Suggest), me.GetProperty("currentPhase").GetString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Admin_opening_results_moves_players_to_results_phase()
|
||||
{
|
||||
@@ -199,6 +216,7 @@ public class StateTests
|
||||
|
||||
var admin = factory.CreateClientWithCookies();
|
||||
await admin.RegisterAsync("admin", admin: true);
|
||||
await admin.CreateSuggestionAsync("Admin phase game");
|
||||
await admin.PostAsJsonAsync("/api/me/phase/next", new { }); // to Vote
|
||||
var back = await admin.PostAsJsonAsync("/api/me/phase/prev", new { });
|
||||
back.EnsureSuccessStatusCode();
|
||||
|
||||
Reference in New Issue
Block a user