Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Add dashboard unit, component, and UI test pipelines#1284

Merged
Fermionic-Lyu merged 5 commits into
mainfrom
dashboard-test-pipeline
May 17, 2026
Merged

Add dashboard unit, component, and UI test pipelines#1284
Fermionic-Lyu merged 5 commits into
mainfrom
dashboard-test-pipeline

Conversation

@Fermionic-Lyu
Copy link
Copy Markdown
Member

@Fermionic-Lyu Fermionic-Lyu commented May 16, 2026

Summary

Add basic test pipelines to frontend


Summary by cubic

Adds unit, component, and UI test pipelines for @insforge/dashboard using vitest@4, @testing-library/react, and @playwright/test, and runs them in CI for PRs. Includes focused specs and API mocks for auth, env parsing, and UserFormDialog.

  • New Features
    • CI workflow splits @insforge/dashboard tests into unit, component, and UI jobs; uploads Playwright artifacts on failures.
    • vitest@4 shared/unit/component configs with jsdom, Testing Library setup, and scripts: test, test:unit, test:component, test:ui.
    • Playwright config runs Chromium against the local frontend dev server on a fixed port, retains traces on failure, and uses reusable API route fixtures.
    • Added tests: UI auth flow, component test for UserFormDialog, and unit tests for env helper parsing/normalization.
    • Removed obsolete unit tests, ignored Playwright artifacts in .gitignore, and updated dashboard testing guidance in skills docs.

Written for commit 1422877. Summary will update on new commits. Review in cubic

Note

Add unit, component, and Playwright UI test pipelines for the dashboard

  • Adds a GitHub Actions workflow (frontend-tests.yml) with three jobs: Vitest unit tests, Vitest component tests, and Playwright UI smoke tests (Chromium only), uploading artifacts on failure.
  • Configures separate Vitest configs (vitest.unit.config.ts, vitest.component.config.ts) to isolate .test.ts and .test.tsx files respectively, sharing a base jsdom environment and path-alias setup.
  • Adds a playwright.config.ts that spins up the frontend dev server before running tests in tests/ui, with trace retention on failure.
  • Includes initial test coverage: a UserFormDialog component test, parseDotEnvInput/normalizeEnvVarDrafts unit tests, and two auth-flow UI smoke tests with mocked API fixtures.
  • Updates agent skill docs to instruct picking the lowest useful test layer before reporting back.

Macroscope summarized 1422877.

Summary by CodeRabbit

  • Tests
    • Added Playwright UI auth-flow tests, new unit and component tests, updated test setup and API mocking fixtures, and removed some legacy tests.
  • Chores
    • CI now runs frontend unit/component/UI jobs (PRs and manual), installs Playwright, and uploads UI artifacts on failures (7-day retention). Added test scripts and shared per-layer Vitest/Playwright configs; Playwright artifacts are ignored.
  • Documentation
    • Clarified frontend testing guidance and added a validation checklist for which test layer to run.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 16, 2026

Walkthrough

Adds dashboard frontend test infrastructure: GitHub Actions workflow, Vitest shared and per-layer configs, Playwright config and UI fixtures, package test scripts/devDependencies, test setup, and initial unit/component/UI tests covering deployments helpers, UserFormDialog, and auth UI flows.

Changes

Dashboard Test Infrastructure

Layer / File(s) Summary
CI workflow, package scripts & deps
.github/workflows/frontend-tests.yml, .gitignore, packages/dashboard/package.json
Adds a "Frontend Tests" GitHub Actions workflow with Unit, Component, and UI jobs; adds test scripts (test, test:unit, test:component, test:ui) and devDependencies (@playwright/test, vitest); ignores playwright-report/ and test-results/.
Vitest shared config and per-layer configs
packages/dashboard/vitest.shared.config.ts, packages/dashboard/vitest.unit.config.ts, packages/dashboard/vitest.component.config.ts, packages/dashboard/vitest.config.ts
Creates a shared Vitest config with path aliases and jsdom env and a setup file; adds merged configs restricting test globs for unit (*.test.ts), component (*.test.tsx), and combined discovery.
Playwright config, UI tests, and fixtures
packages/dashboard/playwright.config.ts, packages/dashboard/tests/ui/auth-flow.spec.ts, packages/dashboard/tests/ui/fixtures/api.ts
Adds Playwright config to start a local dev server and run Chromium UI tests serially; introduces auth-flow UI specs and fixtures that mock session, metadata, users, and usage endpoints and simulate login state transitions.
Unit/component tests and test setup
packages/dashboard/src/features/deployments/__tests__/helpers.test.ts, packages/dashboard/src/features/auth/components/__tests__/UserFormDialog.test.tsx, packages/dashboard/src/test/setup.ts
Adds unit tests for deployments helpers, a component test for UserFormDialog, and a test setup registering jest-dom matchers, a ResizeObserver mock, and cleanup hooks.
Skill docs / validation guidance
.agents/skills/insforge-dev/SKILL.md, .agents/skills/insforge-dev/dashboard/SKILL.md, .codex/skills/insforge-dev/*
Updates internal skill documentation to describe the three-layer frontend testing approach and validation checklist to run the lowest useful test layer locally.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • jwfing

Poem

🐰 Soft paws tap at keys tonight,

Tests sprout like carrots in the light.
Workflows hum and fixtures play,
Auth flows pass and mocks hold sway.
Hooray — the dashboard hops to life!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and accurately describes the main change: adding dashboard test pipelines (unit, component, and UI tests).
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ 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 dashboard-test-pipeline

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

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 16, 2026

Greptile Summary

This PR introduces a complete three-layer test infrastructure for @insforge/dashboard: Vitest unit tests (.test.ts), Vitest component tests (.test.tsx with Testing Library and jsdom), and Playwright UI smoke tests against the frontend/ shell. A new frontend-tests.yml CI workflow runs all three layers in parallel on every PR.

  • Vitest setup: vitest.shared.config.ts provides path aliases and the jsdom environment; split into unit/component configs for targeted runs. JSX works correctly via Vite reading jsx: \"react-jsx\" from tsconfig.json — no explicit React plugin needed.
  • Playwright setup: playwright.config.ts starts the frontend/ dev server on a fixed port; the API fixture resolves all session routes immediately (no dangling requests).
  • Deleted tests: aggregateMetricSeries.test.ts and utils.test.ts (126 lines) are removed and replaced with 32 lines for deployment helpers — flagged in a prior thread and appears intentional.

Confidence Score: 5/5

Safe to merge — all changes are confined to test infrastructure and documentation; no production code is modified.

All changed files are test configs, CI workflow, test specs, skill docs, and gitignore additions. The Vitest and Playwright configs are correctly wired, the API fixture resolves all routes immediately with no dangling requests, and the CI workflow uses current action versions. The only gap is the UserFormDialog component test covering only the success path, which leaves the error branch unguarded but does not introduce a regression in production behavior.

No files require special attention — all changes are confined to test infrastructure.

Important Files Changed

Filename Overview
.github/workflows/frontend-tests.yml Adds three parallel CI jobs (unit, component, UI) using actions/checkout@v6 and actions/setup-node@v6; Playwright artifacts uploaded on failure for 7 days.
packages/dashboard/playwright.config.ts Playwright config targeting the frontend/ shell on a fixed port with Chromium; correctly resolves repo root and frontend cwd; retries 2x in CI.
packages/dashboard/vitest.shared.config.ts Shared Vitest config with jsdom environment, path aliases matching vite.config.ts, and setup file; relies on tsconfig jsx:react-jsx for JSX transform without needing the React Vite plugin.
packages/dashboard/tests/ui/fixtures/api.ts Route fixtures for logged-out and self-hosting API states; session route resolves immediately (401 or 200) with no suspended requests.
packages/dashboard/src/features/auth/components/tests/UserFormDialog.test.tsx Component test for UserFormDialog covering only the happy-path submission; error branch is untested.
packages/dashboard/src/features/deployments/tests/helpers.test.ts Unit tests for parseDotEnvInput and normalizeEnvVarDrafts covering export syntax, quotes, inline comments, and empty draft trimming.
packages/dashboard/src/test/setup.ts Vitest setup file adding jest-dom matchers, cleanup after each test, and a stub ResizeObserver for jsdom compatibility.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    PR[Pull Request to main/master/develop] --> CI[frontend-tests.yml triggered]
    CI --> J1[dashboard-unit-tests]
    CI --> J2[dashboard-component-tests]
    CI --> J3[dashboard-ui-tests]
    J1 --> U2["vitest run --config vitest.unit.config.ts"]
    U2 --> U3["src/**/*.test.ts"]
    J2 --> C2["vitest run --config vitest.component.config.ts"]
    C2 --> C3["src/**/*.test.tsx (jsdom + Testing Library)"]
    J3 --> P2[npx playwright install chromium]
    P2 --> P3["playwright test -c playwright.config.ts"]
    P3 --> P4["starts frontend/ dev server on :7131"]
    P4 --> P5["tests/ui/*.spec.ts (Chromium)"]
    P5 -->|failure| ART[Upload playwright-report and test-results artifacts]
    subgraph Vitest Config Hierarchy
        SH[vitest.shared.config.ts] --> UC[vitest.unit.config.ts]
        SH --> CC[vitest.component.config.ts]
        SH --> AC[vitest.config.ts]
    end
