diff --git a/package.json b/package.json index 9530a3b9fa3..8d34c78928d 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "lint": "standard | snazzy", "lint:fix": "standard --fix | snazzy", "test": "node scripts/generate-pem && npm run test:tap && npm run test:node-fetch && npm run test:fetch && npm run test:cookies && npm run test:wpt && npm run test:websocket && npm run test:jest && npm run test:typescript", - "test:cookies": "tap test/cookie/*.js", + "test:cookies": "borp --coverage -p \"test/cookie/*.js\"", "test:node-fetch": "mocha --exit test/node-fetch", "test:fetch": "npm run build:node && tap --expose-gc test/fetch/*.js && tap test/webidl/*.js", "test:jest": "jest", @@ -100,6 +100,7 @@ "@types/node": "^18.0.3", "abort-controller": "^3.0.0", "atomic-sleep": "^1.0.0", + "borp": "^0.4.2", "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "chai-iterator": "^3.0.2", diff --git a/test/cookie/cookies.js b/test/cookie/cookies.js index 70222faa36d..7859c6b2618 100644 --- a/test/cookie/cookies.js +++ b/test/cookie/cookies.js @@ -22,7 +22,8 @@ 'use strict' -const { test } = require('tap') +const { test } = require('node:test') +const assert = require('node:assert') const { deleteCookie, getCookies, @@ -33,33 +34,31 @@ const { // https://raw.githubusercontent.com/denoland/deno_std/b4239898d6c6b4cdbfd659a4ea1838cf4e656336/http/cookie_test.ts -test('Cookie parser', (t) => { +test('Cookie parser', () => { let headers = new Headers() - t.same(getCookies(headers), {}) + assert.deepEqual(getCookies(headers), {}) headers = new Headers() headers.set('Cookie', 'foo=bar') - t.same(getCookies(headers), { foo: 'bar' }) + assert.deepEqual(getCookies(headers), { foo: 'bar' }) headers = new Headers() headers.set('Cookie', 'full=of ; tasty=chocolate') - t.same(getCookies(headers), { full: 'of ', tasty: 'chocolate' }) + assert.deepEqual(getCookies(headers), { full: 'of ', tasty: 'chocolate' }) headers = new Headers() headers.set('Cookie', 'igot=99; problems=but...') - t.same(getCookies(headers), { igot: '99', problems: 'but...' }) + assert.deepEqual(getCookies(headers), { igot: '99', problems: 'but...' }) headers = new Headers() headers.set('Cookie', 'PREF=al=en-GB&f1=123; wide=1; SID=123') - t.same(getCookies(headers), { + assert.deepEqual(getCookies(headers), { PREF: 'al=en-GB&f1=123', wide: '1', SID: '123' }) - - t.end() }) -test('Cookie Name Validation', (t) => { +test('Cookie Name Validation', () => { const tokens = [ '"id"', 'id\t', @@ -73,7 +72,7 @@ test('Cookie Name Validation', (t) => { ] const headers = new Headers() tokens.forEach((name) => { - t.throws( + assert.throws( () => { setCookie(headers, { name, @@ -86,11 +85,9 @@ test('Cookie Name Validation', (t) => { Error ) }) - - t.end() }) -test('Cookie Value Validation', (t) => { +test('Cookie Value Validation', () => { const tokens = [ '1f\tWa', '\t', @@ -106,7 +103,7 @@ test('Cookie Value Validation', (t) => { const headers = new Headers() tokens.forEach((value) => { - t.throws( + assert.throws( () => { setCookie( headers, @@ -124,7 +121,7 @@ test('Cookie Value Validation', (t) => { ) }) - t.throws( + assert.throws( () => { setCookie(headers, { name: 'location', @@ -134,14 +131,12 @@ test('Cookie Value Validation', (t) => { Error, "RFC2616 cookie 'location' cannot contain character ' '" ) - - t.end() }) -test('Cookie Path Validation', (t) => { +test('Cookie Path Validation', () => { const path = '/;domain=sub.domain.com' const headers = new Headers() - t.throws( + assert.throws( () => { setCookie(headers, { name: 'Space', @@ -155,15 +150,13 @@ test('Cookie Path Validation', (t) => { Error, path + ": Invalid cookie path char ';'" ) - - t.end() }) -test('Cookie Domain Validation', (t) => { +test('Cookie Domain Validation', () => { const tokens = ['-domain.com', 'domain.org.', 'domain.org-'] const headers = new Headers() tokens.forEach((domain) => { - t.throws( + assert.throws( () => { setCookie(headers, { name: 'Space', @@ -178,14 +171,12 @@ test('Cookie Domain Validation', (t) => { 'Invalid first/last char in cookie domain: ' + domain ) }) - - t.end() }) -test('Cookie Delete', (t) => { +test('Cookie Delete', () => { let headers = new Headers() deleteCookie(headers, 'deno') - t.equal( + assert.equal( headers.get('Set-Cookie'), 'deno=; Expires=Thu, 01 Jan 1970 00:00:00 GMT' ) @@ -197,26 +188,24 @@ test('Cookie Delete', (t) => { path: '/' }) deleteCookie(headers, 'Space', { domain: '', path: '' }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Domain=deno.land; Path=/, Space=; Expires=Thu, 01 Jan 1970 00:00:00 GMT' ) - - t.end() }) -test('Cookie Set', (t) => { +test('Cookie Set', () => { let headers = new Headers() setCookie(headers, { name: 'Space', value: 'Cat' }) - t.equal(headers.get('Set-Cookie'), 'Space=Cat') + assert.equal(headers.get('Set-Cookie'), 'Space=Cat') headers = new Headers() setCookie(headers, { name: 'Space', value: 'Cat', secure: true }) - t.equal(headers.get('Set-Cookie'), 'Space=Cat; Secure') + assert.equal(headers.get('Set-Cookie'), 'Space=Cat; Secure') headers = new Headers() setCookie(headers, { name: 'Space', value: 'Cat', httpOnly: true }) - t.equal(headers.get('Set-Cookie'), 'Space=Cat; HttpOnly') + assert.equal(headers.get('Set-Cookie'), 'Space=Cat; HttpOnly') headers = new Headers() setCookie(headers, { @@ -225,7 +214,7 @@ test('Cookie Set', (t) => { httpOnly: true, secure: true }) - t.equal(headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly') + assert.equal(headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly') headers = new Headers() setCookie(headers, { @@ -235,7 +224,7 @@ test('Cookie Set', (t) => { secure: true, maxAge: 2 }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=2' ) @@ -248,7 +237,7 @@ test('Cookie Set', (t) => { secure: true, maxAge: 0 }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=0' ) @@ -266,7 +255,7 @@ test('Cookie Set', (t) => { } catch { error = true } - t.ok(error) + assert.ok(error) headers = new Headers() setCookie(headers, { @@ -277,7 +266,7 @@ test('Cookie Set', (t) => { maxAge: 2, domain: 'deno.land' }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land' ) @@ -292,7 +281,7 @@ test('Cookie Set', (t) => { domain: 'deno.land', sameSite: 'Strict' }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; ' + 'SameSite=Strict' @@ -308,7 +297,7 @@ test('Cookie Set', (t) => { domain: 'deno.land', sameSite: 'Lax' }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; SameSite=Lax' ) @@ -323,7 +312,7 @@ test('Cookie Set', (t) => { domain: 'deno.land', path: '/' }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/' ) @@ -339,7 +328,7 @@ test('Cookie Set', (t) => { path: '/', unparsed: ['unparsed=keyvalue', 'batman=Bruce'] }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/; ' + 'unparsed=keyvalue; batman=Bruce' @@ -356,7 +345,7 @@ test('Cookie Set', (t) => { path: '/', expires: new Date(Date.UTC(1983, 0, 7, 15, 32)) }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/; ' + 'Expires=Fri, 07 Jan 1983 15:32:00 GMT' @@ -368,14 +357,14 @@ test('Cookie Set', (t) => { value: 'Cat', expires: Date.UTC(1983, 0, 7, 15, 32) }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'Space=Cat; Expires=Fri, 07 Jan 1983 15:32:00 GMT' ) headers = new Headers() setCookie(headers, { name: '__Secure-Kitty', value: 'Meow' }) - t.equal(headers.get('Set-Cookie'), '__Secure-Kitty=Meow; Secure') + assert.equal(headers.get('Set-Cookie'), '__Secure-Kitty=Meow; Secure') headers = new Headers() setCookie(headers, { @@ -383,7 +372,7 @@ test('Cookie Set', (t) => { value: 'Meow', domain: 'deno.land' }) - t.equal( + assert.equal( headers.get('Set-Cookie'), '__Host-Kitty=Meow; Secure; Path=/' ) @@ -391,41 +380,39 @@ test('Cookie Set', (t) => { headers = new Headers() setCookie(headers, { name: 'cookie-1', value: 'value-1', secure: true }) setCookie(headers, { name: 'cookie-2', value: 'value-2', maxAge: 3600 }) - t.equal( + assert.equal( headers.get('Set-Cookie'), 'cookie-1=value-1; Secure, cookie-2=value-2; Max-Age=3600' ) headers = new Headers() setCookie(headers, { name: '', value: '' }) - t.equal(headers.get('Set-Cookie'), null) - - t.end() + assert.equal(headers.get('Set-Cookie'), null) }) -test('Set-Cookie parser', (t) => { +test('Set-Cookie parser', () => { let headers = new Headers({ 'set-cookie': 'Space=Cat' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat' }]) headers = new Headers({ 'set-cookie': 'Space=Cat; Secure' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true }]) headers = new Headers({ 'set-cookie': 'Space=Cat; HttpOnly' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', httpOnly: true }]) headers = new Headers({ 'set-cookie': 'Space=Cat; Secure; HttpOnly' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -435,7 +422,7 @@ test('Set-Cookie parser', (t) => { headers = new Headers({ 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=2' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -446,7 +433,7 @@ test('Set-Cookie parser', (t) => { headers = new Headers({ 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=0' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -457,7 +444,7 @@ test('Set-Cookie parser', (t) => { headers = new Headers({ 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=-1' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -467,7 +454,7 @@ test('Set-Cookie parser', (t) => { headers = new Headers({ 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -480,7 +467,7 @@ test('Set-Cookie parser', (t) => { 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; SameSite=Strict' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -494,7 +481,7 @@ test('Set-Cookie parser', (t) => { 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; SameSite=Lax' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -508,7 +495,7 @@ test('Set-Cookie parser', (t) => { 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -522,7 +509,7 @@ test('Set-Cookie parser', (t) => { 'set-cookie': 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/; unparsed=keyvalue; batman=Bruce' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -538,7 +525,7 @@ test('Set-Cookie parser', (t) => { 'Space=Cat; Secure; HttpOnly; Max-Age=2; Domain=deno.land; Path=/; ' + 'Expires=Fri, 07 Jan 1983 15:32:00 GMT' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: 'Space', value: 'Cat', secure: true, @@ -550,14 +537,14 @@ test('Set-Cookie parser', (t) => { }]) headers = new Headers({ 'set-cookie': '__Secure-Kitty=Meow; Secure' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: '__Secure-Kitty', value: 'Meow', secure: true }]) headers = new Headers({ 'set-cookie': '__Secure-Kitty=Meow' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: '__Secure-Kitty', value: 'Meow' }]) @@ -565,7 +552,7 @@ test('Set-Cookie parser', (t) => { headers = new Headers({ 'set-cookie': '__Host-Kitty=Meow; Secure; Path=/' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: '__Host-Kitty', value: 'Meow', secure: true, @@ -573,7 +560,7 @@ test('Set-Cookie parser', (t) => { }]) headers = new Headers({ 'set-cookie': '__Host-Kitty=Meow; Path=/' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: '__Host-Kitty', value: 'Meow', path: '/' @@ -582,7 +569,7 @@ test('Set-Cookie parser', (t) => { headers = new Headers({ 'set-cookie': '__Host-Kitty=Meow; Secure; Domain=deno.land; Path=/' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: '__Host-Kitty', value: 'Meow', secure: true, @@ -593,7 +580,7 @@ test('Set-Cookie parser', (t) => { headers = new Headers({ 'set-cookie': '__Host-Kitty=Meow; Secure; Path=/not-root' }) - t.same(getSetCookies(headers), [{ + assert.deepEqual(getSetCookies(headers), [{ name: '__Host-Kitty', value: 'Meow', secure: true, @@ -604,13 +591,11 @@ test('Set-Cookie parser', (t) => { ['set-cookie', 'cookie-1=value-1; Secure'], ['set-cookie', 'cookie-2=value-2; Max-Age=3600'] ]) - t.same(getSetCookies(headers), [ + assert.deepEqual(getSetCookies(headers), [ { name: 'cookie-1', value: 'value-1', secure: true }, { name: 'cookie-2', value: 'value-2', maxAge: 3600 } ]) headers = new Headers() - t.same(getSetCookies(headers), []) - - t.end() + assert.deepEqual(getSetCookies(headers), []) }) diff --git a/test/cookie/global-headers.js b/test/cookie/global-headers.js index 1d58dce1b60..e78566905a1 100644 --- a/test/cookie/global-headers.js +++ b/test/cookie/global-headers.js @@ -1,6 +1,7 @@ 'use strict' -const { test, skip } = require('tap') +const { test, skip } = require('node:test') +const assert = require('node:assert') const { deleteCookie, getCookies, @@ -16,27 +17,24 @@ if (!globalThis.Headers) { process.exit(0) } -test('Using global Headers', (t) => { - t.test('deleteCookies', (t) => { +test('Using global Headers', async (t) => { + await t.test('deleteCookies', () => { const headers = new Headers() - t.equal(headers.get('set-cookie'), null) + assert.equal(headers.get('set-cookie'), null) deleteCookie(headers, 'undici') - t.equal(headers.get('set-cookie'), 'undici=; Expires=Thu, 01 Jan 1970 00:00:00 GMT') - - t.end() + assert.equal(headers.get('set-cookie'), 'undici=; Expires=Thu, 01 Jan 1970 00:00:00 GMT') }) - t.test('getCookies', (t) => { + await t.test('getCookies', () => { const headers = new Headers({ cookie: 'get=cookies; and=attributes' }) - t.same(getCookies(headers), { get: 'cookies', and: 'attributes' }) - t.end() + assert.deepEqual(getCookies(headers), { get: 'cookies', and: 'attributes' }) }) - t.test('getSetCookies', (t) => { + await t.test('getSetCookies', () => { const headers = new Headers({ 'set-cookie': 'undici=getSetCookies; Secure' }) @@ -44,9 +42,9 @@ test('Using global Headers', (t) => { const supportsCookies = getHeadersList(headers).cookies if (!supportsCookies) { - t.same(getSetCookies(headers), []) + assert.deepEqual(getSetCookies(headers), []) } else { - t.same(getSetCookies(headers), [ + assert.deepEqual(getSetCookies(headers), [ { name: 'undici', value: 'getSetCookies', @@ -54,17 +52,12 @@ test('Using global Headers', (t) => { } ]) } - - t.end() }) - t.test('setCookie', (t) => { + await t.test('setCookie', () => { const headers = new Headers() setCookie(headers, { name: 'undici', value: 'setCookie' }) - t.equal(headers.get('Set-Cookie'), 'undici=setCookie') - t.end() + assert.equal(headers.get('Set-Cookie'), 'undici=setCookie') }) - - t.end() })