Files
chromedevtools--chrome-devt…/tests/devtools/DevtoolsUtils.test.ts
T
2026-07-13 12:30:05 +08:00

73 lines
2.0 KiB
TypeScript

/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import assert from 'node:assert';
import {afterEach, describe, it} from 'node:test';
import sinon from 'sinon';
import {createTargetUniverse} from '../../src/devtools/DevtoolsUtils.js';
import {DevTools} from '../../src/third_party/index.js';
import {serverHooks} from '../server.js';
import {html, withBrowser} from '../utils.js';
describe('createTargetUniverse', () => {
const server = serverHooks();
afterEach(() => {
sinon.restore();
});
it('works with a real browser', async () => {
await withBrowser(async (browser, page) => {
const targetUniverse = await createTargetUniverse(page);
assert.notStrictEqual(targetUniverse, null);
});
});
it('ignores pauses', async () => {
await withBrowser(async (browser, page) => {
const targetUniverse = await createTargetUniverse(page);
assert.ok(targetUniverse);
const model = targetUniverse.target.model(DevTools.DebuggerModel);
assert.ok(model);
const pausedSpy = sinon.stub();
model.addEventListener('DebuggerPaused' as any, pausedSpy); // eslint-disable-line
const result = await page.evaluate('debugger; 1 + 1');
assert.strictEqual(result, 2);
sinon.assert.notCalled(pausedSpy);
});
});
it('disables network domain', async () => {
server.addHtmlRoute('/test', html`<div>Test</div>`);
await withBrowser(async (browser, page) => {
const targetUniverse = await createTargetUniverse(page);
assert.ok(targetUniverse);
const networkManager = targetUniverse.target.model(
DevTools.NetworkManager.NetworkManager,
);
assert.ok(networkManager);
const requestStartedSpy = sinon.stub();
networkManager.addEventListener(
DevTools.NetworkManager.Events.RequestStarted,
requestStartedSpy,
);
await page.goto(server.getRoute('/test'));
sinon.assert.notCalled(requestStartedSpy);
});
});
});