diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 5fd9d4cb6..e6d8e0f2b 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -24,7 +24,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up ChromeDriver - uses: nanasess/setup-chromedriver@v2.2.1 + uses: nanasess/setup-chromedriver@v2.2.2 - name: Set up JDK uses: actions/setup-java@v4.0.0 with: @@ -37,7 +37,7 @@ jobs: id: test run: ./gradlew clean test --stacktrace - name: Cache Gradle packages - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.gradle/caches @@ -45,13 +45,47 @@ jobs: key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - - name: Announce failures on Slack - if: ${{ steps.test.conclusion == 'failure' }} - uses: ravsamhq/notify-slack-action@v2 - with: - status: ${{ job.status }} + - name: Cleanup Gradle Cache + run: | + rm -f ~/.gradle/caches/modules-2/modules-2.lock + rm -f ~/.gradle/caches/modules-2/gc.properties + accessibility-test: + name: Run accessibility tests + runs-on: ubuntu-latest + permissions: + actions: read + services: + postgres: + image: postgres env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + POSTGRES_USER: il-gcc-test + POSTGRES_PASSWORD: postgres + POSTGRES_DB: il-gcc-test + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + ports: + - 5432:5432 + steps: + - uses: actions/checkout@v4 + - name: Set up ChromeDriver + uses: nanasess/setup-chromedriver@v2.2.2 + - name: Set up JDK + uses: actions/setup-java@v4.0.0 + with: + distribution: 'adopt' + java-version: '17' + - name: Cache Gradle packages + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Test with Gradle + run: ./gradlew accessibilityTest - name: Cleanup Gradle Cache run: | rm -f ~/.gradle/caches/modules-2/modules-2.lock diff --git a/build.gradle b/build.gradle index 67c1d35cb..374870ef6 100644 --- a/build.gradle +++ b/build.gradle @@ -79,6 +79,11 @@ dependencies { testImplementation 'org.apache.httpcomponents.client5:httpclient5:5.3' testImplementation 'io.github.bonigarcia:webdrivermanager:5.6.4' testImplementation 'com.h2database:h2:2.1.214' + testImplementation 'com.deque.html.axe-core:selenium:4.8.2' + testImplementation 'org.projectlombok:lombok:1.18.30' + + testAnnotationProcessor 'org.projectlombok:lombok' + testCompileOnly 'org.projectlombok:lombok' runtimeOnly 'org.postgresql:postgresql:42.6.0' } @@ -159,6 +164,13 @@ test { } } +tasks.register("accessibilityTest", Test) { + Test task -> + task.useJUnitPlatform { + JUnitPlatformOptions options -> + options.includeTags 'a11y' + } +} tasks.withType(Test).configureEach { environment("SENTRY_DSN", "") diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index 84eea0639..a5a28f02f 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -30,6 +30,7 @@ general.eligibility-table.row-4.income=$6,008 general.eligibility-table.row-5.family=6 people general.eligibility-table.row-5.income=$6,973 general.button.continue=Continue +general.to=to general.week.Monday=Monday general.week.Tuesday=Tuesday diff --git a/src/main/resources/templates/fragments/inputError.html b/src/main/resources/templates/fragments/inputError.html new file mode 100644 index 000000000..b21dea38b --- /dev/null +++ b/src/main/resources/templates/fragments/inputError.html @@ -0,0 +1,11 @@ +

+ + + +
+
+

\ No newline at end of file diff --git a/src/main/resources/templates/fragments/inputs/timeRange.html b/src/main/resources/templates/fragments/inputs/timeRange.html index 0f923f110..ee5634034 100644 --- a/src/main/resources/templates/fragments/inputs/timeRange.html +++ b/src/main/resources/templates/fragments/inputs/timeRange.html @@ -10,16 +10,14 @@ (#arrays.length(errorMessages.get(inputName)) > 0) }" th:assert="${!#strings.isEmpty(startInputName)},${!#strings.isEmpty(endInputName)}, ${hasLabel || hasAriaLabel}">
- [[${label}]]
-

+
-