@@ -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