Skip to content

feat: Playwright E2E auth tests, Grafana datasource fix, pre-launch checklist#70

Merged
GRACENOBLE merged 3 commits into
mainfrom
observability-and-e2e
Jun 25, 2026
Merged

feat: Playwright E2E auth tests, Grafana datasource fix, pre-launch checklist#70
GRACENOBLE merged 3 commits into
mainfrom
observability-and-e2e

Conversation

@GRACENOBLE

@GRACENOBLE GRACENOBLE commented Jun 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Playwright E2E tests — 7 auth smoke tests covering the auth guard redirects (/dashboard and /settings/login) and login/register form rendering + validation. Wired into web CI with placeholder Firebase env vars (none of these tests touch Firebase).
  • Grafana datasource fix — added uid: prometheus to the datasource provisioning so the existing Backend Overview dashboard panels resolve correctly. Renamed prometheus.ymldatasources.yml to stop VS Code's YAML extension from applying the wrong Prometheus scrape-config schema.
  • Pre-launch checklist — new section in RUNBOOK.md with grouped, actionable checkboxes across configuration, infrastructure, Firebase, observability, and mobile before going live.

Test plan

  • Web CI passes (lint → unit tests → build → Playwright E2E)
  • cd web && pnpm test:e2e runs locally against a running dev server
  • cd backend && make docker-run, open Grafana at http://localhost:3001 — Backend Overview dashboard loads with live panels

Summary by CodeRabbit

  • New Features
    • Added end-to-end coverage for sign-in and registration flows, including redirects and validation states.
  • Tests
    • Integrated Playwright E2E tests into CI and added browser setup for automated test runs.
  • Documentation
    • Expanded the runbook with a pre-launch checklist covering readiness items across key areas.
  • Chores
    • Updated monitoring and test configuration settings to support the new test and deployment checks.

…ch checklist

- Add Playwright smoke tests covering auth guard redirects and form
  rendering; wired into web CI with placeholder Firebase env vars
- Fix Grafana datasource UID so provisioned dashboard panels resolve
- Rename datasources/prometheus.yml → datasources.yml to prevent VS Code
  YAML extension from applying the wrong Prometheus scrape-config schema
- Add pre-launch checklist section to RUNBOOK.md
@github-actions github-actions Bot added area: backend Go REST API area: web Next.js web app area: infra CI/CD, infrastructure, deployment, and DevOps type: chore Cleanup or maintenance tasks labels Jun 25, 2026
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@GRACENOBLE, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 54 minutes and 40 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65578be1-ee07-4935-a71a-1842dbd13860

📥 Commits

Reviewing files that changed from the base of the PR and between eda20c7 and 44a83e6.

📒 Files selected for processing (2)
  • web/e2e/auth.spec.ts
  • web/vitest.config.ts
📝 Walkthrough

Walkthrough

The PR adds Playwright end-to-end testing for the web app, wires those tests into the web CI workflow, adds a pre-launch checklist to RUNBOOK.md, and sets an explicit UID for the Grafana Prometheus datasource.

Changes

Web Playwright E2E

Layer / File(s) Summary
Playwright setup and CI run
web/package.json, web/playwright.config.ts, .github/workflows/web-ci.yml
Adds the Playwright test script and dependency, configures the local E2E runner, and installs and executes the E2E suite in the web CI job with runtime environment variables.
Auth route coverage
web/e2e/auth.spec.ts
Adds Playwright coverage for unauthenticated redirects, login form rendering and validation, and register form rendering and navigation links.

Runbook pre-launch checklist

Layer / File(s) Summary
Pre-launch checklist
RUNBOOK.md
Adds a table-of-contents entry and a pre-launch checklist section covering Configuration, Infrastructure, Firebase, Observability, and Mobile (Android).

Grafana Prometheus UID

Layer / File(s) Summary
Prometheus datasource uid
backend/grafana/provisioning/datasources/datasources.yml
Sets the Prometheus datasource uid to prometheus in provisioning.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I hopped through CI with a Playwright grin,
and checked the login gates from end to end within.
A checklist bloomed, neat and true,
while Prometheus got a tidy UID too.
Hop hop—tests and docs are in!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: Playwright E2E auth tests, a Grafana datasource fix, and the new pre-launch checklist.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch observability-and-e2e

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Vitest was picking up the Playwright spec file and failing because
@playwright/test's test.describe() is not compatible with Vitest.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/e2e/auth.spec.ts`:
- Around line 1-3: The Playwright spec is being picked up by Vitest discovery,
so isolate `auth.spec.ts` from `pnpm test` by adjusting test file matching.
Update the Playwright/Vitest configuration so `e2e/**` is excluded from Vitest,
or rename the spec to an e2e-specific pattern like `auth.e2e.ts` and configure
Playwright `testMatch` accordingly. Use the `test.describe`-based spec in
`web/e2e/auth.spec.ts` as the file to relocate from Vitest’s scope.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cf16a350-4342-416f-a50a-989a39e47678

📥 Commits

Reviewing files that changed from the base of the PR and between 3c0a856 and eda20c7.

⛔ Files ignored due to path filters (1)
  • web/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (6)
  • .github/workflows/web-ci.yml
  • RUNBOOK.md
  • backend/grafana/provisioning/datasources/datasources.yml
  • web/e2e/auth.spec.ts
  • web/package.json
  • web/playwright.config.ts

Comment thread web/e2e/auth.spec.ts
getByLabel('Password') was matching both 'Password' and 'Confirm password'
inputs due to Playwright's default partial matching.
@GRACENOBLE GRACENOBLE merged commit 4236737 into main Jun 25, 2026
4 checks passed
@GRACENOBLE GRACENOBLE deleted the observability-and-e2e branch June 25, 2026 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: backend Go REST API area: infra CI/CD, infrastructure, deployment, and DevOps area: web Next.js web app type: chore Cleanup or maintenance tasks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant