setUp(bundles:) — multi-bundle YAML for view-test harnesses - #138
Merged
Conversation
… harnesses ViewModelDisplayTestCase/ViewModelViewTestCase can now localize from several bundles merged into one store; the single-bundle setUp delegates to the new form. DocC on both overloads carries the no-YAML/key-echo contract. Skill docs (ui-tests-generator, api-catalog) name both forms; plugin 2.30.0. Also: Localizable.text is now @mainactor.
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
ViewModelDisplayTestCase/ViewModelViewTestCasegainsetUp(bundles: [Bundle], ...): the harness localizes from several bundles merged into one store — the test harness's own YAML plus another target's resources. The existing single-bundle:form remains and delegates to it, so current harnesses are untouched.The key-echo contract from #137 applies across the merged store: untranslated keys resolve to key-derived placeholder text (elements keep their surface area), a harness with no YAML at all is supported, and the DocC callout stating this now sits on both overloads.
Also included:
Localizable.textis now@MainActor(the SwiftUI resolver view it constructs belongs on the main actor; SwiftUIbodycall sites are unaffected).Docs
setUp(bundles:)documents when to reach for it, with a two-bundle example; cross-links the single-bundle form.fosmvvm-ui-tests-generator(SKILL.md key points + reference.md note) and the api-catalog display-view entry name both forms.[Unreleased]entries for both changes; plugin 2.30.0.Testing
Full build clean; existing
FOSTestingUITests/ suite unaffected (the merged-store path reusesCollection<Bundle>.yamlLocalization, whose empty-set case still throwsnoResourcePathsand is caught for the zero-YAML echo fallback).Releasing as 0.13.2.