a815ba9f79
This PR adds support for [Middleware as per RFC ](https://github.com/vercel/next.js/discussions/29750). ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
/* eslint-env jest */
|
|
|
|
import { Blob, File, FormData } from 'next/dist/compiled/formdata-node'
|
|
import { Response } from 'next/dist/server/web/spec-compliant/response'
|
|
import { Crypto } from 'next/dist/server/web/sandbox/polyfills'
|
|
import { Headers } from 'next/dist/server/web/spec-compliant/headers'
|
|
import * as streams from 'web-streams-polyfill/ponyfill'
|
|
|
|
beforeAll(() => {
|
|
global['Blob'] = Blob
|
|
global['crypto'] = new Crypto()
|
|
global['File'] = File
|
|
global['FormData'] = FormData
|
|
global['Headers'] = Headers
|
|
global['ReadableStream'] = streams.ReadableStream
|
|
global['TransformStream'] = streams.TransformStream
|
|
})
|
|
|
|
afterAll(() => {
|
|
delete global['Blob']
|
|
delete global['crypto']
|
|
delete global['File']
|
|
delete global['Headers']
|
|
delete global['FormData']
|
|
delete global['ReadableStream']
|
|
delete global['TransformStream']
|
|
})
|
|
|
|
it('clones responses', async () => {
|
|
const { readable, writable } = new TransformStream()
|
|
const encoder = new TextEncoder()
|
|
const writer = writable.getWriter()
|
|
writer.write(encoder.encode('Hello '))
|
|
writer.write(encoder.encode('world!'))
|
|
writer.close()
|
|
|
|
const res1 = new Response(readable)
|
|
const res2 = res1.clone()
|
|
|
|
expect(await res1.text()).toEqual('Hello world!')
|
|
expect(await res2.text()).toEqual('Hello world!')
|
|
})
|