Skip to content

Run FwHeadless unit tests in CI#2321

Merged
myieye merged 3 commits into
developfrom
claude/fw-headless-tests-in-ci
Jun 2, 2026
Merged

Run FwHeadless unit tests in CI#2321
myieye merged 3 commits into
developfrom
claude/fw-headless-tests-in-ci

Conversation

@myieye

@myieye myieye commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

Why

The absence of this step is what allowed develop to break. PR #2319 is the kind of reactive fix this PR is designed to prevent: a constructor change to CrdtFwdataProjectSyncService (in #2146) silently invalidated every SyncWorkerTest in Testing.csproj, and no PR-time workflow ran those tests, so the breakage landed on develop and only surfaced on a later CI run.

The dependency that the path filters don't account for:

Testing.csproj (where SyncWorkerTests lives)
  └─> FwHeadless.csproj
        └─> FwLiteProjectSync.csproj   ← #2146 changed this

Three workflows could have caught it; none did:

  • develop-api.yaml excludes backend/FwLite/** from its path filter, so it skipped a PR that only touched FwLite.
  • fw-lite.yaml ran, but tests FwLiteOnly.slnf, which doesn't include Testing.csproj.
  • develop-fw-headless.yaml did trigger — but the test step in lexbox-fw-headless.yaml was commented out, with a TODO that's no longer accurate ("Write FwHeadless unit tests" — they already exist, just under Testing.csproj rather than a hypothetical FwHeadless.Tests.csproj).

This PR fixes #3 — the cheapest of the three, since develop-fw-headless.yaml is already firing for FwLite-touching PRs.

What

  • Uncomment the test/publish/upload steps in lexbox-fw-headless.yaml.
  • Point dotnet test at backend/Testing/Testing.csproj (where the tests actually live) instead of backend/FwHeadless/FwHeadless.csproj.
  • Scope with --filter "Category!=Integration&Category!=FlakyIntegration&FullyQualifiedName~FwHeadless" so only FwHeadless-related unit tests run on this workflow.
  • Rename the artifact (dotnet-fw-headless-unit-test-results) and the check (C# FwHeadless Unit Tests) to avoid collision with lexbox-api.yaml, which uses the same default names when both workflows run together (e.g. in release-pipeline.yaml).

Test plan

  • Workflow run for this PR shows the new "Unit tests" step executing SyncWorkerTests and other Testing.FwHeadless.* tests.
  • Test results published as a "C# FwHeadless Unit Tests" check.
  • Artifact uploaded as dotnet-fw-headless-unit-test-results.
  • No artifact-name collision when this workflow runs alongside lexbox-api.yaml on the release pipeline.

https://claude.ai/code/session_01AMmw7JB5F7vBpQhum6mtKE


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown

Warning

Review limit reached

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

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

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

⌛ 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.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 46c0944f-d37e-4ac9-aa01-7e2815dfb6b5

📥 Commits

Reviewing files that changed from the base of the PR and between 5e7c6e4 and e91f7a4.

📒 Files selected for processing (2)
  • .github/workflows/develop-fw-headless.yaml
  • .github/workflows/lexbox-fw-headless.yaml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/fw-headless-tests-in-ci

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 and usage tips.

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

C# FwHeadless Unit Tests

48 tests   48 ✅  16s ⏱️
 5 suites   0 💤
 1 files     0 ❌

Results for commit e91f7a4.

♻️ This comment has been updated with latest results.

Enable the previously-commented test step in lexbox-fw-headless.yaml,
pointing it at Testing.csproj where the actual FwHeadless test classes
live, scoped via --filter "FullyQualifiedName~FwHeadless".

https://claude.ai/code/session_01AMmw7JB5F7vBpQhum6mtKE
@myieye myieye force-pushed the claude/fw-headless-tests-in-ci branch from bd9b992 to 68950dd Compare June 1, 2026 13:40
claude added 2 commits June 1, 2026 13:43
MediaFileServiceTests in Testing.FwHeadless require a PostgreSQL
instance on port 5433. The service was commented out alongside the
test step it served; both need to be active together.

https://claude.ai/code/session_01AMmw7JB5F7vBpQhum6mtKE
- Add backend/Testing/FwHeadless/** to the trigger paths so changes
  isolated to the FwHeadless tests run the workflow that now executes
  them.
- Fix a pre-existing typo: backend/FwLiteProjectSync/FwLiteProjectSync/**
  was matching nothing on disk; the correct path is
  backend/FwLite/FwLiteProjectSync/**.

https://claude.ai/code/session_01AMmw7JB5F7vBpQhum6mtKE
@myieye myieye merged commit 4afa868 into develop Jun 2, 2026
6 checks passed
@myieye myieye deleted the claude/fw-headless-tests-in-ci branch June 2, 2026 07:05
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.

User Dashboard/Landing page

2 participants