Loading

Reviews (4): Last reviewed commit: "address comment" | Re-trigger Greptile

@@ -0,0 +1,32 @@
import { describe, expect, it } from 'vitest';
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Net test coverage regression

This PR deletes aggregateMetricSeries.test.ts (41 lines, covering avg/max/latest/NaN handling) and utils.test.ts (85 lines, covering cn, isEmptyValue, compareVersions, formatTime, formatDate) and replaces them with a single 32-line file for normalizeEnvVarDrafts/parseDotEnvInput. Those previously-covered utility functions still exist in the codebase but now have zero unit tests — the net change is a reduction of ~94 test lines with no stated reason for the deletions.

Comment thread packages/dashboard/tests/ui/fixtures/api.ts
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

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 `@packages/dashboard/vitest.config.ts`:
- Line 4: Replace usages of the Node-specific __dirname in the ESM Vitest config
by deriving the directory from import.meta.url; specifically change how
dashboardSrcPath is computed and any other occurrences (the symbols referencing
dashboardSrcPath and the other path computations on lines 18/19) to use a
fileURL-to-path approach (convert import.meta.url to a directory path and then
resolve 'src' or other targets) so the config works under "type": "module"
without ReferenceError.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8700fd15-49a9-42f7-bd92-edeb7b71c8ed

📥 Commits

Reviewing files that changed from the base of the PR and between 3cd1337 and 8bcf154.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (10)
  • .github/workflows/frontend-tests.yml
  • .gitignore
  • packages/dashboard/package.json
  • packages/dashboard/playwright.config.ts
  • packages/dashboard/src/features/dashboard/utils/__tests__/aggregateMetricSeries.test.ts
  • packages/dashboard/src/features/deployments/__tests__/helpers.test.ts
  • packages/dashboard/src/lib/utils/__tests__/utils.test.ts
  • packages/dashboard/tests/ui/auth-flow.spec.ts
  • packages/dashboard/tests/ui/fixtures/api.ts
  • packages/dashboard/vitest.config.ts
💤 Files with no reviewable changes (2)
  • packages/dashboard/src/lib/utils/tests/utils.test.ts
  • packages/dashboard/src/features/dashboard/utils/tests/aggregateMetricSeries.test.ts

Comment thread packages/dashboard/vitest.config.ts Outdated
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 11 files

Confidence score: 5/5

  • This PR looks low risk to merge: the only noted issue is a maintainability concern in packages/dashboard/vitest.config.ts, not a concrete runtime regression.
  • The duplicated alias map between packages/dashboard/vitest.config.ts and vite.config.ts could drift over time and cause test/build module resolution to diverge, but severity is low (3/10) and impact is likely gradual rather than immediate.
  • Pay close attention to packages/dashboard/vitest.config.ts and vite.config.ts - keep alias definitions synchronized to avoid future inconsistency.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="packages/dashboard/vitest.config.ts">

<violation number="1" location="packages/dashboard/vitest.config.ts:9">
P3: The alias map is duplicated from `vite.config.ts`, which can drift and make test/build module resolution inconsistent.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
Re-trigger cubic

Comment thread packages/dashboard/vitest.config.ts Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (1)
.github/workflows/frontend-tests.yml (1)

66-67: ⚖️ Poor tradeoff

