Skip to content

Refactor Karma/Jasmine integration tests to use mocks and enable all disabled tests#1584

Merged
davidjbradshaw merged 8 commits into
devfrom
copilot/sub-pr-1570
Feb 11, 2026
Merged

Refactor Karma/Jasmine integration tests to use mocks and enable all disabled tests#1584
davidjbradshaw merged 8 commits into
devfrom
copilot/sub-pr-1570

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 11, 2026

37 integration tests were disabled across 8 spec files, primarily because they relied on real iframe creation which is unreliable in CI (timing issues, cross-origin restrictions, DOM rendering dependencies).

Changes

Test Refactoring

  • Converted disabled tests from loadIFrame() pattern to mock-based approach using existing createMsg() and mockMsgListener() helpers
  • Added checkOrigin: false to test configs to avoid origin validation with mocked sources
  • Replaced asynchronous iframe loading/initialization with direct mock message injection
  • Updated assertions to match current API behavior (e.g., manualResize vs deprecated size message type)

Files Modified

  • spec/_initSpec.js - Enabled 6 tests (entire suite)
  • spec/anchorSpec.js - Enabled 3 tests (entire suite)
  • spec/childSpec.js - Enabled 7 tests (setTargetOrigin, calculation methods, performance throttling)
  • spec/getPageInfoSpec.js - Enabled 1 test suite
  • spec/initDomSpec.js - Enabled 1 test
  • spec/initJQuerySpec.js - Enabled 1 test
  • spec/parentSpec.js - Enabled 9 tests (4 suites: reset, late load, resize height)
  • spec/sendMessageSpec.js - Enabled 2 tests

CI Integration

  • Added .github/workflows/integration-tests.yml for dedicated integration test runs on Node.js 20.x/22.x

Example Pattern

Before (unreliable):

xit('send message to iframe', (done) => {
  loadIFrame('iframe600.html')  // Loads real iframe, waits for DOM
  const iframe = iframeResize({ 
    onReady: (iframe) => {
      iframe.iframeResizer.sendMessage('test')
      // Wait for actual postMessage...
    }
  })[0]
})

After (deterministic):

it('mock incoming message', (done) => {
  const iframe = iframeResize({
    checkOrigin: false,  // Accept mock sources
    onMessage: (data) => {
      expect(data.message).toBe('test:test')
      done()
    },
  })[0]
  
  mockMsgFromIFrame(iframe, 'message:"test:test"')  // Direct injection
})

All 72 tests now pass (~3s execution vs previous timing-dependent behavior).


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 6 commits February 11, 2026 10:19
… using mocks

Co-authored-by: davidjbradshaw <591634+davidjbradshaw@users.noreply.github.com>
Co-authored-by: davidjbradshaw <591634+davidjbradshaw@users.noreply.github.com>
… passing

Co-authored-by: davidjbradshaw <591634+davidjbradshaw@users.noreply.github.com>
Co-authored-by: davidjbradshaw <591634+davidjbradshaw@users.noreply.github.com>
- Create dedicated integration-tests.yml workflow
- Test on Node.js 20.x and 22.x
- Build test artifacts and run karma integration tests
- Upload coverage results as artifacts
- All 72 integration tests now passing

Co-authored-by: davidjbradshaw <591634+davidjbradshaw@users.noreply.github.com>
- Improve test assertions in childSpec.js for calculation method tests
- Add better comments explaining timing requirements in parentSpec.js
- Revert over-aggressive throttle test assertion
- Keep fallback timeout in anchorSpec.js for test reliability
- All 72 tests passing

Co-authored-by: davidjbradshaw <591634+davidjbradshaw@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Feb 11, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4505 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-17473768 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16696310580768084996,17045024722807230057,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • android.clients.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5567 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-10113383 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14204854842959464521,7411043939944336708,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • clients2.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4505 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-17473768 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16696310580768084996,17045024722807230057,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • clientservices.googleapis.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4505 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-17473768 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16696310580768084996,17045024722807230057,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • optimizationguide-pa.googleapis.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5567 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-10113383 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14204854842959464521,7411043939944336708,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • redirector.gvt1.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4505 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-17473768 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16696310580768084996,17045024722807230057,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • safebrowsingohttpgateway.googleapis.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4505 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-17473768 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16696310580768084996,17045024722807230057,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • www.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4248 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-20607875 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17272957463441048211,3689257448864237888,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-20607875 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications http://localhost:9876/?id=20607875 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4505 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-17473768 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16696310580768084996,17045024722807230057,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title [WIP] Refactor iframe-resizer monorepo to V6 structure Refactor Karma/Jasmine integration tests to use mocks and enable all disabled tests Feb 11, 2026
Copilot AI requested a review from davidjbradshaw February 11, 2026 10:51
@davidjbradshaw davidjbradshaw marked this pull request as ready for review February 11, 2026 11:22
@davidjbradshaw davidjbradshaw merged commit e400812 into dev Feb 11, 2026
6 checks passed
@davidjbradshaw davidjbradshaw deleted the copilot/sub-pr-1570 branch February 11, 2026 11:24
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.

2 participants