Skip to content

test(services): changelog and update service tests are run by nothing — no turbo #test task for either workspace #141

Open

Description

@dezren39

Problem

The unit-test suites of the two Cloudflare services under services/ are run by nothing in CI:

  • services/changelog (@opencode/changelog) — test/markdown.test.ts + test/worker.test.ts, 19 tests
  • services/update (@opencode/update) — test/index.test.ts, 6 tests

Both packages declare "test": "bun test" in their package.json, and both are workspaces (package.json workspaces include services/*), but neither has a test task in turbo.json.

Evidence (verified on main this run)

  • turbo.json defines a #test task for 27 workspace packages (every packages/* package with a test script) — there is no @opencode/changelog#test and no @opencode/update#test entry. Audit: every other workspace package with a test script has one; these two are the only exceptions.
  • bun x turbo@2.10.2 test --filter=@opencode/changelog --filter=@opencode/update --dry-run=json returns "tasks": [] (packages are recognised, no task runs).
  • CI's only unit-test path is .github/workflows/test.yml "Run unit tests": bun turbo test / bun turbo test --affected — so these suites never execute there. The explicit extra step for script/mcpx-cleanup.test.ts (test(script): mcpx-cleanup.test.ts is run by nothing — no CI job, turbo task, or package script executes it #138) does not cover the services.
  • The deploy workflows do not save them on this fork:
    • deploy-changelog.yml does have a bun test step, but it is gated if: github.repository == 'anomalyco/opencode' && github.ref_name == 'dev' and triggers only on pushes to dev — it never runs in this fork.
    • deploy-update.yml has no test step at all (typecheck + deploy only) and is likewise gated to anomalyco/opencode + production.
  • Both suites pass locally today: changelog 19 pass / 0 fail (52 expects), update 6 pass / 0 fail (1854 expects) under bun test in each service directory. This is a coverage hole, not a red suite waiting to be fixed.

Why it matters

These services are user-facing production workers (the changelog site and the update/rollout service — the update tests pin D1 retry, artifact selection, and rollout-fallback caching behaviour). A regression in either can merge green because no CI job ever runs its tests; the first signal would be a broken deploy or a bad rollout decision. This is the same "test exists but is run by nothing" gap as #138, in the workspace/turbo dimension rather than the non-workspace one.

Acceptance criteria

  • turbo.json gains @opencode/changelog#test and @opencode/update#test entries following the sibling pattern (e.g. @opencode/function#test: dependsOn: ["transit"], outputs: []), OR the services' tests are run by an equivalent explicit CI step.
  • bun turbo test --filter=@opencode/changelog --filter=@opencode/update --dry-run lists both tasks, and a filtered bun turbo test run executes them green (19 + 6 tests).
  • A PR touching only services/changelog/** or services/update/** shows the corresponding service test task in the unit job (--affected picks it up).

Single-repo: the services/ workspace layout and turbo task table are specific to this repo; no equivalent structure exists in developing-today/code, developing-today/openchamber, or dezren39/nix.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions