Skip to content

test(queue): add live smoke test for queue status#1409

Open
jd wants to merge 3 commits into
mainfrom
devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a
Open

test(queue): add live smoke test for queue status#1409
jd wants to merge 3 commits into
mainfrom
devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a

Conversation

@jd
Copy link
Copy Markdown
Member

@jd jd commented May 11, 2026

Pins the contract for mergify queue status --json before the
Rust port lands on top. Same test exercises Python at this PR's
CI and Rust on the port commit's rebase — same URL, same auth,
same JSON-passthrough output.

Uses live_token since the command hits the real Mergify API.
The assertion is intentionally loose: exit 0 and stdout parses
as a JSON object. The schema is the API's contract, not the
CLI's, so any field-level assertion would tie the test to
unrelated upstream changes.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

Depends-On: #1407

@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 11, 2026 12:06 Failure
@jd jd had a problem deploying to func-tests-live May 11, 2026 12:06 — with GitHub Actions Failure
@jd
Copy link
Copy Markdown
Member Author

jd commented May 11, 2026

This pull request is part of a Mergify stack:

# Pull Request Link
1 test(ci): add live smoke test for ci queue-info #1406
2 feat(rust): port ci queue-info to native Rust #1407
3 test(queue): add live smoke test for queue status #1409 👈
4 feat(rust): port queue status to native Rust #1359
5 test: derive native queue commands from the binary, not a hardcoded list #1366
6 test(queue): add live smoke test for queue show #1408
7 feat(rust): port queue show to native Rust #1399
8 test(skill): port the skill-references test to Rust #1414

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 11, 2026

Merge Protections

Your pull request matches the following merge protections and will not be merged until they are valid.

🔴 👀 Review Requirements

Waiting for

  • #approved-reviews-by>=2
This rule is failing.
  • any of:
    • #approved-reviews-by>=2
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]

🔴 🔎 Reviews

Waiting for

  • #review-requested = 0
This rule is failing.
  • #review-requested = 0
  • #changes-requested-reviews-by = 0
  • #review-threads-unresolved = 0

🟢 ⛓️ Depends-On Requirements

Wonderful, this rule succeeded.

Requirement based on the presence of Depends-On in the body of the pull request

🟢 🤖 Continuous Integration

Wonderful, this rule succeeded.
  • all of:
    • check-success=ci-gate

🟢 Enforce conventional commit

Wonderful, this rule succeeded.

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:

🟢 📕 PR description

Wonderful, this rule succeeded.
  • body ~= (?ms:.{48,})

@jd jd force-pushed the devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a branch from 542af35 to a630c92 Compare May 11, 2026 12:19
@jd jd force-pushed the devs/jd/worktree-rust-port/port-ci-queue-info-native-rust--f0cdc5a0 branch from 1d4e970 to 78d8f46 Compare May 11, 2026 12:19
@jd jd had a problem deploying to func-tests-live May 11, 2026 12:19 — with GitHub Actions Failure
@jd jd had a problem deploying to func-tests-live May 11, 2026 12:19 — with GitHub Actions Failure
@jd jd had a problem deploying to func-tests-live May 11, 2026 12:19 — with GitHub Actions Failure
@jd
Copy link
Copy Markdown
Member Author

jd commented May 11, 2026

Revision history

# Type Changes Reason Date
1 initial 542af35 2026-05-11 12:19 UTC
2 rebase 542af35 → a630c92 2026-05-11 12:19 UTC
3 rebase a630c92 → 7eb3c64 2026-05-11 14:08 UTC
4 content 7eb3c64 → 37735a7 2026-05-11 14:59 UTC
5 content 37735a7 → f706a9a 2026-05-11 15:05 UTC
6 rebase f706a9a → 093a618 2026-05-11 20:59 UTC
7 content 093a618 → d0394b0 (raw) 2026-05-12 07:44 UTC
8 rebase d0394b0 → 8b7dbd2 (rebase only) 2026-05-13 08:25 UTC

@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 11, 2026 12:19 Failure
@mergify mergify Bot requested a review from a team May 11, 2026 12:32
@jd jd force-pushed the devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a branch from a630c92 to 7eb3c64 Compare May 11, 2026 14:07
@jd jd force-pushed the devs/jd/worktree-rust-port/port-ci-queue-info-native-rust--f0cdc5a0 branch from 78d8f46 to 3718941 Compare May 11, 2026 14:07
@jd jd had a problem deploying to func-tests-live May 11, 2026 14:08 — with GitHub Actions Failure
@jd jd had a problem deploying to func-tests-live May 11, 2026 14:08 — with GitHub Actions Failure
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 11, 2026 14:08 Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/port-ci-queue-info-native-rust--f0cdc5a0 branch from 3718941 to 86bfde8 Compare May 11, 2026 14:59
@jd jd force-pushed the devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a branch from 7eb3c64 to 37735a7 Compare May 11, 2026 14:59
@jd jd had a problem deploying to func-tests-live May 11, 2026 14:59 — with GitHub Actions Failure
@jd jd had a problem deploying to func-tests-live May 11, 2026 14:59 — with GitHub Actions Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a branch from 37735a7 to f706a9a Compare May 11, 2026 15:05
@jd jd temporarily deployed to func-tests-live May 11, 2026 15:05 — with GitHub Actions Inactive
@jd jd temporarily deployed to func-tests-live May 11, 2026 15:05 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 11, 2026 15:06 Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a branch from f706a9a to 093a618 Compare May 11, 2026 20:59
@jd jd temporarily deployed to func-tests-live May 11, 2026 20:59 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 11, 2026 20:59 Failure
@jd jd marked this pull request as ready for review May 12, 2026 07:04
@jd jd requested a review from Copilot May 12, 2026 07:06
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a live smoke test to pin the behavior/contract of mergify queue status --json (API URL + auth + JSON passthrough) ahead of the Python → Rust port, ensuring both implementations can be validated against the same real API endpoint.

