Skip to content

Commit

Permalink
feat(site): add healthz page (#458)
Browse files Browse the repository at this point in the history
Summary:

This is a port of v1 healthz page to v2

Impact:

A simple way to check site health (requires no auth). Good smoke test
for e2e.
  • Loading branch information
G r e y committed Mar 16, 2022
1 parent 5a42e17 commit 27749ce
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
13 changes: 13 additions & 0 deletions site/e2e/pom/HealthzPage.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Locator, Page } from "@playwright/test"
import { BasePom } from "./BasePom"

export class HealthzPage extends BasePom {
constructor(baseURL: string | undefined, page: Page) {
super(baseURL, "/healthz", page)
}

getOk(): Locator {
const locator = this.page.locator("text=ok")
return locator
}
}
8 changes: 8 additions & 0 deletions site/e2e/tests/healthz.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { test } from "@playwright/test"
import { HealthzPage } from "../pom/HealthzPage"

test("Healthz is available without authentication", async ({ baseURL, page }) => {
const healthzPage = new HealthzPage(baseURL, page)
await page.goto(healthzPage.url, { waitUntil: "networkidle" })
await healthzPage.getOk().waitFor({ state: "visible" })
})
2 changes: 2 additions & 0 deletions site/src/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { ProjectsPage } from "./pages/projects"
import { ProjectPage } from "./pages/projects/[organization]/[project]"
import { CreateWorkspacePage } from "./pages/projects/[organization]/[project]/create"
import { WorkspacePage } from "./pages/workspaces/[workspace]"
import { HealthzPage } from "./pages/healthz"

export const App: React.FC = () => {
return (
Expand Down Expand Up @@ -45,6 +46,7 @@ export const App: React.FC = () => {
<Route index element={<IndexPage />} />

<Route path="login" element={<SignInPage />} />
<Route path="healthz" element={<HealthzPage />} />
<Route path="cli-auth" element={<CliAuthenticationPage />} />

<Route path="projects">
Expand Down
8 changes: 8 additions & 0 deletions site/src/pages/healthz.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import React from "react"

/**
* HealthzPage is a page that is available without authentication that is used
* for reporting whether or not the Dashboard is online. It should be
* accessible by humans and services.
*/
export const HealthzPage: React.FC = () => <div>ok</div>

0 comments on commit 27749ce

Please sign in to comment.