Skip to content

Commit 52326fc

Browse files
committed
test: update test to use Deno style of testing
include github workflow
1 parent 20f9464 commit 52326fc

File tree

5 files changed

+43
-18
lines changed

5 files changed

+43
-18
lines changed

.github/workflows/test-deno.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Deno tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Git Checkout Deno Module
15+
uses: actions/checkout@v2
16+
- name: Use Deno Version ${{ matrix.deno-version }}
17+
uses: denolib/setup-deno@v2
18+
with:
19+
deno-version: vx.x.x
20+
- name: Test Deno
21+
run: deno test packages/runtime/src/templates/edge-shared/

package.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
"build": "npm run build -w packages/next -w packages/runtime",
1818
"postinstall": "run-s build install-husky",
1919
"install-husky": "if-env CI=1 || husky install node_modules/@netlify/eslint-config-node/.husky",
20-
"test": "run-s build:demo test:jest",
20+
"test": "run-s build:demo test:jest test:deno",
21+
"test:deno": "deno test packages/runtime/src/templates/edge-shared/",
2122
"test:next": "jest -c test/e2e/jest.config.js",
2223
"test:next:disabled": "RUN_SKIPPED_TESTS=1 jest -c test/e2e/jest.config.disabled.js",
2324
"test:next:all": "RUN_SKIPPED_TESTS=1 jest -c test/e2e/jest.config.all.js",
@@ -101,11 +102,9 @@
101102
"**/test/**/*.spec.ts",
102103
"!**/test/e2e/**",
103104
"!**/test/fixtures/**",
104-
"!**/test/sample/**"
105+
"!**/test/sample/**",
106+
"!**/test/templates/edge-shared/**"
105107
],
106-
"moduleNameMapper": {
107-
"https://deno.land/x/html_rewriter@v0.1.0-pre.17": "<rootDir>/test/mockedDenoModules/html_rewriter"
108-
},
109108
"transform": {
110109
"\\.[jt]sx?$": "babel-jest"
111110
},

test/templates/edge-shared/utils.spec.ts renamed to packages/runtime/src/templates/edge-shared/utils.test.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
import {updateModifiedHeaders, FetchEventResult} from '../../../packages/runtime/src/templates/edge-shared/utils'
1+
import { assertEquals } from 'https://deno.land/std@0.167.0/testing/asserts.ts'
2+
import {
3+
beforeEach,
4+
describe,
5+
it,
6+
} from "https://deno.land/std@0.167.0/testing/bdd.ts";
7+
import {updateModifiedHeaders, FetchEventResult} from './utils.ts'
8+
29

310
describe('updateModifiedHeaders', () => {
411
it('does not modify the headers if \'x-middleware-override-headers\' is not found', () => {
@@ -7,14 +14,14 @@ describe('updateModifiedHeaders', () => {
714
// been modified with 'x-middleware-request' added to it, this is more to confirm the test case
815
mockHeaders.set('x-middleware-request-foo', 'bar')
916

10-
let mockResult: FetchEventResult = {
17+
const mockResult: FetchEventResult = {
1118
response: new Response('', {headers: mockHeaders}),
1219
waitUntil: Promise.resolve()
1320
}
1421

1522
mockResult.response = updateModifiedHeaders(mockResult.response)
1623

17-
expect(mockResult.response.headers.get('x-middleware-request-foo')).toEqual('bar')
24+
assertEquals(mockResult.response.headers.get('x-middleware-request-foo'), 'bar')
1825
})
1926

2027
describe('when the \'x-middleware-override-headers\' headers is present', () => {
@@ -38,19 +45,19 @@ describe('updateModifiedHeaders', () => {
3845
})
3946

4047
it('does not modify headers that are missing \'x-middleware-request\' in the name', () => {
41-
expect(mockResult.response.headers.get('foo')).toEqual('bar')
48+
assertEquals(mockResult.response.headers.get('foo'), 'bar')
4249
})
4350

4451
it('removes \'x-middleware-request-\' from headers', () => {
45-
expect(mockResult.response.headers.get('x-middleware-request-hello')).toBe(null)
46-
expect(mockResult.response.headers.get('x-middleware-request-test')).toBe(null)
52+
assertEquals(mockResult.response.headers.get('x-middleware-request-hello'), null)
53+
assertEquals(mockResult.response.headers.get('x-middleware-request-test'), null)
4754

48-
expect(mockResult.response.headers.get('hello')).toEqual('world')
49-
expect(mockResult.response.headers.get('test')).toEqual('123')
55+
assertEquals(mockResult.response.headers.get('hello'), 'world')
56+
assertEquals(mockResult.response.headers.get('test'), '123')
5057
})
5158

5259
it('removes \'x-middleware-override-headers\' after cleaning headers', () => {
53-
expect(mockResult.response.headers.get('x-middleware-override-headers')).toBe(null)
60+
assertEquals(mockResult.response.headers.get('x-middleware-override-headers'), null)
5461
})
5562
})
5663
})

packages/runtime/src/templates/edge-shared/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ function isMiddlewareResponse(response: Response | MiddlewareResponse): response
6767
// * https://github.com/vercel/next.js/blob/68d06fe015b28d8f81da52ca107a5f4bd72ab37c/packages/next/server/next-server.ts#L1918-L1928
6868
// * https://github.com/vercel/next.js/blob/43c9d8940dc42337dd2f7d66aa90e6abf952278e/packages/next/server/web/spec-extension/response.ts#L10-L27
6969
export function updateModifiedHeaders(response: Response) {
70-
const overriddenHeaders = response.headers.get('x-middleware-override-headers') || ''
70+
const overriddenHeaders = response.headers.get('x-middleware-override-headers')
7171

7272
if (!overriddenHeaders) {
7373
return response
7474
}
7575

76-
const headersToUpdate = overriddenHeaders.split(',')
76+
const headersToUpdate = overriddenHeaders.split(',').map(header => header.trim())
7777

7878
for (const header of headersToUpdate) {
7979
const oldHeaderKey = 'x-middleware-request-' + header

test/mockedDenoModules/html_rewriter/index.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)