Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/browser/commands/getPuppeteer.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ module.exports.default = browser => {

isSettled = true;

browser.markAsBroken();
browser.markAsBroken({ stubBrowserCommands: false });

reject(new Error(`Unable to establish a CDP connection in ${PUPPETEER_REJECT_TIMEOUT} ms`));
}, PUPPETEER_REJECT_TIMEOUT);
Expand Down
6 changes: 4 additions & 2 deletions src/browser/existing-browser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,14 +148,16 @@ export class ExistingBrowser extends Browser {
return this;
}

markAsBroken(): void {
markAsBroken({ stubBrowserCommands = false } = {}): void {
if (this.state.isBroken) {
return;
}

this.applyState({ isBroken: true });

this._stubCommands();
if (stubBrowserCommands) {
this._stubCommands();
}
}

quit(): void {
Expand Down
2 changes: 1 addition & 1 deletion src/worker/runner/browser-pool.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ module.exports = class BrowserPool {
throw error;
}

browser.markAsBroken();
browser.markAsBroken({ stubBrowserCommands: true });
this.freeBrowser(browser);

throw Object.assign(error, { meta: browser.meta });
Expand Down
4 changes: 2 additions & 2 deletions src/worker/runner/test-runner/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ module.exports = class TestRunner {
// 1. before afterEach hook to prevent working with broken sessions
// 2. after collecting all assertView errors (including afterEach section)
if (!this._browser.state.isBroken && isSessionBroken(error, this._config)) {
this._browser.markAsBroken();
this._browser.markAsBroken({ stubBrowserCommands: true });
}

testplaneCtx.assertViewResults = assertViewResults ? assertViewResults.toRawObject() : [];
Expand Down Expand Up @@ -186,7 +186,7 @@ module.exports = class TestRunner {
}

if (isSessionBroken(error, this._config)) {
this._browser.markAsBroken();
this._browser.markAsBroken({ stubBrowserCommands: true });
}

try {
Expand Down
41 changes: 26 additions & 15 deletions test/src/browser/existing-browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -1106,12 +1106,34 @@ describe("ExistingBrowser", () => {
assert.equal(browser.state.isBroken, true);
});

it("should not stub session commands by default", async () => {
session.commandList = ["foo"];
session.foo = sandbox.stub().resolves("foo");
const browser = await initBrowser_();

browser.markAsBroken();

const result = await session.foo();
assert.equal(result, "foo");
});

it("should stub session commands if 'stubBrowserCommands' param was used", async () => {
session.commandList = ["foo"];
session.foo = sandbox.stub().resolves("foo");
const browser = await initBrowser_();

browser.markAsBroken({ stubBrowserCommands: true });

const result = await session.foo();
assert.isUndefined(result);
});

it('should not stub "deleteSession" command', async () => {
session.commandList = ["deleteSession"];
session.deleteSession = () => "deleted";
const browser = await initBrowser_();

browser.markAsBroken();
browser.markAsBroken({ stubBrowserCommands: true });

assert.equal(session.deleteSession(), "deleted");
});
Expand All @@ -1121,30 +1143,19 @@ describe("ExistingBrowser", () => {
session.isProp = true;
const browser = await initBrowser_();

browser.markAsBroken();
browser.markAsBroken({ stubBrowserCommands: true });

assert.isTrue(session.isProp);
});

it("should stub session commands", async () => {
session.commandList = ["foo"];
session.foo = sandbox.stub().resolves("foo");
const browser = await initBrowser_();

browser.markAsBroken();

const result = await session.foo();
assert.isUndefined(result);
});

it("should not mark session as broken twice", async () => {
session.commandList = ["foo"];
session.foo = () => "foo";
const browser = await initBrowser_();

browser.markAsBroken();
browser.markAsBroken({ stubBrowserCommands: true });
session.overwriteCommand.resetHistory();
browser.markAsBroken();
browser.markAsBroken({ stubBrowserCommands: true });

assert.notCalled(session.overwriteCommand);
});
Expand Down
2 changes: 1 addition & 1 deletion test/src/worker/runner/browser-pool.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ describe("worker/browser-pool", () => {
.getBrowser({ browserId: "bro-id" })
.catch(e => e);

assert.calledOnceWith(browser.markAsBroken);
assert.calledOnceWith(browser.markAsBroken, { stubBrowserCommands: true });
});

it("should free browser", async () => {
Expand Down
10 changes: 5 additions & 5 deletions test/src/worker/runner/test-runner/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ describe("worker/runner/test-runner", () => {

await run_({ runner }).catch(() => {});

assert.calledOnce(browser.markAsBroken);
assert.calledOnceWith(browser.markAsBroken, { stubBrowserCommands: true });
});
});

Expand All @@ -590,7 +590,7 @@ describe("worker/runner/test-runner", () => {

await run_({ runner }).catch(() => {});

assert.calledOnce(browser.markAsBroken);
assert.calledOnceWith(browser.markAsBroken, { stubBrowserCommands: true });
});
});

Expand All @@ -616,7 +616,7 @@ describe("worker/runner/test-runner", () => {

await run_({ runner }).catch(() => {});

assert.calledOnce(browser.markAsBroken);
assert.calledOnceWith(browser.markAsBroken, { stubBrowserCommands: true });
});
});

Expand All @@ -632,7 +632,7 @@ describe("worker/runner/test-runner", () => {

await run_({ runner }).catch(() => {});

assert.calledOnce(browser.markAsBroken);
assert.calledOnceWith(browser.markAsBroken, { stubBrowserCommands: true });
});
});

Expand All @@ -655,7 +655,7 @@ describe("worker/runner/test-runner", () => {

await run_({ runner }).catch(() => {});

assert.calledOnce(browser.markAsBroken);
assert.calledOnceWith(browser.markAsBroken, { stubBrowserCommands: true });
});
});
});
Expand Down
Loading