Skip to content

test: fix the two suites failing on main - #3062

Merged
datlechin merged 2 commits into
mainfrom
fix/main-ci-red-suites
Sep 23, 2026
Merged

datlechin merged 2 commits into
mainfrom
fix/main-ci-red-suites

Conversation

@datlechin

Copy link
Copy Markdown
Member

macOS Tests has been red on every push to main since #3044, and iOS Tests went red once on #3052. Both are test defects, not app defects.

macOS: No menu names itself with accessibilityLabel

Failing on 9 consecutive main runs (35694031462 through 35812418402), always with one offender: TrailingPaneHeaderView.swift:107.

#3044 named the trailing pane's ellipsis menu with .accessibilityElement(children: .contain) followed by .accessibilityLabel. That is the only form that names a pull-down whose label draws only an icon: the label then names the container, not the menu. TrailingPaneSurfaceUITests.testTheInspectorMenuSwitchesTheRowToJSON asserts the name is "Inspector Options" and passes on CI (it read "" on the runner before #3044).

The static scanner in MenuDisclosureIndicatorTests predates that finding and flags any .accessibilityLabel in a menu's modifier chain. It now skips one that follows .accessibilityElement(children: .contain). A bare .accessibilityLabel on a menu is still flagged.

A new fixture test pins both sides, so the exemption cannot quietly widen:

  • a menu with .accessibilityLabel alone is reported
  • the same menu with .accessibilityElement(children: .contain) first is not

Negative control: with the exemption removed, the tree scan reports TrailingPaneHeaderView.swift:107 again and the fixture test fails.

iOS: A second question waits its turn instead of being refused

Failed on 35740949976 with queue.current?.id equal to the second prompt's id.

The test started both questions with async let. Each child task hops to the main actor on its own, so nothing orders the two ask calls, and the second question can be queued first. ConnectionPromptQueue is FIFO by call order and a real connect attempt asks its questions one after another, so the product is right and the test's ordering was a race. The test now waits for the first question to be on screen before asking the second.

Not changed

Testing

  • Scanner tests run in a standalone harness built from the test file: all three pass on this tree, two fail with the exemption removed.
  • ConnectionPromptQueueTests run 200 times on the iOS simulator: 200 repetitions (-test-iterations 200), 0 failures.
  • swiftlint lint --strict on both files: 0 violations.

@datlechin
datlechin merged commit 57102d9 into main Sep 23, 2026
6 checks passed
@datlechin
datlechin deleted the fix/main-ci-red-suites branch September 23, 2026 05:54
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