This commit is contained in:
Simon Knott 2025-01-31 17:08:01 +01:00
parent 3ea46de549
commit c08ee8f441
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC

View file

@ -773,4 +773,42 @@ export default defineConfig({
playwrightMockingProxy
]
});
```
```
#### Nuxt
```ts
// server/plugins/playwright-mocking-proxy.ts
import { getGlobalDispatcher, setGlobalDispatcher } from "undici"
import { useEvent, getRequestHeader } from '#imports'
export default defineNitroPlugin(() => {
if (process.env.NODE_ENV !== 'test')
return;
const proxiedDispatcher = getGlobalDispatcher().compose(dispatch => (opts, handler) => {
const isInternal = opts.path.startsWith("/__nuxt")
const proxy = getRequestHeader(useEvent(), 'x-playwright-proxy')
if (!proxy || isInternal)
return dispatch(opts, handler)
const newURL = new URL(decodeURIComponent(proxy) + opts.origin + opts.path);
opts.origin = newURL.origin;
opts.path = newURL.pathname;
return dispatch(opts, handler)
})
setGlobalDispatcher(proxiedDispatcher)
});
```
```ts
// nuxt.config.ts
export default defineNuxtConfig({
nitro: {
experimental: {
asyncContext: true,
}
}
})
```