test(polyfill): Add dual-environment testing for querySelector polyfill #2938
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.
Summary
This PR adds comprehensive test infrastructure to validate the querySelector/querySelectorAll polyfill from @jitsi/js-utils (v2.6.7) by running all existing tests in both native browser and React Native simulation environments.
Motivation
React Native doesn't provide native querySelector/querySelectorAll APIs. We've implemented a polyfill in js-utils, and this PR ensures all existing lib-jitsi-meet code works correctly with the polyfill before deploying to React Native.
Changes
test-setup-polyfill.ts: Global test setup that overrides native querySelector APIs with the polyfill implementationkarma-polyfill.conf.js: Karma configuration for running tests with polyfill activenpm run test- Runs both native and polyfill tests sequentiallynpm run test:native- Tests with native browser querySelectornpm run test:polyfill- Tests with querySelector polyfill (React Native simulation)Test Results
All 384 existing tests pass in both environments:
This confirms the polyfill correctly handles all real-world XMPP/Jingle XML processing scenarios including:
:scope >direct child selectorsTesting Strategy
Dual-environment approach ensures compatibility:
Future Work
This infrastructure will automatically validate all future code changes work in both web and mobile environments.
xmldom Consideration
No additional testing with xmldom is needed because: