-
Notifications
You must be signed in to change notification settings - Fork 71
feat: SDKE-529 Implement Verification Script #454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
denischilik
merged 3 commits into
main
from
feat/SDKE-529-Implement-Verification-Script
Nov 18, 2025
Merged
feat: SDKE-529 Implement Verification Script #454
denischilik
merged 3 commits into
main
from
feat/SDKE-529-Implement-Verification-Script
Nov 18, 2025
Conversation
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
feat: add automated verification script for WireMock integration tests Auto-applies user-friendly mappings and validates all API interactions. refactor: extract common shell functions to common.sh Removes code duplication between recording and verification scripts. refactor: move wait_for_wiremock to common.sh refactor: generalize start_wiremock with record/verify mode parameter refactor: centralize WireMock configuration in common.sh fix: use json-unit.ignore for dynamic fields in identify mapping fix: simplify unused mappings check to avoid shell regex errors remove keys
07d2f22 to
f7a70fd
Compare
- Add build_framework() function to common.sh to compile SDK as xcframework - Update Project.swift to use local xcframework instead of Swift Package - Update both run scripts to build framework before generating project - Framework is built for iOS Simulator only for faster integration testing - Stored in temp_artifacts/mParticle_Apple_SDK.xcframework
- Update README overview to explain xcframework compilation - Add build steps to script descriptions - Document temp_artifacts directory and build artifacts - Add temp_artifacts/ and archives/ to .gitignore - Clarify that SDK is rebuilt fresh on each test run
Contributor
Author
✨ Latest Changes: XCFramework Build SystemMigrated from Swift Package dependency to xcframework-based build system for integration tests. Key ChangesBuild Process (commits 7936730 and ac8b48f):
Benefits:
Documentation:
This ensures the verification script has full control over the SDK build and can guarantee reproducible test environments. |
jamesnrokt
approved these changes
Nov 17, 2025
thomson-t
approved these changes
Nov 18, 2025
mparticle-automation
added a commit
that referenced
this pull request
Jan 14, 2026
### Bug Fixes * Crash on launch when upgrading due to NSInvalidUnarchiveOperationException ([#469](#469)) ([5241667](5241667)) * Flakey test testLoggingCommerceEventToUpload ([#475](#475)) ([6cb3475](6cb3475)) * Handle Parenthesis in Release Notes ([#487](#487)) ([a9ab226](a9ab226)) * Rokt User Attribute Mapping Fix ([#478](#478)) ([9f56a05](9f56a05)) * Simulator not found failing CI ([#472](#472)) ([33df791](33df791)) * Use awk for changelog ([#488](#488)) ([16fa905](16fa905)) ### Features * Add IntegrationTests project with Tuist and WireMock setup ([#451](#451)) ([a1e51fc](a1e51fc)) * Add trunk rule to detect mParticle API keys ([#481](#481)) ([d78a8ec](d78a8ec)) * Implement Manual Scene Delegate Support ([#462](#462)) ([71fe8b7](71fe8b7)) * Implement Manual SceneDelegate Support ([#453](#453)) ([e5cbe84](e5cbe84)) * SDKE-528 Implement Script To Preprocess Request Recordings ([#452](#452)) ([69a8ed3](69a8ed3)) * SDKE-529 Implement Verification Script ([#454](#454)) ([d5e25e0](d5e25e0)) ### Reverts * Revert "feat: Implement Manual SceneDelegate Support ([#453](#453))" ([#455](#455)) ([d13601e](d13601e)) ### Tests * add test coverage for application notifications methods ([#436](#436)) ([d2243aa](d2243aa)), closes [#434](#434) ### BREAKING CHANGES * Static methods in MPNotificationController have been fully removed. Use the new instance-based MPNotificationControllerProtocol implementation instead. DEPRECATED: Static methods in MPStateMachine are deprecated and will be removed in a future release. Migrate to the new instance-based approach. * Create mocks * Update AppEnvironmentProviderMock.swift * covered pushNotificationToken * covered setPushNotificationToken * Create protocol for MPAppNotificationHandler * Create MPAppNotificationHandlerMock * replace singleton usage of appNotificationHandler * covered didReceiveRemoteNotification * covered didFailToRegisterForRemoteNotificationsWithError * covered didRegisterForRemoteNotificationsWithDeviceToken * covered handleActionWithIdentifierForRemoteNotification * covered handleActionWithIdentifierForRemoteNotificationWithResponseInfo * covered openURL methods * covered continueUserActivity * Update MPAppNotificationHandlerMock.swift
Contributor
|
🎉 This PR is included in version 9.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
Background
Integration testing with WireMock requires manual validation of API interactions. Previously, after recording API requests, there was no automated way to verify that the SDK correctly replays against WireMock mappings. Additionally, user-friendly mapping edits (using
${json-unit.ignore}for dynamic fields) needed to be manually applied to WireMock JSON files, which was error-prone and time-consuming.What Has Changed
Automated Verification Script
Added the run_clean_integration_tests.sh script that rebuilds the SDK as an xcframework and updates WireMock mappings.
Shared Utilities Refactor
Extracted shared logic into common.sh.
Improved WireMock Mappings
Replaced hardcoded API keys with regex patterns.
Checklist
Reference Issue (For employees only. Ignore if you are an outside contributor)