reset
Обзор
Очищает историю вызовов и все правила изменения запросов и ответов, сохраняя активный перехват. Позволяет повторно использовать мок с прежним шаблоном URL и фильтрами.
Использование
mock.reset()
Параметры
У команды нет параметров.
Результат
Тот же объект мока синхронно.
Ограничения
Нужна WebDriver BiDi-сессия (webSocketUrl: true): в Classic/CDP-реализации мока этого метода нет. Примеры явно подписываются на сетевые события в каждой сессии; см. ограничение подписки. Когда мок больше не нужен, вызовите mock.restore() в finally.
clear() удаляет только историю и сохраняет правила. reset() дополнительно удаляет правила, включая перенаправления и прерывания. restore() удаляет перехват, после чего новые переопределения у этого мока недоступны. Сброс не отменяет уже отправленный запрос или доставленный ответ.
Пример
Укажите в baseUrl локальный HTTP-сайт. / возвращает HTML. /api/items возвращает JSON: source: "original", метод запроса в method и заголовок запроса x-example в header (null, если заголовка нет). /api/other возвращает те же поля с source: "redirected". Примеры выполняют настоящие запросы к этим обработчикам.
const assert = require("node:assert/strict");
it("mock.reset: remove overrides but keep the mock usable", async ({ browser }) => {
await browser.url("/");
await browser.sessionSubscribe({
events: ["network.beforeRequestSent", "network.responseStarted"],
});
const mock = await browser.mock("/api/items");
try {
mock.request({ headers: { "x-example": "overridden" } });
const first = await browser.execute(async () =>
(await fetch("/api/items", { cache: "no-store" })).json(),
);
assert.equal(first.header, "overridden");
await mock.waitForResponse({ timeout: 3000 });
assert.equal(mock.reset(), mock);
assert.equal(mock.calls.length, 0);
const second = await browser.execute(async () =>
(await fetch("/api/items", { cache: "no-store" })).json(),
);
assert.equal(second.header, null);
await mock.waitForResponse({ timeout: 3000 });
assert.equal(mock.calls.length, 1);
mock.respond({ source: "mocked" });
const third = await browser.execute(async () =>
(await fetch("/api/items", { cache: "no-store" })).json(),
);
assert.equal(third.source, "mocked");
mock.reset();
const fourth = await browser.execute(async () =>
(await fetch("/api/items", { cache: "no-store" })).json(),
);
assert.equal(fourth.source, "original");
} finally {
await mock.restore();
}
});