Changes:

  • Add a new live functional test that runs mergify queue status --json against the real Mergify API.
  • Assert the command exits successfully and stdout parses as a JSON object (without schema/field assertions).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread func-tests/test_live_smoke.py
@jd jd force-pushed the devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a branch from 093a618 to d0394b0 Compare May 12, 2026 07:44
@jd jd temporarily deployed to func-tests-live May 12, 2026 07:44 — with GitHub Actions Inactive
@jd jd temporarily deployed to func-tests-live May 12, 2026 07:44 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 12, 2026 07:45 Failure
jd and others added 3 commits May 13, 2026 10:25
Pins the contract for ``mergify ci queue-info`` so the upcoming
Rust port can be validated against the same test that exercises
the Python implementation. Lands first; the port commit on top
re-runs this test against Rust — same contract, both ends.

The test doesn't need ``live_token`` (the command is locally
evaluated). The conftest fixture scrubs every event env var and
runs in a tmp dir, so the detector always reports "no MQ
context". The assertion checks for exit code 7 (``INVALID_STATE``)
and an MQ-context message in stdout or stderr.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Change-Id: Idff72acfc1f35f7f64051a4f62a3fe625d2b802f
The Rust binary now serves ``mergify ci queue-info`` natively.
The Python implementation (``mergify_cli/ci/cli.py:queue_info``)
and its tests are removed in the same PR — port-and-delete keeps
a single live copy.

The previous commit landed a live-smoke test pinning the
``INVALID_STATE`` exit code outside an MQ context. That same
test now exercises the Rust path.

``ci queue-info`` prints the merge-queue batch metadata embedded
in the current draft PR as pretty JSON. Outside an MQ context
(no event payload, no PR body fenced block) it exits
``INVALID_STATE`` (exit 7).

When ``$GITHUB_OUTPUT`` is set (GitHub Actions runner), the
command also appends the metadata as ``queue_metadata`` under a
random ``ghadelimiter_<uuid>`` heredoc, matching the pattern
GitHub Actions expects for multi-line workflow outputs.

The implementation reuses the shared ``queue_metadata`` and
``github_event`` modules introduced by the previous (git-refs)
port commit.

Adds the ``uuid`` dep (v4 random UUIDs for the ghadelimiter) to
the ``mergify-ci`` crate.

3 new queue-info tests in the ``mergify-ci`` crate. The Python
queue-info tests in ``test_cli.py``, ``test_cli_exit_codes.py``,
and ``test_exit_code_contract.py`` are removed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Change-Id: If0cdc5a06685387f6a9379b237eb5d184b071dc4
Pins the contract for ``mergify queue status --json`` before the
Rust port lands on top. Same test exercises Python at this PR's
CI and Rust on the port commit's rebase — same URL, same auth,
same JSON-passthrough output.

Uses ``live_token`` since the command hits the real Mergify API.
The assertion is intentionally loose: exit 0 and stdout parses
as a JSON object. The schema is the API's contract, not the
CLI's, so any field-level assertion would tie the test to
unrelated upstream changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Change-Id: I76f21b1ad4ddd34196ede18d3a0c768d339a8659
@jd jd force-pushed the devs/jd/worktree-rust-port/port-ci-queue-info-native-rust--f0cdc5a0 branch from 26cefe3 to d5d3847 Compare May 13, 2026 08:25
@jd jd force-pushed the devs/jd/worktree-rust-port/add-live-smoke-test-queue-status--76f21b1a branch from d0394b0 to 8b7dbd2 Compare May 13, 2026 08:25
@jd jd temporarily deployed to func-tests-live May 13, 2026 08:25 — with GitHub Actions Inactive
@jd jd temporarily deployed to func-tests-live May 13, 2026 08:25 — with GitHub Actions Inactive
@jd jd temporarily deployed to func-tests-live May 13, 2026 08:25 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 13, 2026 08:25 Failure
Base automatically changed from devs/jd/worktree-rust-port/port-ci-queue-info-native-rust--f0cdc5a0 to main May 13, 2026 13:51
@mergify mergify Bot requested a review from a team May 13, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants