Refactor settings identifiers and UI test infrastructure#76
Merged
Conversation
Reuse/altitude: - Single-source the Settings tab labels in the shared UITestIdentifiers file (app tabItems + UI tests both reference them; the test bundle keeps only the framework-derived window-title aliasing). - selectSettingsTab now returns the retitled window proxy, so the two Advanced-pane tests scope their queries to it instead of repeating an app-wide lookup with a copy-pasted rationale. - Drop baseURL arguments from test helpers that restated the production defaults (APIKeyValidatorTests, AssemblyAITranscriberTests), removing a duplicated endpoint constant and two force-unwraps. Simplification: - UpdateCheckResult.upToDate no longer echoes the caller's own version back; UpdateCheckModel reads the version it already holds. - Extract the shared SettingsPane form chrome used by both settings tabs. - Remove the never-read stt field from SessionFixture. - Fix docs orphaned by this window's removals: BLURTENGINE.md now points at HTTPTransport/FakeHTTPTransport (MockURLProtocol is gone), the UI-test README describes the shared UITestIdentifiers file instead of the deleted mirroring scheme, AGENTS.md matches the new UpdateChecker shape, and release-publish.sh justifies the versioned DMG upload by its live consumers (SHA256SUMS + publish verification) instead of the removed mxcl/AppUpdater. - Correct GitHubRelease.dmgAsset's comment: the pipeline publishes the image under two names. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UVM9P8YuMv3phFzcM1gvCQ
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.
What & why
This change consolidates and clarifies how the app and UI tests share identifiers for the Settings window and its tabs:
Centralize Settings tab labels: Move
generalSettingsTabandadvancedSettingsTabconstants to the sharedUITestIdentifiersenum (previously only in test support), then reference them inSettingsWindowRootso the app and tests use the same strings by construction rather than duplicating them.Fix Settings window title aliasing: Update
settingsWindowTitlein test support to referencegeneralSettingsTabinstead of hardcoding "General", making the relationship explicit and maintainable.Improve
selectSettingsTabrobustness: Make the method return the retitled window proxy so callers can scope subsequent queries to it, avoiding stale element references when selecting a pane retitles the window. Update call sites inSettingsUITeststo use the returned proxy.Extract
SettingsPanecomponent: Create a reusable wrapper for the grouped, non-scrolling form layout shared by both settings tabs, reducing duplication and ensuring consistent sizing.Simplify test fixtures and API surfaces:
sttfield fromSessionFixture(transcriber behavior is fully determined at creation time)baseURLparameters fromAssemblyAITranscriberandAPIKeyValidatorinitializers (they have sensible defaults)UpdateCheckResult.upToDateto not carry redundantcurrentversion (already available to callers)Clarify documentation: Update comments in release scripts and test support to better explain the rationale for asset naming and checksums handling.
How it was tested
scripts/check.shpassesselectSettingsTabUpdateCheckResultenumhttps://claude.ai/code/session_01UVM9P8YuMv3phFzcM1gvCQ