Two XCTAssertFalse(el.waitForExistence(timeout: 3)) sites in Milestone2UITests always burned the full 3s on the expected-absent path. Add assertAbsent(_:dwell:) (0.5s dwell + .exists) and use it at both sites — same coverage, ~6s back per suite run.
An audit confirmed these are the only two full-timeout negative waits; the rest of the UI suite already uses the instant .exists form.
Verification
testSaveAndDeleteCustomPreset and testPresetExportImport pass locally with the new helper (2 tests, 0 failures).
Both .click() lines preserved; only the assertions changed.
Stacked on #142 — retarget to milestone/m9-monterey once that lands.
Closes #140
Two `XCTAssertFalse(el.waitForExistence(timeout: 3))` sites in `Milestone2UITests` always burned the full 3s on the expected-absent path. Add `assertAbsent(_:dwell:)` (0.5s dwell + `.exists`) and use it at both sites — same coverage, ~6s back per suite run.
An audit confirmed these are the only two full-timeout negative waits; the rest of the UI suite already uses the instant `.exists` form.
## Verification
- `testSaveAndDeleteCustomPreset` and `testPresetExportImport` pass locally with the new helper (2 tests, 0 failures).
- Both `.click()` lines preserved; only the assertions changed.
Stacked on #142 — retarget to `milestone/m9-monterey` once that lands.
Two XCTAssertFalse(el.waitForExistence(timeout: 3)) sites in
Milestone2UITests always burned the full 3s on the expected-absent
path. Add assertAbsent(_:dwell:) (0.5s dwell + .exists) and use it at
both sites — same coverage, ~6s back per suite run.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
gronod
merged commit eb1503aba9 into milestone/m9-monterey2026-09-12 17:00:41 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #140
Two
XCTAssertFalse(el.waitForExistence(timeout: 3))sites inMilestone2UITestsalways burned the full 3s on the expected-absent path. AddassertAbsent(_:dwell:)(0.5s dwell +.exists) and use it at both sites — same coverage, ~6s back per suite run.An audit confirmed these are the only two full-timeout negative waits; the rest of the UI suite already uses the instant
.existsform.Verification
testSaveAndDeleteCustomPresetandtestPresetExportImportpass locally with the new helper (2 tests, 0 failures)..click()lines preserved; only the assertions changed.Stacked on #142 — retarget to
milestone/m9-montereyonce that lands.