test(e2e): make create --parent and edit --field self-configuring - #798
Merged
Conversation
…namic, no static vars) Mirrors the self-mention `/myself` default (PR #796): JR_E2E_PARENT_KEY, JR_E2E_CHILD_TYPE, and JR_E2E_EDIT_FIELD become optional overrides instead of required pairings. - test_e2e_issue_parent_roundtrip: discovers the project's sub-task issue type via GET /rest/api/3/project/<key> when JR_E2E_CHILD_TYPE is unset, and seeds a fresh throwaway parent via seed_issue when JR_E2E_PARENT_KEY is unset. New ParentChildDropGuard closes the seeded parent (never a caller-supplied override) plus the created child on teardown. Asserts fields.parent.key via a fresh fetch_raw GET rather than the create response. - test_e2e_issue_edit_custom_field: discovers a safe string field via GET .../editmeta when JR_E2E_EDIT_FIELD is unset — preferring the standard "Environment" field, else the first other editable string field excluding summary/description — writes a benign generated value, and verifies it via a fresh GET. The override path is unchanged. Docs: docs/specs/e2e-live-jira-testing.md §8 and CLAUDE.md's E2E env-var reference now describe all three vars as optional overrides with dynamic defaults, matching JR_E2E_MENTION_ACCOUNT_ID's documented pattern. Claude-Session: https://claude.ai/code/session_01FitXFyeeyQ7zUuRVTgb7hd
Zious11
added a commit
that referenced
this pull request
Sep 10, 2026
…nding item (v4.01->4.02) WIP branch test/e2e-dynamic-parent-editfield was confirmed NOT redundant with #796 (distinct area: create --parent / edit --field self-configuring live-E2E tests, built atop #796); rebased onto develop, exit-gates verified green, local code-reviewer CLEAN, and MERGED to develop @ 3a874d9 via PR #798. Worktree .worktrees/E2E-DYNAMIC and both local+remote branches cleaned up; local develop fast-forwarded to 3a874d9. - Marked E2E-CI-DYNAMIC-TESTS-WIP-UNVERIFIED RESOLVED in Drift/Standing Items (SESSION-WRAP PAUSE table) and its cross-note under MAINTENANCE-CLAUDE-MD-COMPACTION-2026-09-10 item 1 - Appended Phase Progress row E2E-CI-DYNAMIC-TESTS-DELIVERED-2026-09-10 (COMPLETE, no quality gate) - Added one new OPEN follow-up: E2E-DISCOVER-SAFE-EDIT-FIELD-VALIDATED-SUBTYPE (LOW/MEDIUM, non-blocking, from PR #798 code review) - Left the other two MAINTENANCE follow-ups intact (STATE.md /compact-state candidate; vsdd-factory compact-claude-md engine-gap) Pipeline stays PAUSED throughout -- no phase transition, no cycle change. Counts unchanged (754 BCs / 76 VPs / 118 holdouts / 175 stories). Recomputed wc -l and refreshed the SIZE BUDGET banner: 428 -> 444 lines. Folds in benign concurrent churn (regression-state.json command/timestamp bump, sidecar-learning.md routine session-ended log lines) per the established single-atomic-commit pattern. Claude-Session: https://claude.ai/code/session_01RT2HKoqmH3Yf9Dyn5v5oeX
Zious11
added a commit
that referenced
this pull request
Sep 10, 2026
…4.05) Pipeline stays PAUSED throughout -- all six tracked cycles (001-006) CLOSED, no OPEN cycle. This session delivered cycle-005 (adf-mentions, #674) through F7 close, then four maintenance follow-ups: CLAUDE.md compaction (#797 @ a1f3799), E2E-CI dynamic-tests WIP resolution (#798 @ 3a874d9), mutants-nightly rebalance (#799 @ 78aeb86), and STATE.md /compact-state (447->196). No WIP branches outstanding. Single atomic burst (TD-VSDD-053): archived the prior (v4.04) Session Resume Checkpoint to cycles/cycle-005/session-checkpoints.md (Superseded at 2026-09-10), then wrote a new checkpoint covering position, convergence counter (N/A), in-flight work (none), pending human decisions (MUTANTS-NIGHTLY-VERIFY-FULL-RUN, VSDD-FACTORY-COMPACT-CLAUDE-MD-GAP), WIP branch list (none), and the exact resume command. Appended a Phase Progress row. version: 4.04->4.05. STATE.md 196->212 lines. Counts unchanged (754/76/118/175); trajectory-tail unchanged. Claude-Session: https://claude.ai/code/session_01RT2HKoqmH3Yf9Dyn5v5oeX
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test-infra-only PR. Makes two
#[ignore]-gated live-E2E tests intests/e2e_live.rsself-configuring so they run in nightlye2e.ymlout-of-the-box instead of clean-skipping — applying the same pattern PR #796 used for the mention round-trip tests.test_e2e_issue_parent_roundtrip: whenJR_E2E_PARENT_KEYis unset, seeds a throwaway parent viaseed_issueand self-closes it (plus the child) via aDrop-guard (ParentChildDropGuard, mirrorsAttachmentDropGuard/ComponentDropGuard); discovers the project's sub-task type viadiscover_subtask_type(jr api) whenJR_E2E_CHILD_TYPEis unset. A caller-suppliedJR_E2E_PARENT_KEYoverride is never closed by teardown.test_e2e_issue_edit_custom_field: whenJR_E2E_EDIT_FIELDis unset, discovers a safe editable string field via editmeta (prefersEnvironment), writes a benign value, verifies via fresh GET.JR_E2E_PARENT_KEY,JR_E2E_CHILD_TYPE,JR_E2E_EDIT_FIELD) become optional overrides (were previously required-to-enable). Docs updated:CLAUDE.mdreclassification + three new rows indocs/specs/e2e-live-jira-testing.md.src/,Cargo.toml, or CI-workflow change.This is a test-infra PR, not a story — no stubs, no Red Gate, no demo evidence per repo convention for this class of change.
Verification already done (local)
develop@a1f37995(no conflicts).cargo build— clean.cargo test—e2e_livecompiles; 30 run / 77 ignored, 0 failed. Offline guards all pass:test_e2e_gate_disabled_when_env_unset,test_every_ignored_test_has_gate_guard,e2e_cli_surface_guard(10/10),claude_md_citations(61/61).cargo clippy --all-targets -- -D warnings— clean.cargo fmt --all -- --check— clean.code-reviewerverdict: CLEAN, ready to PR — no must-fix findings.Known limitation (non-blocking, accepted risk)
discover_safe_edit_fieldfilters only onschema.type == "string". On a project whose only non-Environmenteditable string field is a validated-format subtype (e.g. a URL custom field), the dynamic path could hit a real 400 instead of clean-skipping. This is nightly/non-blocking with no data risk, and theEnvironment-preferred discovery order avoids it on the canonical E2E project. Flagging as a follow-up / accepted risk for reviewer visibility rather than blocking on it here.Test plan
cargo buildcargo test(offline guards + compile check fore2e_live)cargo clippy --all-targets -- -D warningscargo fmt --all -- --checke2e.ymlrun against live Jira (out of scope for this PR's CI; will self-configure automatically once merged)https://claude.ai/code/session_01RT2HKoqmH3Yf9Dyn5v5oeX