Skip to content

Commit b434212

Browse files
committed
ECER-5293: Automated test for icra eligibility submission
1 parent 5b787dc commit b434212

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

src/ECER.Tests/Integration/RegistryApi/IcraTests.cs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,52 @@ public async Task SaveDraftIcraEligibility_AndGetById()
8080
eligibilities.First(e => e.Id == savedEligibility.Id).EmploymentReferences.Count().ShouldBe(2);
8181
}
8282

83+
[Fact]
84+
public async Task SubmitIcraEligibility_Succeeds()
85+
{
86+
var eligibility = new ICRAEligibility
87+
{
88+
ApplicantId = this.Fixture.AuthenticatedBcscUser.Id.ToString(),
89+
Status = ICRAStatus.Draft,
90+
EmploymentReferences = new []
91+
{
92+
new EmploymentReference { FirstName = "John", LastName = "Doe", EmailAddress = "[email protected]" }
93+
}
94+
};
95+
96+
var saveResponse = await Host.Scenario(_ =>
97+
{
98+
_.WithExistingUser(this.Fixture.AuthenticatedBcscUserIdentity, this.Fixture.AuthenticatedBcscUser);
99+
_.Put.Json(new SaveDraftICRAEligibilityRequest(eligibility)).ToUrl($"/api/icra/");
100+
_.StatusCodeShouldBeOk();
101+
});
102+
103+
var saved = (await saveResponse.ReadAsJsonAsync<DraftICRAEligibilityResponse>()).ShouldNotBeNull().Eligibility;
104+
105+
var submitResponse = await Host.Scenario(_ =>
106+
{
107+
_.WithExistingUser(this.Fixture.AuthenticatedBcscUserIdentity, this.Fixture.AuthenticatedBcscUser);
108+
_.Post.Json(new ICRAEligibilitySubmissionRequest(saved.Id!)).ToUrl($"/api/icra");
109+
_.StatusCodeShouldBeOk();
110+
});
111+
112+
var submitted = (await submitResponse.ReadAsJsonAsync<SubmitICRAEligibilityResponse>()).ShouldNotBeNull().Eligibility;
113+
submitted.ShouldNotBeNull();
114+
submitted.Id.ShouldBe(saved.Id);
115+
submitted.Status.ShouldBe(ICRAStatus.Submitted);
116+
}
117+
118+
[Fact]
119+
public async Task SubmitIcraEligibility_BadId_ReturnsBadRequest()
120+
{
121+
var response = await Host.Scenario(_ =>
122+
{
123+
_.WithExistingUser(this.Fixture.AuthenticatedBcscUserIdentity, this.Fixture.AuthenticatedBcscUser);
124+
_.Post.Json(new ICRAEligibilitySubmissionRequest("not-a-guid")).ToUrl($"/api/icra");
125+
_.StatusCodeShouldBe(HttpStatusCode.BadRequest);
126+
});
127+
}
128+
83129
[Fact]
84130
public async Task SaveDraftIcraEligibility_WithMismatchedIds_ReturnsBadRequest()
85131
{

0 commit comments

Comments
 (0)