Skip to content

PM-6628: Fix remaining Marathon Match modal QA issues - #2536

Merged
jmgasper merged 1 commit into
devfrom
PM-6628-2
Oct 21, 2026
Merged

jmgasper merged 1 commit into
devfrom
PM-6628-2

Conversation

@jmgasper

Copy link
Copy Markdown
Collaborator

What was broken

The earlier fixes (community-app #7290 and platform-ui #2532) refreshed the MM dialogs and added completion-gated artifact downloads and a single Download all ZIP.

QA still reported missing examples during active matches, incorrect artifact icons, modal text/icons sitting too high, labels without bold weight, arrows on unsorted columns, left-aligned ranks, and horizontal scrolling. QA also requested checks with long handles. Completed-match downloads were working and are preserved.

Root cause

The dev API returns submission-prefixed identifiers: the reported active submission returns YtoH-k9To2Ggxx-example. The previous filter accepted only the literal example. Global reset styles left metadata at normal weight and table cells baseline-aligned. The UI used generic document icons and forced the public MM table to at least 1200px wide.

What was changed

  • Accept bare example and the exact current submission's prefixed example ID. Preserve original IDs for individual and bulk downloads; continue excluding internal and unrelated IDs before completion.
  • Reuse the folded-page view/download SVGs from the merged Community App fix. Explicitly center modal cells and bold Submission ID/Handle labels.
  • Show arrows only on the active sort column through the shared challenge-detail header, preserving clickable headers and accessible sort state.
  • Right-align desktop ranks, remove the forced table width, reduce action padding, and allocate columns from the available card width. Keep action counts and long handles on one line; truncated handles retain their full title.
  • Preserve completion gating, staff/API authorization, score visibility, ZIP behavior, backdrop styling, and history navigation.
  • Update opportunities documentation.

Fresh branch PM-6628-2 starts from current dev (fc95c0f42), which includes both the prior opportunities implementation and subsequent merged work. No API or dependency changes.

Files changed (11): the opportunities README; two SVG assets; SubmissionArtifactsModal component/styles/tests; SubmissionHistoryModal component/styles; and ChallengeDetailsPage component/styles/flow tests.

Any added/updated tests

Two new regressions cover real prefixed example IDs, exact download IDs/filenames, rejection of internal and unrelated IDs, and filtering after management access is removed. The existing ZIP test now uses prefixed IDs. Six existing sorting cases assert that only the active header has an arrow; the action test checks the decorative SVG.

Validation used Node 22.13.0 via nvm use:

  • yarn lint: passed.
  • NODE_OPTIONS=--max_old_space_size=8192 yarn run build: passed.
  • yarn test:no-watch --runInBand: all 65 opportunities suites and 814 tests passed. Repository-wide results are 398 passing suites and 2912 passing tests, with 21 failed suites and 18 failed tests. A full run on untouched dev at fc95c0f42 reproduces exactly the same failed suite and test names (2910 passing tests). Existing failures outside opportunities require separate fixes before the full repository suite is green.
  • Headless Chrome with real components/styles, the actual global CSS reset, and mocked APIs: nine widths from 375px to 1440px have no table/card/page overflow; long handles stay on one line; rank alignment, sort arrows, tooltips, modal labels/centering, navigation, individual downloads, and a four-artifact ZIP pass. Screenshots were reviewed against the ticket references.
  • Read-only dev API verification confirmed the reported submission's prefixed artifact IDs.
  • git diff --check: passed.

Commit and PR bodies use real newlines and paragraph breaks.

What was broken

The earlier Community App and opportunities fixes updated the MM dialogs,
permissions, and ZIP downloads. QA still found a missing example artifact
for active matches, mismatched icons, uncentered modal rows, unbolded labels,
sort arrows on inactive columns, left-aligned ranks, and table scrolling.

Root cause

The filter expected the literal example ID, but the dev API returns IDs such
as YtoH-k9To2Ggxx-example. Global CSS resets inherited label weight and cell
alignment. Generic icons and a forced 1200px table width retained visual gaps.

What was changed

Accept the exact submission-prefixed example ID while retaining original
identifiers for downloads and excluding internal or unrelated artifacts.
Reuse the folded-page icons from the merged Community App implementation.
Explicitly center modal cells and bold metadata labels. Show sort arrows
only on active challenge-detail columns, align desktop ranks right, reserve
compact action space, and size columns to the card instead of forcing a
minimum table width. Keep long handles on one line with a full-handle title.
Preserve completed-match ZIP downloads, permissions, and modal navigation.
Update the opportunities README.

Any added/updated tests

Add two regressions for prefixed example downloads and access changes.
Use prefixed IDs in the ZIP-content test and verify active-only arrows in
all six existing derived-column sorting cases. Update the icon assertion.
All 65 opportunities suites and 814 tests pass. Lint, production build, and
headless browser checks pass, including nine viewport widths, long handles,
large history counts, modal styles, sorting, navigation, and real ZIP contents.
The full suite has 398 passing suites and 2912 passing tests. Its 21 failed
suites and 18 failed tests exactly match untouched dev at fc95c0f; no new
failures were introduced.
@jmgasper
jmgasper requested a review from kkartunov as a code owner October 20, 2026 23:47
@jmgasper
jmgasper merged commit c80da31 into dev Oct 21, 2026
8 checks passed
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.

1 participant