diff --git a/src/main/java/org/ilgcc/app/data/importer/FakeProviderDataImporter.java b/src/main/java/org/ilgcc/app/data/importer/FakeProviderDataImporter.java index 05826f116..d261ad15f 100644 --- a/src/main/java/org/ilgcc/app/data/importer/FakeProviderDataImporter.java +++ b/src/main/java/org/ilgcc/app/data/importer/FakeProviderDataImporter.java @@ -15,7 +15,7 @@ */ @Slf4j @Component -@Profile("demo") +@Profile({"dev", "demo", "test"}) public class FakeProviderDataImporter implements InitializingBean { @Autowired private ProviderRepository providerRepository; diff --git a/src/main/java/org/ilgcc/app/submission/actions/ValidateProviderNumber.java b/src/main/java/org/ilgcc/app/submission/actions/ValidateProviderNumber.java index d8d9f3591..fe17371e9 100644 --- a/src/main/java/org/ilgcc/app/submission/actions/ValidateProviderNumber.java +++ b/src/main/java/org/ilgcc/app/submission/actions/ValidateProviderNumber.java @@ -10,7 +10,6 @@ import java.util.Map; import org.ilgcc.app.data.ProviderRepositoryService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Component; @@ -24,9 +23,6 @@ public class ValidateProviderNumber implements Action { @Autowired ProviderRepositoryService providerRepositoryService; - @Value("${il-gcc.validate-provider-id}") - boolean validateProviderId; - private final String PROVIDER_NUMBER = "providerResponseProviderNumber"; @Override @@ -34,20 +30,18 @@ public Map> runValidation(FormSubmission formSubmission, Su Map> errorMessages = new HashMap<>(); String inputValue = (String) formSubmission.getFormData().get(PROVIDER_NUMBER); - if (validateProviderId) { - Locale locale = LocaleContextHolder.getLocale(); - - if (inputValue == null || inputValue.isBlank()) { - errorMessages.put(PROVIDER_NUMBER, - List.of(messageSource.getMessage("errors.provide-provider-number", null, locale))); - } else if (inputValue.length() < 8 || inputValue.length() > 15) { - errorMessages.put(PROVIDER_NUMBER, - List.of(messageSource.getMessage("errors.provide-provider-number-length", null, locale))); - } else if (!providerRepositoryService.isProviderIdValid(inputValue)) { - errorMessages.put(PROVIDER_NUMBER, - List.of(messageSource.getMessage("provider-response-provider-number.error.invalid-number", null, - locale))); - } + Locale locale = LocaleContextHolder.getLocale(); + + if (inputValue == null || inputValue.isBlank()) { + errorMessages.put(PROVIDER_NUMBER, + List.of(messageSource.getMessage("errors.provide-provider-number", null, locale))); + } else if (inputValue.length() < 8 || inputValue.length() > 15) { + errorMessages.put(PROVIDER_NUMBER, + List.of(messageSource.getMessage("errors.provide-provider-number-length", null, locale))); + } else if (!providerRepositoryService.isProviderIdValid(inputValue)) { + errorMessages.put(PROVIDER_NUMBER, + List.of(messageSource.getMessage("provider-response-provider-number.error.invalid-number", null, + locale))); } return errorMessages; diff --git a/src/main/resources/application-dev.yaml b/src/main/resources/application-dev.yaml index 4aafcbb51..f6c21ba18 100644 --- a/src/main/resources/application-dev.yaml +++ b/src/main/resources/application-dev.yaml @@ -25,6 +25,5 @@ org: jobs: retry-back-off-time-seed: 1 il-gcc: - validate-provider-id: ${VALIDATE_PROVIDER_ID_FLAG:false} dts: processing-org: '4c-ccap-apps-testing' \ No newline at end of file diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index c28375c10..57c9e16ff 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -121,7 +121,6 @@ org: enabled: ${JOBRUNR_DASHBOARD_ENABLED:false} il-gcc: generate-short-links: ${GENERATE_SHORT_LINKS_FLAG:false} - validate-provider-id: ${VALIDATE_PROVIDER_ID_FLAG:true} show-no-provider-flow: ${SHOW_NO_PROVIDER_FLOW:true} allow-provider-registration-flow: ${ALLOW_PROVIDER_REGISTRATION_FLOW:false} dts: diff --git a/src/test/java/org/ilgcc/app/journeys/ProviderresponseFlowJourneyTest.java b/src/test/java/org/ilgcc/app/journeys/ProviderresponseFlowJourneyTest.java index bf6416282..07e127e72 100644 --- a/src/test/java/org/ilgcc/app/journeys/ProviderresponseFlowJourneyTest.java +++ b/src/test/java/org/ilgcc/app/journeys/ProviderresponseFlowJourneyTest.java @@ -40,7 +40,7 @@ void ProviderresponseJourneyTest_validLink_No_Agreement_To_Care(){ // provider-number assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-provider-number.title")); - testPage.enter("providerResponseProviderNumber", "123456789012345"); + testPage.enter("providerResponseProviderNumber", "12345678901"); testPage.clickContinue(); // confirmation-code @@ -92,7 +92,7 @@ void ProviderresponseJourneyTest_validLink() { // provider-number assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-provider-number.title")); - testPage.enter("providerResponseProviderNumber", "123456789012345"); + testPage.enter("providerResponseProviderNumber", "12345678901"); testPage.clickContinue(); // confirmation-code @@ -180,7 +180,7 @@ void ProviderresponseJourneyTest_noLink() { // provider-number assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-provider-number.title")); - testPage.enter("providerResponseProviderNumber", "123456789012345"); + testPage.enter("providerResponseProviderNumber", "12345678901"); testPage.clickContinue(); // application-id @@ -267,7 +267,7 @@ void ProviderresponseJourneyTest_noLink_invalidConfirmationCode() { // provider-number assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-provider-number.title")); - testPage.enter("providerResponseProviderNumber", "123456789012345"); + testPage.enter("providerResponseProviderNumber", "12345678901"); testPage.clickContinue(); // application-id @@ -313,7 +313,7 @@ void ProviderresponseJourneyTest_noLink_expiredConfirmationCode() { // provider-number assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-provider-number.title")); - testPage.enter("providerResponseProviderNumber", "123456789012345"); + testPage.enter("providerResponseProviderNumber", "12345678901"); testPage.clickContinue(); // application-id @@ -358,7 +358,7 @@ void ProviderresponseJourneyTest_noLink_alreadyResponded() { // provider-number assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-provider-number.title")); - testPage.enter("providerResponseProviderNumber", "123456789012345"); + testPage.enter("providerResponseProviderNumber", "12345678901"); testPage.clickContinue(); // application-id @@ -371,4 +371,79 @@ void ProviderresponseJourneyTest_noLink_alreadyResponded() { assertThat(testPage.getHeader()).isEqualTo( getEnMessageWithParams("provider-response-submit-start.responded.header", new Object[]{"Dev Provider"})); } + + + @Test + void ProviderresponseJourneyTest_ProviderNumberValidation() { + + driver.navigate().to("http://localhost:%s/providerresponse/submit".formatted(localServerPort)); + + // submit-start when application is still active + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-submit-start.title")); + testPage.clickButton(getEnMessage("provider-response-submit-start.active.button")); + + // provider-number + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("provider-response-provider-number.title")); + testPage.enter("providerResponseProviderNumber", "12345678903"); + testPage.clickContinue(); + + // Errors + // Status = R + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("provider-response-provider-number.error.invalid-number"))).isTrue(); + + // Status = D + testPage.enter("providerResponseProviderNumber", "12345678904"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("provider-response-provider-number.error.invalid-number"))).isTrue(); + + // Status = W + testPage.enter("providerResponseProviderNumber", "12345678905"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("provider-response-provider-number.error.invalid-number"))).isTrue(); + + // Status = C + testPage.enter("providerResponseProviderNumber", "12345678906"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("provider-response-provider-number.error.invalid-number"))).isTrue(); + + // Status = A, 4 years old + testPage.enter("providerResponseProviderNumber", "12345678907"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("provider-response-provider-number.error.invalid-number"))).isTrue(); + + // Status = P, 5 years old + testPage.enter("providerResponseProviderNumber", "12345678908"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("provider-response-provider-number.error.invalid-number"))).isTrue(); + + // Doesn't exist at all + testPage.enter("providerResponseProviderNumber", "1234567891234"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("provider-response-provider-number.error.invalid-number"))).isTrue(); + + // Too short + testPage.enter("providerResponseProviderNumber", "12345"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("errors.provide-provider-number-length"))).isTrue(); + + // Too Long + testPage.enter("providerResponseProviderNumber", "12345123451234512345"); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("errors.provide-provider-number-length"))).isTrue(); + + // Nothing + testPage.enter("providerResponseProviderNumber", " "); + testPage.clickContinue(); + assertThat(testPage.getTitle()).isEqualTo(getEnMessage("errors.general-title")); + assertThat(testPage.hasErrorText(getEnMessage("errors.provide-provider-number"))).isTrue(); + } } diff --git a/src/test/resources/application-test.yaml b/src/test/resources/application-test.yaml index 64fedc041..21ea64cce 100644 --- a/src/test/resources/application-test.yaml +++ b/src/test/resources/application-test.yaml @@ -52,7 +52,6 @@ org: dashboard: enabled: false il-gcc: - validate-provider-id: false dts: url: ${DOCUMENT_TRANSFER_SERVICE_URL} consumer-id: ${DOCUMENT_TRANSFER_SERVICE_CONSUMER_ID}