Consider caching Playwright browsers.

Installing Playwright browsers on every CI run can be time-consuming. Caching the browser binaries would speed up the UI tests job.

⚡ Proposed caching setup

Add a cache step before installing Playwright:

      - name: Cache Playwright browsers
        uses: actions/cache@v4
        id: playwright-cache
        with:
          path: ~/.cache/ms-playwright
          key: playwright-${{ runner.os }}-${{ hashFiles('packages/dashboard/package-lock.json') }}

      - name: Install Playwright Chromium
        if: steps.playwright-cache.outputs.cache-hit != 'true'
        run: npx playwright install --with-deps chromium

Note: You may still need to install system dependencies even when browsers are cached.

🤖 Prompt for 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.

In @.github/workflows/frontend-tests.yml around lines 66 - 67, Add a cache step
for Playwright before the existing "Install Playwright Chromium" step to avoid
re-downloading browser binaries each run: add an actions/cache@v4 step (id
playwright-cache) caching path ~/.cache/ms-playwright with a key like
playwright-${{ runner.os }}-${{
hashFiles('packages/dashboard/package-lock.json') }}, then change the "Install
Playwright Chromium" step to run only when the cache miss occurs (if:
steps.playwright-cache.outputs.cache-hit != 'true') so Playwright only downloads
on cache misses; keep any required system dependency installs separate since
caching only covers browser binaries.
🤖 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 @.github/workflows/frontend-tests.yml:
- Around line 49-70: The dashboard-ui-tests job lacks an artifact upload step to
collect Playwright outputs on failure; add a new step after the "Run dashboard
UI tests" step in the dashboard-ui-tests job that uses
actions/upload-artifact@v4 with if: failure(), a descriptive name like
"playwright-results", and paths pointing to the Playwright report and
test-results (e.g., packages/dashboard/playwright-report/ and
packages/dashboard/test-results/) and set retention-days (e.g., 7) so traces,
videos, and HTML reports are preserved for debugging.

In `@packages/dashboard/package.json`:
- Line 98: Update the vitest dependency in package.json from "^3.2.4" to a newer
compatible version (e.g., "^4.1.6" or at least "^4.0.0") to pick up the latest
stable fixes; modify the "vitest" entry in the dependencies/devDependencies
section of package.json accordingly, run your package manager's install
(npm/yarn/pnpm) and run the test suite to confirm there are no breaking changes
or required config updates for the new major version.

In
`@packages/dashboard/src/features/auth/components/__tests__/UserFormDialog.test.tsx`:
- Around line 53-55: The three assertions for hookMocks.refetch, onOpenChange,
and hookMocks.showToast are executed too early and should wait for async effects
to settle; replace the immediate expects with an awaited waitFor (or equivalent
async helper) that checks hookMocks.refetch was called, onOpenChange was called
with false, and hookMocks.showToast was called with ('User created
successfully','success'), e.g. wrap those three expect(...) calls inside await
waitFor(() => { ... }) so the test waits for the side-effects triggered by
register to complete.

---

Nitpick comments:
In @.github/workflows/frontend-tests.yml:
- Around line 66-67: Add a cache step for Playwright before the existing
"Install Playwright Chromium" step to avoid re-downloading browser binaries each
run: add an actions/cache@v4 step (id playwright-cache) caching path
~/.cache/ms-playwright with a key like playwright-${{ runner.os }}-${{
hashFiles('packages/dashboard/package-lock.json') }}, then change the "Install
Playwright Chromium" step to run only when the cache miss occurs (if:
steps.playwright-cache.outputs.cache-hit != 'true') so Playwright only downloads
on cache misses; keep any required system dependency installs separate since
caching only covers browser binaries.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a659388e-448e-4d45-b226-23d00ead724c

📥 Commits

Reviewing files that changed from the base of the PR and between 8bcf154 and b1e2479.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (14)
  • .agents/skills/insforge-dev/SKILL.md
  • .agents/skills/insforge-dev/dashboard/SKILL.md
  • .codex/skills/insforge-dev/SKILL.md
  • .codex/skills/insforge-dev/dashboard/SKILL.md
  • .github/workflows/frontend-tests.yml
  • packages/dashboard/package.json
  • packages/dashboard/src/features/auth/components/__tests__/UserFormDialog.test.tsx
  • packages/dashboard/src/test/setup.ts
  • packages/dashboard/tests/ui/auth-flow.spec.ts
  • packages/dashboard/tests/ui/fixtures/api.ts
  • packages/dashboard/vitest.component.config.ts
  • packages/dashboard/vitest.config.ts
  • packages/dashboard/vitest.shared.config.ts
  • packages/dashboard/vitest.unit.config.ts
