Skip to content

Final mobile sdk fixes#281

Closed
Alex Freas (akfreas) wants to merge 65 commits into
mainfrom
final-mobile-sdk-fixes
Closed

Final mobile sdk fixes#281
Alex Freas (akfreas) wants to merge 65 commits into
mainfrom
final-mobile-sdk-fixes

Conversation

@akfreas
Copy link
Copy Markdown
Collaborator

No description provided.

…re-sort doesn't misroute the coordinate-click fallback
…o Compose fling settles before the find-and-check
… sortAudiences reorders don't reuse Compose slots and route audience-toggle clicks to the wrong audience
…accessibility tree after the panel's sortAudiences-driven re-sort
… clause) so override toggles don't reorder the list and race the Android accessibility tree
…via sdk.page in the demo app so the override interceptor can be exercised end-to-end from Detox
…ate-unqualified-audience, per-variant reset, refresh-button override persistence, and destroy/remount override clearing
…reviewPanelOverridesTests XCUITest suite so the JS-bridge proof covers the new override surface
…ofile and live-updates context in the live-updates demo screen and main app so the displayed state reflects the real SDK and clearProfileState test isolation holds
…ify and assert waitForTextChangeById on sections that should re-resolve and waitForTextEqualsById on sections that should stay locked so the assertions actually exercise SDK variant updates
…aunch after asserting baseline so each test proves the SDK swaps the same entry to its variant and the unidentified baseline was a real audience decision rather than a no-op fall-through
…d at the first event and assert it is unchanged at the next event so the stable-viewId and pause/resume tests prove cycle stability instead of reading a single overwritten value
…ine cycle and relaunch so each test gates on the SDK resolving the identified nested variant rather than on static text and local-state buttons that pass against a no-op SDK
…r the identified relaunch since App.tsx now derives the identify/reset control from the SDK profile so a rehydrated identified app no longer shows identify-button
…tended-view-tracking, live-updates, and offline-behavior Detox suites so the platform-agnostic contract reflects the new identify/relaunch, viewId-stability, and entry-id text-change assertions
…udocode contracts so each iOS test mirrors the hardened RN assertions, adding a waitForTextChange helper and aligning element identifiers with the shared contract
… local view state so a rehydrated identified profile shows the reset button after a cold start and the control only flips once identify has resolved and persisted
… than the baseline so identified users recurse into the variant's nested children, and expose entry-text-<id> accessibility identifiers on nested entry text
…m component-stats-<id> to entry-stats-<id> to match the shared pseudocode contract
…n to *-optimization and wire the simulate-preview-panel control to client.setPreviewPanelOpen so the panel drives live-update mode
…ested identifiers such as entry-text-<id> stay individually queryable instead of being collapsed and overridden by the wrapper identifier
…resume so a still-visible element starts a fresh tracking cycle after the app foregrounds without waiting for an external geometry callback
…e depth so variant nested children under the nt_experiences chain are fully expanded, and stop PreviewPanelOverridesTests relaunching with a stale --reset argument that wiped the identified profile
…n iOS optimized entries so an open preview panel forces live updates even on a component configured with liveUpdates false
…ntrolled scrolling so the dwell and lifecycle timing assertions are deterministic, adding scroll helpers and a content-entry card-height constant
…with a comment explaining it is the Equatable conformance for SwiftUI removeDuplicates, not a duplicate of core's change determination
…android-zipline-bridge package directory to android-quickjs-bridge and the ZiplineContextManager Kotlin class to QuickJsContextManager, dropping the dead app.cash.zipline ProGuard keep rule, since the runtime engine is QuickJS and the project has no Zipline dependency
…ful/optimization-js-bridge under packages/universal, building a single TypeScript source into per-platform UMD bundles that differ only in the analytics library.name, and remove the duplicated ios-jsc-bridge and android-quickjs-bridge packages
… @contentful/optimization-js-bridge package, keeping the iOS and Android native E2E filters triggering on bridge changes after the move into packages/universal
…aged stops reformatting the minified artifact, and restore optimization-android-bridge.umd.js to its minified build output
…lient so the Kotlin SDK exposes the custom-flag and merge-tag bridge methods that iOS already has
…ewTrackingController resume so a still-visible element restarts a tracking cycle after the app returns to the foreground
…s value instead of waiting for an identified profile, so non-live components freeze correctly and ignore later live-update emissions
…e is available so a flag-view component event is emitted, matching the iOS app
…xt entry fields through a new RichText helper backed by the SDK getMergeTagValue method
…ant UI tests instead of asserting on it immediately
…swipes and a fixed content-entry card height so entries dwell and scroll predictably
…rce-stop and relaunch the app without killing the instrumentation runner
…mulate button so default and locked sections switch to live updates while it is open
…ract, renaming cases and replacing fixed sleeps with explicit element waits
…eact Native Android E2E run so tests never bundle stale packaged JS
… to 180dp pushed the analytics section off-screen and broke UI tests that read it without scrolling
…f from AnalyticsEventDisplay so the one-shot flag-view event emitted by subscribeToFlag is captured
…I event-store collector that subscribes shortly after startup still receives the one-shot flag-view event
…irror the iOS XCUITest suite, porting momentum-free controlled-scroll helpers and a manual scroll-to-element loop so dwell and lifecycle assertions are deterministic
…Object2 handle that goes stale mid-recomposition is re-queried instead of crashing the test
…omentum scrolls so a transiting entry never dwells long enough to start a spurious view-tracking cycle, reserving momentum-free scrolling for precise positioning
…so visibility callbacks sample a jiggle, scroll view-id and duration stats on-screen before reading them, and dwell before the navigation-unmount test so its cycle is past threshold
…ng entries never dwell, and run the cycle-reset jiggle momentum-free so the SDK samples the entry crossing the tracked band
…lumn instead of a LazyColumn so every entry and analytics stat stays composed and readable without scrolling, mirroring the iOS reference app and removing view-tracking cycle disruption from stat reads
…-out and back instead of a tiny jiggle, since only a full scroll-out reliably crosses the view-tracking visibility threshold
… below-the-fold entry scenario cannot be constructed on the emulator viewport, leaving that shared behavior covered by the iOS suite
…ne case, since reading view-tracking stats requires UiAutomator scrolling that disturbs the cycle under measurement, leaving the behavior covered by the iOS XCUITest suite
@wiz-inc-38d59fb8d7
Copy link
Copy Markdown

Wiz Scan Summary

Scanner Findings
Vulnerability Finding Vulnerabilities -
Data Finding Sensitive Data -
Secret Finding Secrets -
IaC Misconfiguration IaC Misconfigurations -
SAST Finding SAST Findings 1 Medium 1 Low
Software Management Finding Software Management Findings -
Total 1 Medium 1 Low

View scan details in Wiz

To detect these findings earlier in the dev lifecycle, try using Wiz Code VS Code Extension.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant