Update payroll cap to enhance staffing flexibility and adjust related documentation and tests
- Increased the `MonthlyPayrollCap` from 40,000 to 100,000, allowing for greater hiring capacity and subject assignments. - Updated relevant documentation to reflect the new payroll cap and its implications for staffing. - Adjusted tests to validate the new payroll cap and ensure proper functionality in staffing scenarios, including allocation and remaining payroll calculations. - Enhanced styling in the UI to accommodate the changes in management screens.
This commit is contained in:
@@ -26,9 +26,9 @@ public class StaffingApiTests(AppHostFixture fixture)
|
||||
|
||||
var staffing = await GetStaffingAsync(client, school.Id);
|
||||
|
||||
Assert.Equal(40_000f, staffing.Allocated);
|
||||
Assert.Equal(100_000f, staffing.Allocated);
|
||||
Assert.Equal(0f, staffing.Payroll);
|
||||
Assert.Equal(40_000f, staffing.Remaining);
|
||||
Assert.Equal(100_000f, staffing.Remaining);
|
||||
Assert.Equal(12, staffing.Applicants.Count);
|
||||
Assert.Empty(staffing.Staff);
|
||||
Assert.Contains(staffing.Uncovered, subject => subject.DefName == "Mathematics");
|
||||
@@ -121,14 +121,13 @@ public class StaffingApiTests(AppHostFixture fixture)
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Hire_PastTheCap_IsRejectedWithTheNumbers()
|
||||
public async Task Hire_IdlePool_FitsUnderTheCap()
|
||||
{
|
||||
using var client = fixture.App.CreateHttpClient("server");
|
||||
await SchoolApiTests.ResetAsync(client);
|
||||
var school = await SchoolApiTests.CreateAsync(client, "Штат предел", Start);
|
||||
|
||||
var staffing = await GetStaffingAsync(client, school.Id);
|
||||
ProblemResponse? problem = null;
|
||||
while (staffing.Applicants.Count > 0)
|
||||
{
|
||||
var applicant = staffing.Applicants[0];
|
||||
@@ -136,22 +135,15 @@ public class StaffingApiTests(AppHostFixture fixture)
|
||||
$"/api/schools/{school.Id}/staff/hire",
|
||||
new { personId = applicant.Id, position = "Teacher" },
|
||||
TestContext.Current.CancellationToken);
|
||||
if (response.StatusCode == HttpStatusCode.Conflict)
|
||||
{
|
||||
problem = await response.Content.ReadFromJsonAsync<ProblemResponse>(TestContext.Current.CancellationToken);
|
||||
break;
|
||||
}
|
||||
|
||||
response.EnsureSuccessStatusCode();
|
||||
staffing = await response.Content.ReadFromJsonAsync<StaffingResponse>(TestContext.Current.CancellationToken);
|
||||
Assert.NotNull(staffing);
|
||||
}
|
||||
|
||||
Assert.Equal("payroll-exceeded", problem?.Code);
|
||||
Assert.Equal(40_000f, problem?.Allocated);
|
||||
Assert.True(problem?.Payroll <= 40_000f);
|
||||
Assert.True(problem?.Attempted > 40_000f);
|
||||
Assert.True(staffing.Staff.Count >= 1);
|
||||
Assert.Equal(100_000f, staffing.Allocated);
|
||||
Assert.True(staffing.Payroll > 0f);
|
||||
Assert.True(staffing.Payroll <= staffing.Allocated);
|
||||
Assert.Equal(12, staffing.Staff.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user