✅ Files skipped from review due to trivial changes (4)
  • packages/dashboard/vitest.unit.config.ts
  • packages/dashboard/src/test/setup.ts
  • .codex/skills/insforge-dev/SKILL.md
  • .agents/skills/insforge-dev/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/dashboard/tests/ui/auth-flow.spec.ts

Comment thread .github/workflows/frontend-tests.yml
Comment thread packages/dashboard/package.json Outdated
Comment thread packages/dashboard/src/features/auth/components/__tests__/UserFormDialog.test.tsx Outdated
@Fermionic-Lyu Fermionic-Lyu changed the title Add basic test suits Add dashboard unit, component, and UI test pipelines May 17, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.github/workflows/frontend-tests.yml (1)

3-8: ⚡ Quick win

Add explicit least-privilege workflow permissions.

This workflow relies on default GITHUB_TOKEN permissions. Add a top-level permissions block (for example, contents: read) to reduce blast radius if any step is compromised.

Suggested minimal hardening diff
 name: Frontend Tests
 
 on:
   pull_request:
     branches: [main, master, develop]
   workflow_dispatch:
 
+permissions:
+  contents: read
+
 jobs:
🤖 Prompt for 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.

In @.github/workflows/frontend-tests.yml around lines 3 - 8, Add an explicit
top-level permissions block to the workflow to avoid using broad default
GITHUB_TOKEN permissions: add a permissions entry (for example, permissions:
contents: read) at the top level of the workflow (alongside the existing on: and
workflow_dispatch keys) so the workflow only grants minimal privileges to
GITHUB_TOKEN instead of the full default set.
🤖 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.

Nitpick comments:
In @.github/workflows/frontend-tests.yml:
- Around line 3-8: Add an explicit top-level permissions block to the workflow
to avoid using broad default GITHUB_TOKEN permissions: add a permissions entry
(for example, permissions: contents: read) at the top level of the workflow
(alongside the existing on: and workflow_dispatch keys) so the workflow only
grants minimal privileges to GITHUB_TOKEN instead of the full default set.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6a6ebfed-110c-4a2f-b7ab-f50fd7ca3ba5

📥 Commits

Reviewing files that changed from the base of the PR and between b1e2479 and 5d579c0.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (3)
  • .github/workflows/frontend-tests.yml
  • packages/dashboard/package.json
  • packages/dashboard/src/features/auth/components/__tests__/UserFormDialog.test.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/dashboard/package.json

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

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 @.github/workflows/frontend-tests.yml:
- Around line 18-21: Replace mutable action tags with pinned commit SHAs: update
usages of actions/checkout@v6 and actions/setup-node@v6 (and the other
occurrences of actions referenced at lines noted in the review) to their full
40-character commit SHA equivalents; keep an inline comment with the
human-readable tag (e.g., // v6) if desired for readability and add the SHA
after the `@` (e.g., actions/checkout@<40-char-sha>). Ensure you update every
occurrence mentioned in the review (all uses of actions/checkout,
actions/setup-node, and the other action references at the noted locations) so
no mutable tags remain, and verify the SHAs correspond to the intended release
before committing.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 34603bd2-1c50-465a-b162-53c8bb141a8f

📥 Commits

Reviewing files that changed from the base of the PR and between 5d579c0 and 1422877.

📒 Files selected for processing (1)
  • .github/workflows/frontend-tests.yml

Comment thread .github/workflows/frontend-tests.yml
Copy link
Copy Markdown
Member

@jwfing jwfing left a comment

Choose a reason for hiding this comment

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

LGTM, approved.

@Fermionic-Lyu Fermionic-Lyu merged commit 15d7c6c into main May 17, 2026
11 checks passed
@Fermionic-Lyu Fermionic-Lyu deleted the dashboard-test-pipeline branch May 17, 2026 03:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants