Repository navigation
Prune tautological, outmoded and duplicated tests - #192
Merged
Merged
Conversation
App tests: - Drop no-flake-masks' empty allowlist that only asserted itself. - Fold the four in-memory preference fakes into one memoryPreferenceStorage with an optional seed. - Move the key-value contract suite next to its one runner in the native tests, and delete the Jest stand-in for vitest it needed. - Build the perf fixture's library entry from the shared builder. - Fold the theme tests into the prefs store test. - Drop the sync strip backlog test, which repeats the sync contract's backlog copy through the same generic rendering the strip's other tests check. - Replace the literal query key tuples with assertions that the profile, genres and first-play queries persist, which is what a renamed key head would break. - Drop a tombstone in maestro-ids and the export on twelve support symbols only their own files use. CI tests: - Drop assertions that removed mechanisms stay removed: MAESTRO_DRIVER_STARTUP_TIMEOUT, REQUIRED:, POLL_SECONDS, the old size ceilings and density, summarize-atlas, restore-base-metrics, measure-play-size, the response-timing variables, and the merge-base simulator build. - Drop three continue-on-error guards that no-flake-masks already enforces for every workflow, and the daemon-before-boot check that ios-accessibility already pins. - Read jobs with the shared workflow-jobs helper in fast-validation and publish-update. - Move the render-count gate test to test/ci beside the workflow test, dropping the case it duplicated.
Pull request footprint
User-delivered artifact sizes
Most complex product function
|
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.
Part of the retroactive cleanup of #24: "PR 2: App test pruning" and "PR 3: CI test pruning in test/ci" from the 2026-10-21 cleanup audit, done as one PR because both are test pruning. Every item was re-checked against current
feat/expo-native(dfad4ee) first. Each deletion below is tautological, outmoded or duplicated, and names the test that still covers its behaviour. Where only a weak test covered real behaviour, I replaced it with a better one.App tests
no-flake-masks: dropallowlist, an empty array asserted to equal[]prefs/_storage.ts,support/stores.ts,support/up-next.tsx, and a fourth the audit missed inepisode-reminders.test.tsx) become onememoryPreferenceStorage(seed?)kv-contract.tsmoves fromcore/test/supportintonative/__tests__/support;support/vitest.tsand itsmoduleNameMappergoperf-up-next.tsbuildsentryfromsupport/up-next.tsx'sentry()with the same valuestheme.test.tsfolds intoprefs-store.test.tssync-strip.test.tsx"counts the backlog" goessyncBanner's backlog copy through the strip's generic message renderingsync-contract.test.ts"surfaces a backlog only past the threshold…", and the strip's other render testsquery-keys.test.ts's literal tuples goquery-cache.test.tsnow also asserts that the profile, genres and first-play queries persist. A renamed key head breaks persistence, which the tuples only caught by accidentmaestro-ids.test.ts: drop the "added to Watchlist" tombstoneexportfrom twelve support symbols that only their own files useCI tests
not.toContainchecks forMAESTRO_DRIVER_STARTUP_TIMEOUT,REQUIRED:,POLL_SECONDS,--dimensions=ALL,PLAY_SIZE_LIMIT_BYTES,AAB_SIZE_LIMIT_BYTES, density 480,summarize-atlas,restore-base-metrics/cue-footprint-$,measure-play-size,cue-native-ios-sizes, the response-timing variables, "Measure the merge-base simulator app",IPA_SIZE_LIMIT_BYTESand.size-limit.jsonrequire-green-ci.shand the required run-id inputs, density 640, footprint's no-build checks includingxcodebuild, onexcodebuildinnative-ios, the Firebase limit)continue-on-errorguards infast-validationno-flake-masks.test.tsscans every workflow forcontinue-on-errorios-daemons: drop the disable-daemons-then-boot checkios-accessibility.test.ts, whose expected boot block already hasdisable-ios-daemons.shright beforesimctl boot. The host-resources half staysfast-validationandpublish-updateread jobs throughtest/support/workflow-jobs.tspublish-updateused to slice the release workflow from the leg to the end of the file, so the android check could search the ios leg's steps; it now reads one jobcore/test/ci/render-counts.test.tsmoves intotest/ci/render-performance.test.ts, and the "keeps zero render-count deviation" case goesKept, against the audit:
force-avd-creationand--flatten-debug-outputnegatives encode live choices. The second is the only check behind "leaving screenshots in place".ios-maestro-readinesspins the boot order relative toxcode-selectand the runner, which no other test does.Mutation check
Each break was applied alone, and the named test failed:
syncBannernever returns the backlog bannersync-contract.test.ts"surfaces a backlog only past the threshold and the grace window"SyncStripstops rendering the banner messagesync-strip.test.tsx"says offline in a sentence…" and othersuserskey headquery-cache.test.ts"keeps the screens a user lands on"genreskey headquery-cache.test.ts"keeps the screens a user lands on"continue-on-error: trueonnative-e2e-ios-lightno-flake-masks.test.tsdisable-ios-daemons.shios-accessibility.test.ts"turns on simulator accessibility before every iOS lane boots its simulator"render-performance.test.ts"rejects an introduced scenario with a different count"Footprint
No product code changes, so no bundle changes. Test code: 219 lines added, 358 deleted, net -139, including the moved render-count test.
pnpm checkpasses on Node 22.23.4.