Final mobile sdk fixes#285
Draft
Alex Freas (akfreas) wants to merge 23 commits into
Draft
Conversation
…single @contentful/optimization-js-bridge under packages/universal that builds one shared src/index.ts into both native UMD bundles
…merged @contentful/optimization-js-bridge package
…generated by the merged bridge package
…imization-js-bridge so the JS bridge matches the iOS and Android native SDKs that already call them
…okes it via /usr/bin/sh which errors out with 'Illegal option -o pipefail' on the first line, terminating the script before any apk install or instrument run. The grep checks on the test-output log already detect instrumentation failures regardless of pipe-status propagation
…init renderer at declaration, mark afterEach as void, replace Object.create(null) cast with a type-predicate factory
…thResolvers in createDeferred, void the beforeEach/afterEach calls, init renderer at declaration, replace Object.create(null) cast with a type-predicate factory
…l and 0.4 ratio to named constants, destructure mock.mock.calls all the way through, init renderer at declaration, void the beforeEach/afterEach calls
… test: void the beforeEach call, extract the inner subscriber-notify forEach callback to a named arrow, capture the original destroy via Reflect.get with an explicit this-typed annotation to silence both prefer-destructuring and unbound-method
…eact-web test: add a void-this reference inside the mock destroy method to acknowledge class-methods-use-this, switch indexed array access to computed-key object destructuring
…r tests so they actually validate the mocked destroy/screen/states.eventStream shape at runtime instead of returning true unconditionally; the lint-clean type narrowing now matches what the runtime check claims
…ollView — the e2e Detox suite preview-panel-overrides.test.js was changed in 95d6afc to match the panel scroll container by that id but the SDK side of the rename never landed on final-mobile-sdk-fixes, so all 8 scenarios were failing with 'No views in hierarchy found matching: view.getTag() is preview-panel-scroll'
…eanup-order test that broke the CI Format Check; the cherry-picked lint commit was line-wrapped one way and prettier wants it the other way
…view panel and update Detox scenario 6 to tap by testID
…via sdk.page in the demo app so the override interceptor can be exercised end-to-end from Detox
…and reset taps in PreviewPanelOverridesTests scenario 3, because deactivation drops the audience to the bottom of the sorted list and UiAutomator's findObject returns a stale accessibility node from the now-off-screen position whose ACTION_CLICK silently no-ops on the Compose recomposed segment — verified locally by [bridge-sync] resetAudienceOverride firing after the scroll where previously only overrideAudience fired
…CI x86_64 Compose recomposition surfaces faster than local arm64 by reading every visibleBounds inside a try-catch and falling back to display extents — the stale-handle scenario 3 hit on the previous CI run originated from el.visibleBounds in the scroll loop, not from the click itself
…iebreak in sortAudiences and the mirrored isQualified-first ordering in the RN AudienceSection) so an audience keeps its row when its override flips, removing the spurious accessibility-tree staleness that the test framework hit when a deactivation demoted the audience-toggle off-screen between two taps — buildPreviewModel.test.ts updated to assert the new alphabetical-only ordering, the iOS and Android JS bridge UMD bundles regenerated from the merged source
…verridesTests and refresh the scenario 2 singleClick comment — both were narrowly justified by sortAudiences demoting an overridden audience off-screen between two taps; the panel now sorts by name only and that demotion no longer happens
…us-Compose accessibility-cache pollution that surfaces when multiple scenarios share a single am instrument session — waitAndTap now resolves the element AFTER the 1.5s idle wait (so the captured UiObject2 is not handed across the recomposition window in which Compose invalidates the underlying node id), forceStop polls 'pidof' until the app process is actually gone instead of relying on the kernel-side teardown lagging Thread.sleep(500), and relaunchClean bookends launchApp with two waitForIdle ticks so the new activity's accessibility tree has settled before the next findObject runs
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.
No description provided.