diff --git a/src/HavingProblemsPage/HavingProblemsPage.ts b/src/HavingProblemsPage/HavingProblemsPage.ts new file mode 100644 index 000000000..8e54801dd --- /dev/null +++ b/src/HavingProblemsPage/HavingProblemsPage.ts @@ -0,0 +1,14 @@ +import { StatusCodes } from 'http-status-codes' +import { html, plainText } from '../html.js' +import { PageResponse } from '../response.js' + +export const createHavingProblemsPage = (): PageResponse => + PageResponse({ + status: StatusCodes.SERVICE_UNAVAILABLE, + title: plainText`Sorry, we’re having problems`, + main: html` +

Sorry, we’re having problems

+ +

Please try again later.

+ `, + }) diff --git a/src/HavingProblemsPage/index.ts b/src/HavingProblemsPage/index.ts new file mode 100644 index 000000000..da18e00ee --- /dev/null +++ b/src/HavingProblemsPage/index.ts @@ -0,0 +1,5 @@ +import { Effect } from 'effect' +import type { PageResponse } from '../response.js' +import { createHavingProblemsPage } from './HavingProblemsPage.js' + +export const HavingProblemsPage: Effect.Effect = Effect.sync(createHavingProblemsPage) diff --git a/src/http-error.ts b/src/http-error.ts index 15b9cbc07..bcabd764d 100644 --- a/src/http-error.ts +++ b/src/http-error.ts @@ -5,6 +5,7 @@ import { Status } from 'hyper-ts' import * as RM from 'hyper-ts/lib/ReaderMiddleware.js' import { match } from 'ts-pattern' import { Locale } from './Context.js' +import { HavingProblemsPage } from './HavingProblemsPage/index.js' import { html, plainText, sendHtml } from './html.js' import { DefaultLocale } from './locales/index.js' import { templatePage } from './page.js' @@ -66,15 +67,7 @@ function problemsPage(user?: User) { export const pageNotFound = Effect.runSync(Effect.provideService(PageNotFound, Locale, DefaultLocale)) -export const havingProblemsPage = PageResponse({ - status: Status.ServiceUnavailable, - title: plainText`Sorry, we’re having problems`, - main: html` -

Sorry, we’re having problems

- -

Please try again later.

- `, -}) +export const havingProblemsPage = Effect.runSync(HavingProblemsPage) export const noPermissionPage = PageResponse({ status: Status.Forbidden, diff --git a/visual-regression/HavingProblemsPage/HavingProblemsPage.spec.ts b/visual-regression/HavingProblemsPage/HavingProblemsPage.spec.ts new file mode 100644 index 000000000..d70b5ad3b --- /dev/null +++ b/visual-regression/HavingProblemsPage/HavingProblemsPage.spec.ts @@ -0,0 +1,8 @@ +import { createHavingProblemsPage } from '../../src/HavingProblemsPage/HavingProblemsPage.js' +import { expect, test } from '../base.js' + +test('content looks right', async ({ showPage }) => { + const content = await showPage(createHavingProblemsPage()) + + await expect(content).toHaveScreenshot() +}) diff --git a/visual-regression/http-errors.spec.ts b/visual-regression/http-errors.spec.ts index 60f7f60ce..e251ffd2d 100644 --- a/visual-regression/http-errors.spec.ts +++ b/visual-regression/http-errors.spec.ts @@ -1,12 +1,6 @@ -import { havingProblemsPage, noPermissionPage } from '../src/http-error.js' +import { noPermissionPage } from '../src/http-error.js' import { expect, test } from './base.js' -test('having-problems page content looks right', async ({ showPage }) => { - const content = await showPage(havingProblemsPage) - - await expect(content).toHaveScreenshot() -}) - test('no-permission page content looks right', async ({ showPage }) => { const content = await showPage(noPermissionPage) diff --git a/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-Visual-Regression-linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-Visual-Regression-linux.png new file mode 100644 index 000000000..69f46e2cf --- /dev/null +++ b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-Visual-Regression-linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2983eba98093a5b0fe97f045f26d2cfba057217c56821ff3b6ea9798c4d7880 +size 11202 diff --git a/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-Visual-Regression-no-JavaScript--linux.png new file mode 100644 index 000000000..69f46e2cf --- /dev/null +++ b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-Visual-Regression-no-JavaScript--linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2983eba98093a5b0fe97f045f26d2cfba057217c56821ff3b6ea9798c4d7880 +size 11202 diff --git a/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-linux.png new file mode 100644 index 000000000..670f06d10 --- /dev/null +++ b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f425fa3c10656812757486aefe13794ef79c8472bf6cd63dff5581110212e334 +size 9963 diff --git a/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png new file mode 100644 index 000000000..670f06d10 --- /dev/null +++ b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f425fa3c10656812757486aefe13794ef79c8472bf6cd63dff5581110212e334 +size 9963 diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Firefox-Visual-Regression-linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Firefox-Visual-Regression-linux.png similarity index 100% rename from visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Firefox-Visual-Regression-linux.png rename to visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Firefox-Visual-Regression-linux.png diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Firefox-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Firefox-Visual-Regression-no-JavaScript--linux.png similarity index 100% rename from visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Firefox-Visual-Regression-no-JavaScript--linux.png rename to visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Desktop-Firefox-Visual-Regression-no-JavaScript--linux.png diff --git a/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-linux.png new file mode 100644 index 000000000..643fb5a2b --- /dev/null +++ b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9c56fec49d750c10faa59bcf1eb91181800099306c1884c7535e8f05ccd2fd3 +size 7156 diff --git a/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png new file mode 100644 index 000000000..643fb5a2b --- /dev/null +++ b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9c56fec49d750c10faa59bcf1eb91181800099306c1884c7535e8f05ccd2fd3 +size 7156 diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-iPhone-11-Visual-Regression-linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-iPhone-11-Visual-Regression-linux.png similarity index 100% rename from visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-iPhone-11-Visual-Regression-linux.png rename to visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-iPhone-11-Visual-Regression-linux.png diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-iPhone-11-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-iPhone-11-Visual-Regression-no-JavaScript--linux.png similarity index 100% rename from visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-iPhone-11-Visual-Regression-no-JavaScript--linux.png rename to visual-regression/snapshots/HavingProblemsPage/HavingProblemsPage.spec.ts-snapshots/content-looks-right-1-iPhone-11-Visual-Regression-no-JavaScript--linux.png diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-Visual-Regression-linux.png b/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-Visual-Regression-linux.png deleted file mode 100644 index 5751a53e2..000000000 --- a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-Visual-Regression-linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f29e3351406f8d607aeba44fd9e93a833f29b906755f8b4a4bf9ca3bbf2f0a4 -size 12417 diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-Visual-Regression-no-JavaScript--linux.png deleted file mode 100644 index 5751a53e2..000000000 --- a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-Visual-Regression-no-JavaScript--linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f29e3351406f8d607aeba44fd9e93a833f29b906755f8b4a4bf9ca3bbf2f0a4 -size 12417 diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-linux.png b/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-linux.png deleted file mode 100644 index a6238ff13..000000000 --- a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:833653a2a0e7b5ef6079c61847f3d47b81c6dfb6ea8c7ef31b48f08d28889236 -size 11901 diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png deleted file mode 100644 index a6238ff13..000000000 --- a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Desktop-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:833653a2a0e7b5ef6079c61847f3d47b81c6dfb6ea8c7ef31b48f08d28889236 -size 11901 diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-linux.png b/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-linux.png deleted file mode 100644 index 4d31f5245..000000000 --- a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81358319d8a8c2f68a96e12041abacc7d116df4320fa2dd809fec542c180e28c -size 8640 diff --git a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png b/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png deleted file mode 100644 index 4d31f5245..000000000 --- a/visual-regression/snapshots/http-errors.spec.ts-snapshots/having-problems-page-content-looks-right-1-Mobile-Chrome-high-contrast-Visual-Regression-no-JavaScript--linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81358319d8a8c2f68a96e12041abacc7d116df4320fa2dd809fec542c180e28c -size 8640