docs: fix leftover broken Node.js code snippets (#23919)
This commit is contained in:
parent
9980f054bc
commit
138e143030
|
|
@ -98,23 +98,23 @@ Here's how to polyfill `waitForAngular` function in Playwright Test:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
async function waitForAngular(page) {
|
async function waitForAngular(page) {
|
||||||
const clientSideScripts = require('protractor/built/clientsidescripts.js');
|
const clientSideScripts = require('protractor/built/clientsidescripts.js');
|
||||||
|
|
||||||
async function executeScriptAsync(page, script, ...scriptArgs) {
|
async function executeScriptAsync(page, script, ...scriptArgs) {
|
||||||
await page.evaluate(`
|
await page.evaluate(`
|
||||||
new Promise((resolve, reject) => {
|
new Promise((resolve, reject) => {
|
||||||
const callback = (errMessage) => {
|
const callback = (errMessage) => {
|
||||||
if (errMessage)
|
if (errMessage)
|
||||||
reject(new Error(errMessage));
|
reject(new Error(errMessage));
|
||||||
else
|
else
|
||||||
resolve();
|
resolve();
|
||||||
};
|
};
|
||||||
(function() {${script}}).apply(null, [...${JSON.stringify(scriptArgs)}, callback]);
|
(function() {${script}}).apply(null, [...${JSON.stringify(scriptArgs)}, callback]);
|
||||||
})
|
})
|
||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
|
|
||||||
await executeScriptAsync(page, clientSideScripts.waitForAngular, '');
|
await executeScriptAsync(page, clientSideScripts.waitForAngular, '');
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
If you don't want to keep a version protractor around, you can also use this simpler approach using this function (only works for Angular 2+):
|
If you don't want to keep a version protractor around, you can also use this simpler approach using this function (only works for Angular 2+):
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ self.addEventListener('fetch', event => {
|
||||||
event.respondWith(responsePromise);
|
event.respondWith(responsePromise);
|
||||||
});
|
});
|
||||||
|
|
||||||
self.addEventListener('activate', (event) => {
|
self.addEventListener('activate', event => {
|
||||||
event.waitUntil(clients.claim());
|
event.waitUntil(clients.claim());
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
@ -180,9 +180,9 @@ Consider the code snippets below to understand Playwright's view into the Reques
|
||||||
|
|
||||||
|
|
||||||
```js title="complex-service-worker.js"
|
```js title="complex-service-worker.js"
|
||||||
self.addEventListener('install', function (event) {
|
self.addEventListener('install', function(event) {
|
||||||
event.waitUntil(
|
event.waitUntil(
|
||||||
caches.open('v1').then(function (cache) {
|
caches.open('v1').then(function(cache) {
|
||||||
// 1. Pre-fetches and caches /addressbook.json
|
// 1. Pre-fetches and caches /addressbook.json
|
||||||
return cache.add('/addressbook.json');
|
return cache.add('/addressbook.json');
|
||||||
})
|
})
|
||||||
|
|
@ -190,22 +190,23 @@ self.addEventListener('install', function (event) {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Opt to handle FetchEvent's from the page
|
// Opt to handle FetchEvent's from the page
|
||||||
self.addEventListener('fetch', (event) => {
|
self.addEventListener('fetch', event => {
|
||||||
event.respondWith(
|
event.respondWith(
|
||||||
(async () => {
|
(async () => {
|
||||||
// 1. Try to first serve directly from caches
|
// 1. Try to first serve directly from caches
|
||||||
let response = await caches.match(event.request);
|
const response = await caches.match(event.request);
|
||||||
if (response) return response;
|
if (response) return response;
|
||||||
|
|
||||||
// 2. Re-write request for /foo to /bar
|
// 2. Re-write request for /foo to /bar
|
||||||
if (event.request.url.endsWith('foo')) return fetch('./bar');
|
if (event.request.url.endsWith('foo')) return fetch('./bar');
|
||||||
|
|
||||||
// 3. Prevent tracker.js from being retrieved, and returns a placeholder response
|
// 3. Prevent tracker.js from being retrieved, and returns a placeholder response
|
||||||
if (event.request.url.endsWith('tracker.js'))
|
if (event.request.url.endsWith('tracker.js')) {
|
||||||
return new Response('console.log('no trackers!')', {
|
return new Response('console.log("no trackers!")', {
|
||||||
status: 200,
|
status: 200,
|
||||||
headers: { 'Content-Type': 'text/javascript' },
|
headers: { 'Content-Type': 'text/javascript' },
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 4. Otherwise, fallthrough, perform the fetch and respond
|
// 4. Otherwise, fallthrough, perform the fetch and respond
|
||||||
return fetch(event.request);
|
return fetch(event.request);
|
||||||
|
|
@ -213,7 +214,7 @@ self.addEventListener('fetch', (event) => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
self.addEventListener('activate', (event) => {
|
self.addEventListener('activate', event => {
|
||||||
event.waitUntil(clients.claim());
|
event.waitUntil(clients.claim());
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -327,7 +327,7 @@ async function globalSetup(config: FullConfig) {
|
||||||
await context.storageState({ path: storageState as string });
|
await context.storageState({ path: storageState as string });
|
||||||
await context.tracing.stop({
|
await context.tracing.stop({
|
||||||
path: './test-results/setup-trace.zip',
|
path: './test-results/setup-trace.zip',
|
||||||
})
|
});
|
||||||
await browser.close();
|
await browser.close();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await context.tracing.stop({
|
await context.tracing.stop({
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue