blob: bb7b3ce38534709067a457307c25ebbc4f0b21a5 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {assert} from 'chai';
// eslint-disable-next-line @devtools/es-modules-import
import * as SDK from './sdk.js';
describe('DebuggerModel API Test', () => {
it('verifies that skipAllPauses setting works when navigating to a page with a debugger stmt',
async ({inspectedPage, universe}) => {
const primaryTarget = universe.targetManager.primaryPageTarget();
assert.isNotNull(primaryTarget, 'Primary page target should exist');
const debuggerModel = primaryTarget.model(SDK.DebuggerModel.DebuggerModel);
assert.isNotNull(debuggerModel, 'DebuggerModel should exist');
const skipAllPausesSetting = universe.settings.resolve(SDK.DebuggerModel.skipAllPausesSettingDescriptor);
skipAllPausesSetting.set(true);
let debuggerPausedFired = false;
const listener = (): void => {
debuggerPausedFired = true;
};
debuggerModel.addEventListener(SDK.DebuggerModel.Events.DebuggerPaused, listener);
await inspectedPage.goToHtml(`
<!DOCTYPE html>
<html>
<body>
<script>
debugger;
</script>
</body>
</html>
`);
assert.isFalse(debuggerPausedFired, 'DebuggerPaused event should not fire when skipAllPauses is enabled');
assert.isFalse(debuggerModel.isPaused(), 'DebuggerModel should not be paused when skipAllPauses is enabled');
debuggerModel.removeEventListener(SDK.DebuggerModel.Events.DebuggerPaused, listener);
});
});