Proof-of-functionality#

In the CI + CD workflow, the concept of proof-of-functionality is used to determine if the build assets of a service are fit for three use cases.

For different services, different tests are considered to establish proof-of-functionality for different use-cases.

Service

Docs publish

GHCR publish

Staging deploy

Catalog

test-cat

test-cat

test-cat

Ingestion server

test-ing

test-ing

test-ing

API

test-api

test-api

test-api

Frontend

playwright

playwright

playwright

Documentation

build-docs

Rationales#

Catalog#

The tests for the catalog in test-cat are very comprehensive and rigorous, including extended test suites using the --extended flag. Passing these tests conclusively proves that the catalog works as intended.

Ingestion server#

The ingestion server integration test in test-ing invokes all the key functionality of the ingestion server. Passing these tests conclusively proves that the ingestion server works as intended.

API#

The API tests in test-api include both unit tests for the API and integration tests that explore the API’s functionality. These tests also include example tests wherein the API’s output is compared to known-good output. Passing these tests conclusively proves that the API works as intended.

Frontend#

The Playwright tests for the frontend in playwright include E2E tests, visual regression tests for the pages, and also tests for the Storybook stories. Passing these tests conclusively proves that each individual component, and also the frontend as a whole, looks and works as intended.