restore
Обзор
Удаляет сетевой перехватчик, очищает историю и отключает подмены. Следующие запросы идут без этого мока. Это не browser.restore: восстановление эмуляции — другая команда.
Дождитесь restore() перед следующим запросом или завершением теста. В BiDi восстановленный мок нельзя переиспользовать: создайте новый через browser.mock. Для сохранения перехватчика используйте reset.
Использование
await mock.restore()
Параметры и результат
Аргументов нет. Возвращает Promise: в BiDi он разрешается тем же объектом мока, в Classic/CDP — без полезного значения. Используйте команду для очистки в finally, в том числе когда проверка теста завершилась ошибкой.
Пример
Пример использует Chrome с WebDriver BiDi. Укажите в baseUrl адрес тестового HTTP-сервера: / отдает HTML-страницу, а /api/items — JSON с полем source: "original" и статусом 200. Явная подписка на события нужна для новых сессий в одном воркере в WDIO 9.6.2.
const assert = require("node:assert/strict");
it("mock.restore: remove interception before the next request", async ({ browser }) => {
await browser.url("/");
await browser.sessionSubscribe({
events: ["network.beforeRequestSent", "network.responseStarted"],
});
const mock = await browser.mock("/api/items");
try {
mock.respond({ source: "mocked" });
const body = await browser.execute(async () =>
(await fetch("/api/items", { cache: "no-store" })).json(),
);
assert.equal(body.source, "mocked");
} finally {
await mock.restore();
}
const body = await browser.execute(async () =>
(await fetch("/api/items", { cache: "no-store" })).json(),
);
assert.equal(body.source, "original");
assert.equal(mock.calls.length, 0);
assert.throws(() => mock.respond({ source: "unused" }), /restored mock/);
});
Связанные команды
Источники
Материал учитывает исходную статью WebdriverIO.