Skip to content

trios/agent-server/apps/server/src/browser/console-collector.ts exports one symbol and no test names any of them #1663

Closed

Description

@gHashTag

trios/agent-server/apps/server/src/browser/console-collector.ts exports one symbol and no test names any of them

Measured on origin/feat/queen-supervisor, the tree a bee clones:

$ git show origin/feat/queen-supervisor:trios/agent-server/apps/server/src/browser/console-collector.ts | wc -l
219

exports: ConsoleCollector
searched: every *.test.ts under apps/server/tests, concatenated
found:    none of these identifiers appears anywhere in that corpus

The weak version of this claim would be "there is no console-collector.test.ts",
and it would be worthless: 144 of 260 source files have no test of the same name,
and most of them are covered perfectly well by suites named after something else.
queen-tick.ts is exercised by a dozen queen-*.test.ts files and has no test
of its own name. So the question asked here is the stronger one - whether any
exported identifier of this module is mentioned anywhere in the test corpus at
all - and by that measure only nine modules in the repository qualify. This is
one of them.

Untested is not the same as broken. This asks for the first suite, not a rewrite:
the behaviour that already exists, pinned, so the next change to this file has
something to fail against.

User Scenarios & Testing

User Story 1 - The module's contract is pinned as it stands today (P1)

Acceptance Scenarios:

  1. Given each exported symbol,
    When the suite runs,
    Then at least one assertion exercises it, and the suite names the symbol
    it is covering so a reader can map assertions to exports.
  2. Given the module's behaviour as it is today,
    When the suite runs against the unmodified source,
    Then it passes. A first suite that requires changing the subject is a
    redesign wearing a test's clothes.
  3. Given a deliberately broken copy of the subject,
    When the suite runs against it,
    Then it fails. A suite never shown failing has not been tested.
  4. Given the suite,
    When it runs,
    Then it needs no network, no database and no container.

User Story 2 - What could not be pinned is named (P2)

Acceptance Scenarios:

  1. Given an export whose behaviour cannot be exercised without a live
    dependency,
    When the suite is read,
    Then that export is listed in a comment with the dependency that blocked
    it, rather than silently omitted. An untested export inside a file that now
    looks tested is worse than one in a file that plainly is not.

Requirements

  • FR-001: The subject MUST NOT be modified. If a symbol cannot be tested without changing it, say so in the comment required above and leave it.
  • FR-002: The suite MUST run under bun test in an existing group and MUST NOT require a database, a container or the network.
  • FR-003: Every assertion MUST test observable behaviour, not the shape of the implementation. A test that asserts a function calls another function pins the code rather than the contract.
  • FR-004: The bee MUST demonstrate the suite failing against a deliberately broken copy before showing it passing, and quote both runs.
  • FR-005: No existing test may be modified or weakened.

Success Criteria

  • bun test trios/agent-server/apps/server/tests/api/console-collector.test.ts passes, and its raw stdout is quoted in the report, unedited and unsummarised.
  • Every one of the 1 exported symbols is either exercised by an assertion or listed in a comment with the dependency that prevented it; the report quotes grep -c 'it(' trios/agent-server/apps/server/tests/api/console-collector.test.ts and its raw output, and the two counts sum to 1. The command MUST NOT name or enumerate the specific items it counts.
  • A failing run against a deliberately broken copy of the subject is quoted, raw and unedited, alongside the passing one - a suite never shown failing has not been tested.
  • git diff --name-only is quoted raw and does not list trios/agent-server/apps/server/src/browser/console-collector.ts.
  • The suite registers under a describe named consoleCollectorContract; that identifier appears nowhere in the tree today.

Boundary

trios/agent-server/apps/server/tests/api/console-collector.test.ts

Activity

  1. added
    queen-authoredFiled automatically from a measured deficit, under a WIP limit
    on Sep 5, 2026
  2. added a commit that references this issue on Oct 13, 2026
    9552667
  3. dmitrii-f-t27 commented on Oct 13, 2026

    @dmitrii-f-t27
    Collaborator

    Fixed by PR #1917 (head 27ddd7c), merged into queen as 9552667 on 2026-10-13. The first suite for console-collector.ts (10 tests through a recording fake CdpBackend: the three event kinds with their level maps and arg serialization, the main-frame navigation clear, session attach/re-attach/detach, and the getLogs threshold/search/limit/totalCount/clear contract, all measured on the live module first) is green in the Tests / server-api CI job on this SHA with the typecheck set identical to base and 0 Biome diagnostics for the new file; the failing-run against a deliberately broken copy (6 failures) is quoted in the PR body. The subject file is untouched. Auto-close did not trigger because the PR merges into queen, not the default branch main.

    Dmitrii Fedorov (@dmitrii-f-t27)

  4. added a commit that references this issue on Oct 15, 2026
    27ddd7c
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

    queen-authoredFiled automatically from a measured deficit, under a WIP limit

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions