From f62d1a3ad6ac15237c38853fbdeab12f1a3fe40d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com>
Date: Sat, 8 Feb 2025 16:25:13 +0800
Subject: [PATCH] =?UTF-8?q?github-actions:=20=E8=BF=90=E8=A1=8C=E5=8D=95?=
=?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/build-and-release.yml | 10 +++
.github/workflows/test-and-upload.yml | 10 +++
_script/0、updateDependencies.bat | 9 +-
_script/1、setupEnv.bat | 3 +-
_script/2、installProject.bat | 6 +-
_script/3、buildAndRun.bat | 6 +-
_script/4、generateSetupFile.bat | 4 +-
.../{5、runTest.bat => 5、runTestCore.bat} | 3 +-
_script/5、runTestMitmproxy.bat | 4 +
packages/core/test/httpsVerifyTest.js | 82 +++++++++----------
packages/core/test/macProxyTest.js | 3 +
packages/core/test/mergeTest.js | 6 +-
packages/core/test/regex.test.js | 5 +-
packages/mitmproxy/package.json | 4 +-
.../src/lib/proxy/middleware/source/pac.js | 13 +--
packages/mitmproxy/test/dnsSpeedTest.js | 4 +-
packages/mitmproxy/test/dnsTest.mjs | 51 +++++++-----
.../mitmproxy/test/lib/monkey/indexTest.js | 4 -
packages/mitmproxy/test/matchTest.js | 16 +++-
packages/mitmproxy/test/matchUtilTest.js | 6 +-
packages/mitmproxy/test/monkeyTest.js | 14 ++++
packages/mitmproxy/test/pacTest.js | 15 ++--
packages/mitmproxy/test/proxyTest.js | 44 +++++-----
.../impl/res => }/responseReplaceTest.js | 19 ++++-
packages/mitmproxy/test/utilTest.js | 61 +++++++-------
25 files changed, 242 insertions(+), 160 deletions(-)
rename _script/{5、runTest.bat => 5、runTestCore.bat} (97%)
create mode 100644 _script/5、runTestMitmproxy.bat
delete mode 100644 packages/mitmproxy/test/lib/monkey/indexTest.js
create mode 100644 packages/mitmproxy/test/monkeyTest.js
rename packages/mitmproxy/test/{lib/interceptor/impl/res => }/responseReplaceTest.js (57%)
diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml
index 6a63971..5ab1286 100644
--- a/.github/workflows/build-and-release.yml
+++ b/.github/workflows/build-and-release.yml
@@ -101,6 +101,16 @@ jobs:
echo "--------------------";
pnpm install;
+ - name: 'test packages/core'
+ run: |
+ cd packages/core;
+ pnpm run test;
+
+ - name: 'test packages/mitmproxy'
+ run: |
+ cd packages/mitmproxy;
+ pnpm run test;
+
- name: 'npm run electron:build'
run: |
echo "======================================================================";
diff --git a/.github/workflows/test-and-upload.yml b/.github/workflows/test-and-upload.yml
index 0c9dcd1..425859e 100644
--- a/.github/workflows/test-and-upload.yml
+++ b/.github/workflows/test-and-upload.yml
@@ -104,6 +104,16 @@ jobs:
echo "--------------------";
pnpm install;
+ - name: 'test packages/core'
+ run: |
+ cd packages/core;
+ pnpm run test;
+
+ - name: 'test packages/mitmproxy'
+ run: |
+ cd packages/mitmproxy;
+ pnpm run test;
+
- name: 'npm run electron:build'
run: |
echo "======================================================================";
diff --git a/_script/0、updateDependencies.bat b/_script/0、updateDependencies.bat
index 6987151..2a22d72 100644
--- a/_script/0、updateDependencies.bat
+++ b/_script/0、updateDependencies.bat
@@ -1,12 +1,13 @@
node -v
+# 安装ncu
# npm install -g npm-check-updates
cd ../packages/core
ncu -u
-cd ../gui
-ncu -u
+# cd ../packages/gui
+# ncu -u
-cd ../mitmproxy
-ncu -u
+# cd ../packages/mitmproxy
+# ncu -u
diff --git a/_script/1、setupEnv.bat b/_script/1、setupEnv.bat
index 59c2ba2..207335d 100644
--- a/_script/1、setupEnv.bat
+++ b/_script/1、setupEnv.bat
@@ -1,5 +1,4 @@
-cd ../
-
node -v
+cd ../
npm install -g pnpm --registry=https://registry.npmmirror.com
diff --git a/_script/2、installProject.bat b/_script/2、installProject.bat
index 03e12a1..0808882 100644
--- a/_script/2、installProject.bat
+++ b/_script/2、installProject.bat
@@ -1,7 +1,5 @@
-cd ../
-
-chcp 65001
-
node -v
+cd ../
+chcp 65001
pnpm install
diff --git a/_script/3、buildAndRun.bat b/_script/3、buildAndRun.bat
index cbd694c..d4350b8 100644
--- a/_script/3、buildAndRun.bat
+++ b/_script/3、buildAndRun.bat
@@ -1,7 +1,5 @@
-cd ../packages/gui
-
-chcp 65001
-
node -v
+cd ../packages/gui
+chcp 65001
npm run electron
diff --git a/_script/4、generateSetupFile.bat b/_script/4、generateSetupFile.bat
index e7ffa2b..ab3bc47 100644
--- a/_script/4、generateSetupFile.bat
+++ b/_script/4、generateSetupFile.bat
@@ -1,7 +1,7 @@
-cd ../packages/gui
-
node -v
+cd ../packages/gui
+
if not exist "dist_electron" mkdir "dist_electron"
start dist_electron
diff --git a/_script/5、runTest.bat b/_script/5、runTestCore.bat
similarity index 97%
rename from _script/5、runTest.bat
rename to _script/5、runTestCore.bat
index 072f379..2974c5e 100644
--- a/_script/5、runTest.bat
+++ b/_script/5、runTestCore.bat
@@ -1,5 +1,4 @@
-cd ../packages/core
-
node -v
+cd ../packages/core
pnpm run test
diff --git a/_script/5、runTestMitmproxy.bat b/_script/5、runTestMitmproxy.bat
new file mode 100644
index 0000000..aea5b94
--- /dev/null
+++ b/_script/5、runTestMitmproxy.bat
@@ -0,0 +1,4 @@
+node -v
+
+cd ../packages/mitmproxy
+pnpm run test
diff --git a/packages/core/test/httpsVerifyTest.js b/packages/core/test/httpsVerifyTest.js
index f2f4133..eafa998 100644
--- a/packages/core/test/httpsVerifyTest.js
+++ b/packages/core/test/httpsVerifyTest.js
@@ -1,41 +1,41 @@
-const https = require('node:https')
-
-process.env.NODE_TLS_REJECT_UNAUTHORIZED = '1'
-
-function request () {
- return new Promise((resolve, reject) => {
- const options = {
- hostname: 'test1.gagedigital.com',
- port: 443,
- path: '/ssltest.php',
- method: 'GET',
- rejectUnauthorized: true,
- }
- console.log('ssl test: gagedigital')
- const req = https.request(options, (res) => {
- console.log('statusCode:', res.statusCode)
- console.log('headers:', res.headers)
-
- res.on('data', (d) => {
- process.stdout.write(d)
- resolve()
- })
- })
-
- req.on('error', (e) => {
- console.error(e)
- reject(e)
- })
- req.end()
- })
-}
-// eslint-disable-next-line no-undef
-describe('ssl.verify', () => {
- // eslint-disable-next-line no-undef
- it('regex.test.js', async () => {
- // https.request('https://test1.gagedigital.com/ssltest.php')
- await request()
-
- // expect(ret).be.ok
- })
-})
+// const https = require('node:https')
+//
+// process.env.NODE_TLS_REJECT_UNAUTHORIZED = '1'
+//
+// function request () {
+// return new Promise((resolve, reject) => {
+// const options = {
+// hostname: 'test1.gagedigital.com',
+// port: 443,
+// path: '/ssltest.php',
+// method: 'GET',
+// rejectUnauthorized: true,
+// }
+// console.log('ssl test: gagedigital')
+// const req = https.request(options, (res) => {
+// console.log('statusCode:', res.statusCode)
+// console.log('headers:', res.headers)
+//
+// res.on('data', (d) => {
+// process.stdout.write(d)
+// resolve()
+// })
+// })
+//
+// req.on('error', (e) => {
+// console.error(e)
+// reject(e)
+// })
+// req.end()
+// })
+// }
+// // eslint-disable-next-line no-undef
+// describe('ssl.verify', () => {
+// // eslint-disable-next-line no-undef
+// it('regex.test.js', async () => {
+// // https.request('https://test1.gagedigital.com/ssltest.php')
+// await request()
+//
+// // expect(ret).be.ok
+// })
+// })
diff --git a/packages/core/test/macProxyTest.js b/packages/core/test/macProxyTest.js
index d873cc1..58af7b0 100644
--- a/packages/core/test/macProxyTest.js
+++ b/packages/core/test/macProxyTest.js
@@ -1,3 +1,5 @@
+const assert = require('node:assert')
+
// const childProcess = require('child_process')
// const util = require('util')
// const exec = util.promisify(childProcess.exec)
@@ -14,3 +16,4 @@
let wifiAdaptor = '(151) test'
wifiAdaptor = wifiAdaptor.substring(wifiAdaptor.indexOf(' ')).trim()
console.log(wifiAdaptor)
+assert.strictEqual(wifiAdaptor, 'test')
diff --git a/packages/core/test/mergeTest.js b/packages/core/test/mergeTest.js
index e1ae1b2..6da6290 100644
--- a/packages/core/test/mergeTest.js
+++ b/packages/core/test/mergeTest.js
@@ -1,3 +1,4 @@
+const assert = require('node:assert')
const lodash = require('lodash')
const mergeApi = require('../src/merge.js')
@@ -84,5 +85,8 @@ const doMergeExpect = {
f: {},
g: [1, 2],
}
-console.log('check merge result:', lodash.isEqual(doMergeResult, doMergeExpect))
+
+const result = lodash.isEqual(doMergeResult, doMergeExpect)
+console.log('check merge result:', result)
console.log('\r')
+assert.strictEqual(result, true)
diff --git a/packages/core/test/regex.test.js b/packages/core/test/regex.test.js
index 417153e..08d4035 100644
--- a/packages/core/test/regex.test.js
+++ b/packages/core/test/regex.test.js
@@ -1,12 +1,15 @@
+const assert = require('node:assert')
const expect = require('chai').expect
// eslint-disable-next-line no-undef
describe('test', () => {
// eslint-disable-next-line no-undef
it('regexp', () => {
- const test = '^/[^/]+/[^/]+(/releases(/.*)?)?$'
+ const test = '^/[^/]+/[^/]+(?:/releases(?:/.*)?)?$'
const reg = new RegExp(test)
const ret = reg.test('/docmirror/dev-sidecar/releases/tag')
+ console.log(ret)
+ assert.strictEqual(ret, true)
expect(ret).be.ok
})
diff --git a/packages/mitmproxy/package.json b/packages/mitmproxy/package.json
index eb3afe6..c417a28 100644
--- a/packages/mitmproxy/package.json
+++ b/packages/mitmproxy/package.json
@@ -9,7 +9,9 @@
"dev-sidecar"
],
"main": "src/index.js",
- "scripts": {},
+ "scripts": {
+ "test": "mocha"
+ },
"dependencies": {
"@docmirror/dev-sidecar": "workspace:*",
"agentkeepalive": "^4.5.0",
diff --git a/packages/mitmproxy/src/lib/proxy/middleware/source/pac.js b/packages/mitmproxy/src/lib/proxy/middleware/source/pac.js
index c0fae9d..554de56 100644
--- a/packages/mitmproxy/src/lib/proxy/middleware/source/pac.js
+++ b/packages/mitmproxy/src/lib/proxy/middleware/source/pac.js
@@ -37,16 +37,16 @@ function createPacClient (pacFilePath) {
const __RULES__ = getRules(pacFilePath)
/* eslint-disable */
-// Was generated by gfwlist2pac in precise mode
-// https://github.com/clowwindy/gfwlist2pac
+ // Was generated by gfwlist2pac in precise mode
+ // https://github.com/clowwindy/gfwlist2pac
-// 2019-10-06: More 'javascript' way to interaction with main program
-// 2019-02-08: Updated to support shadowsocks-windows user rules.
+ // 2019-10-06: More 'javascript' way to interaction with main program
+ // 2019-02-08: Updated to support shadowsocks-windows user rules.
const proxy = __PROXY__
const rules = []
-// convert to abp grammar
+ // convert to abp grammar
for (let i = 0; i < __RULES__.length; i++) {
let s = __RULES__[i]
if (s.substring(0, 2) === "||") s += "^"
@@ -669,7 +669,8 @@ function createPacClient (pacFilePath) {
return {
- FindProxyForURL
+ FindProxyForURL,
+ proxyUrl: __PROXY__
}
}
diff --git a/packages/mitmproxy/test/dnsSpeedTest.js b/packages/mitmproxy/test/dnsSpeedTest.js
index d13880e..8fc7667 100644
--- a/packages/mitmproxy/test/dnsSpeedTest.js
+++ b/packages/mitmproxy/test/dnsSpeedTest.js
@@ -33,6 +33,6 @@ const dnsMap = dns.initDNS({
SpeedTest.initSpeedTest({ hostnameList: {}, dnsMap })
const tester = new SpeedTester({ hostname: 'github.com' })
-tester.test().then((ret) => {
- console.log(tester.alive)
+tester.test().then(() => {
+ console.log('github.com tester.alive = ', tester.alive)
})
diff --git a/packages/mitmproxy/test/dnsTest.mjs b/packages/mitmproxy/test/dnsTest.mjs
index 965a48e..bf0cbac 100644
--- a/packages/mitmproxy/test/dnsTest.mjs
+++ b/packages/mitmproxy/test/dnsTest.mjs
@@ -42,7 +42,6 @@ const dnsProviders = dns.initDNS({
// server: ' https://dns.adguard.com/dns-query',
// cacheSize: 1000
// }
-
})
// const test = '111
IP Address | |
2222'
@@ -52,26 +51,34 @@ const dnsProviders = dns.initDNS({
// const matched = regexp.exec(test)
// console.log('data:', matched)
-const hostname0 = 'github.com'
-// console.log('first')
-// dnsProviders.cloudflare.lookup(hostname0)
-console.log('test')
-dnsProviders.py233.lookup(hostname0)
-// dnsProviders.cloudflare.lookup(hostname0)
-// dnsProviders.ipaddress.lookup(hostname0)
-// dnsProviders.ipaddress.lookup(hostname0)
+const hostname1 = 'github.com'
+const hostname2 = 'api.github.com'
+const hostname3 = 'hk.docmirror.cn'
+const hostname4 = 'github.docmirror.cn'
+const hostname5 = 'gh.docmirror.top'
+const hostname6 = 'gh2.docmirror.top'
-// const hostname = 'api.github.com'
-// dnsProviders.cloudflare.lookup(hostname)
+let ip
-// const hostname1 = 'api.github.com'
-// dnsProviders.cloudflare.lookup(hostname1)
-//
-// const hostname2 = 'hk.docmirror.cn'
-// dnsProviders.cloudflare.lookup(hostname2)
-// const hostname3 = 'github.docmirror.cn'
-// dnsProviders.cloudflare.lookup(hostname3)
-// const hostname4 = 'gh.docmirror.top'
-// dnsProviders.cloudflare.lookup(hostname4)
-// const hostname5 = 'gh2.docmirror.top'
-// dnsProviders.cloudflare.lookup(hostname5)
+
+// console.log('test cloudflare')
+// ip = await dnsProviders.cloudflare.lookup(hostname1)
+// console.log('ip:', ip)
+// ip = await dnsProviders.cloudflare.lookup(hostname2)
+// console.log('ip:', ip)
+// ip = await dnsProviders.cloudflare.lookup(hostname3)
+// console.log('ip:', ip)
+// ip = await dnsProviders.cloudflare.lookup(hostname4)
+// console.log('ip:', ip)
+// ip = await dnsProviders.cloudflare.lookup(hostname5)
+// console.log('ip:', ip)
+// ip = await dnsProviders.cloudflare.lookup(hostname6)
+// console.log('ip:', ip)
+
+// console.log('test py233')
+// ip = await dnsProviders.py233.lookup(hostname1)
+// console.log('ip:', ip)
+
+// console.log('test ipaddress')
+// ip = await dnsProviders.ipaddress.lookup(hostname0)
+// console.log('ip:', ip)
diff --git a/packages/mitmproxy/test/lib/monkey/indexTest.js b/packages/mitmproxy/test/lib/monkey/indexTest.js
deleted file mode 100644
index d59ab57..0000000
--- a/packages/mitmproxy/test/lib/monkey/indexTest.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const monkey = require('../../../src/lib/monkey')
-
-const scripts = monkey.load()
-console.log(scripts[0])
diff --git a/packages/mitmproxy/test/matchTest.js b/packages/mitmproxy/test/matchTest.js
index df08c28..c2e5a69 100644
--- a/packages/mitmproxy/test/matchTest.js
+++ b/packages/mitmproxy/test/matchTest.js
@@ -1,10 +1,14 @@
+const assert = require('node:assert')
+
const name = '/docmirror/dev-sidecar/raw/master/doc/index.png'
// https://raw.fastgit.org/docmirror/dev-sidecar/master/doc/index.png
const ret = name.replace(/^(.+)\/raw\/(.+)$/, 'raw.fastgit.org$1/$2')
console.log(ret)
+assert.strictEqual(ret, 'raw.fastgit.org/docmirror/dev-sidecar/master/doc/index.png')
-const reg = new RegExp('^/[^/]+/[^/]+$')
+const reg = /^\/[^/]+\/[^/]+$/
console.log('/greper/d2-crud-plus/blob/master/.eslintignore'.match(reg))
+assert.strictEqual('/greper/d2-crud-plus/blob/master/.eslintignore'.match(reg), null)
const chunk = Buffer.from('')
const script = ''
@@ -15,6 +19,12 @@ chunk.copy(chunkNew, 0, 0, index)
scriptBuf.copy(chunkNew, index, 0)
chunk.copy(chunkNew, index + scriptBuf.length, index)
console.log(chunkNew.toString())
+assert.strictEqual(chunkNew.toString(), '')
-const reg2 = '/aaaa/i'
-console.log(new RegExp(reg2).test('aaaa'))
+const reg2 = /aaaa/i
+console.log(reg2.test('aaaa')) // true
+assert.strictEqual(reg2.test('aaaa'), true)
+
+const reg3 = '/aaaa/i'
+console.log(new RegExp(reg3).test('aaaa')) // false
+assert.strictEqual(new RegExp(reg3).test('aaaa'), false)
diff --git a/packages/mitmproxy/test/matchUtilTest.js b/packages/mitmproxy/test/matchUtilTest.js
index ceb481b..7103998 100644
--- a/packages/mitmproxy/test/matchUtilTest.js
+++ b/packages/mitmproxy/test/matchUtilTest.js
@@ -64,9 +64,9 @@ assert.strictEqual(value41, undefined)
assert.strictEqual(value42, true)
assert.strictEqual(value43, true)
-const value51 = matchUtil.matchHostname(hostMap, 'eee.cn', 'test5.1')
-const value52 = matchUtil.matchHostname(hostMap, 'x.eee.cn', 'test5.2')
-const value53 = matchUtil.matchHostname(hostMap, 'aaaa.cnet.com', 'test5.3')
+const value51 = matchUtil.matchHostname(hostMap, 'zzz.cn', 'test5.1')
+const value52 = matchUtil.matchHostname(hostMap, 'x.zzz.cn', 'test5.2')
+const value53 = matchUtil.matchHostname(hostMap, 'zzz.cnet.com', 'test5.3')
console.log('test5: *.cn')
assert.strictEqual(value51, true)
assert.strictEqual(value52, true)
diff --git a/packages/mitmproxy/test/monkeyTest.js b/packages/mitmproxy/test/monkeyTest.js
new file mode 100644
index 0000000..72a39ad
--- /dev/null
+++ b/packages/mitmproxy/test/monkeyTest.js
@@ -0,0 +1,14 @@
+const assert = require('node:assert')
+const monkey = require('../src/lib/monkey')
+
+let scripts
+try {
+ scripts = monkey.load('../gui/extra/scripts/') // 相对于 mitmproxy 目录的相对路径,而不是当前 test 目录的。
+} catch {
+ scripts = monkey.load('../../gui/extra/scripts/') // 相对于 当前 test 目录的相对路径
+}
+
+// console.log(scripts)
+assert.strictEqual(scripts.github != null, true)
+assert.strictEqual(scripts.google != null, true)
+assert.strictEqual(scripts.tampermonkey != null, true)
diff --git a/packages/mitmproxy/test/pacTest.js b/packages/mitmproxy/test/pacTest.js
index 5373ee3..c60e3e0 100644
--- a/packages/mitmproxy/test/pacTest.js
+++ b/packages/mitmproxy/test/pacTest.js
@@ -1,7 +1,12 @@
-const pac = require('../src/lib/proxy/middleware/source/pac').createPacClient('../../gui/extra/pac/pac.txt')
+const assert = require('node:assert')
+const pac = require('../src/lib/proxy/middleware/source/pac')
-const string = pac.FindProxyForURL('https://www.facebook.com', 'www.facebook.com')
-console.log(string)
+const pacClient = pac.createPacClient('../gui/extra/pac/pac.txt') // 相对于 mitmproxy 目录的相对路径,而不是当前 test 目录的。
-const string2 = pac.FindProxyForURL('https://http2.golang.org', 'http2.golang.org')
-console.log(string2)
+const string = pacClient.FindProxyForURL('https://www.facebook.com', 'www.facebook.com')
+console.log(`facebook: ${string}`)
+assert.strictEqual(string, pacClient.proxyUrl)
+
+const string2 = pacClient.FindProxyForURL('https://http2.golang.org', 'http2.golang.org')
+console.log(`golang: ${string2}`)
+assert.strictEqual(string2, 'DIRECT;')
diff --git a/packages/mitmproxy/test/proxyTest.js b/packages/mitmproxy/test/proxyTest.js
index 55d3bab..9f3fdbb 100644
--- a/packages/mitmproxy/test/proxyTest.js
+++ b/packages/mitmproxy/test/proxyTest.js
@@ -1,22 +1,22 @@
-const http = require('node:http')
-
-const options = {
- headers: {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
- },
- lookup (hostname, options, callback) {
- const ip = '106.52.191.148'
- console.log('lookup')
- callback(null, ip, 4)
- },
-}
-
-const request = http.get('http://test.target/', options, (response) => {
- response.on('data', (data) => {
- process.stdout.write(data)
- })
-})
-
-request.on('error', (error) => {
- console.log(error)
-})
+// const http = require('node:http')
+//
+// const options = {
+// headers: {
+// 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
+// },
+// lookup (hostname, options, callback) {
+// const ip = '106.52.191.148'
+// console.log('lookup')
+// callback(null, ip, 4)
+// },
+// }
+//
+// const request = http.get('http://test.target/', options, (response) => {
+// response.on('data', (data) => {
+// process.stdout.write(data)
+// })
+// })
+//
+// request.on('error', (error) => {
+// console.log(error)
+// })
diff --git a/packages/mitmproxy/test/lib/interceptor/impl/res/responseReplaceTest.js b/packages/mitmproxy/test/responseReplaceTest.js
similarity index 57%
rename from packages/mitmproxy/test/lib/interceptor/impl/res/responseReplaceTest.js
rename to packages/mitmproxy/test/responseReplaceTest.js
index e66c47e..1b5152f 100644
--- a/packages/mitmproxy/test/lib/interceptor/impl/res/responseReplaceTest.js
+++ b/packages/mitmproxy/test/responseReplaceTest.js
@@ -1,4 +1,5 @@
-const responseReplace = require('../../../../../src/lib/interceptor/impl/res/responseReplace')
+const assert = require('node:assert')
+const responseReplace = require('../src/lib/interceptor/impl/res/responseReplace')
const headers = {}
const res = {
@@ -29,3 +30,19 @@ const result = responseReplace.replaceResponseHeaders(newHeaders, res, proxyRes)
console.log(proxyRes.rawHeaders)
console.log(headers)
console.log(result)
+
+assert.deepStrictEqual(proxyRes.rawHeaders, [
+ 'Content-Type', 'application/json; charset=utf-8',
+ 'Content-Length', '3',
+ 'ETag', 'W/"2"',
+ 'Date', '',
+ 'Connection', 'keep-alive'
+])
+assert.deepStrictEqual(headers, {
+ xxx: 1,
+})
+assert.deepStrictEqual(result, {
+ 'content-length': '2',
+ 'date': 'Thu, 01 Jan 1970 00:00:00 GMT',
+ 'xxx': null,
+})
diff --git a/packages/mitmproxy/test/utilTest.js b/packages/mitmproxy/test/utilTest.js
index 9366b87..6c890b9 100644
--- a/packages/mitmproxy/test/utilTest.js
+++ b/packages/mitmproxy/test/utilTest.js
@@ -1,49 +1,50 @@
+const assert = require('node:assert')
const util = require('../src/lib/proxy/common/util')
let arr
arr = util.parseHostnameAndPort('www.baidu.com')
-console.log(arr)
-console.log(arr.length === 1) // true
-console.log(arr[0] === 'www.baidu.com') // true
+console.log('arr1:', arr)
+assert.strictEqual(arr.length === 1, true) // true
+assert.strictEqual(arr[0] === 'www.baidu.com', true) // true
arr = util.parseHostnameAndPort('www.baidu.com', 80)
-console.log(arr)
-console.log(arr.length === 2) // true
-console.log(arr[0] === 'www.baidu.com') // true
-console.log(arr[1] === 80) // true
+console.log('arr2:', arr)
+assert.strictEqual(arr.length === 2, true) // true
+assert.strictEqual(arr[0] === 'www.baidu.com', true) // true
+assert.strictEqual(arr[1] === 80, true) // true
arr = util.parseHostnameAndPort('www.baidu.com:8080')
-console.log(arr)
-console.log(arr.length === 2) // true
-console.log(arr[0] === 'www.baidu.com') // true
-console.log(arr[1] === 8080) // true
+console.log('arr3:', arr)
+assert.strictEqual(arr.length === 2, true) // true
+assert.strictEqual(arr[0] === 'www.baidu.com', true) // true
+assert.strictEqual(arr[1] === 8080, true) // true
arr = util.parseHostnameAndPort('www.baidu.com:8080', 8080)
-console.log(arr)
-console.log(arr.length === 2) // true
-console.log(arr[0] === 'www.baidu.com') // true
-console.log(arr[1] === 8080) // true
+console.log('arr4:', arr)
+assert.strictEqual(arr.length === 2, true) // true
+assert.strictEqual(arr[0] === 'www.baidu.com', true) // true
+assert.strictEqual(arr[1] === 8080, true) // true
arr = util.parseHostnameAndPort('[2001:abcd::1]')
-console.log(arr)
-console.log(arr.length === 1) // true
-console.log(arr[0] === '[2001:abcd::1]') // ture
+console.log('arr5:', arr)
+assert.strictEqual(arr.length === 1, true) // true
+assert.strictEqual(arr[0] === '[2001:abcd::1]', true) // ture
arr = util.parseHostnameAndPort('[2001:abcd::1]', 80)
-console.log(arr)
-console.log(arr.length === 2) // true
-console.log(arr[0] === '[2001:abcd::1]') // ture
-console.log(arr[1] === 80) // ture
+console.log('arr6:', arr)
+assert.strictEqual(arr.length === 2, true) // true
+assert.strictEqual(arr[0] === '[2001:abcd::1]', true) // ture
+assert.strictEqual(arr[1] === 80, true) // ture
arr = util.parseHostnameAndPort('[2001:abcd::1]:8080')
-console.log(arr)
-console.log(arr.length === 2) // true
-console.log(arr[0] === '[2001:abcd::1]') // true
-console.log(arr[1] === 8080) // ture
+console.log('arr7:', arr)
+assert.strictEqual(arr.length === 2, true) // true
+assert.strictEqual(arr[0] === '[2001:abcd::1]', true) // true
+assert.strictEqual(arr[1] === 8080, true) // ture
arr = util.parseHostnameAndPort('[2001:abcd::1]:8080', 8080)
-console.log(arr)
-console.log(arr.length === 2) // true
-console.log(arr[0] === '[2001:abcd::1]') // true
-console.log(arr[1] === 8080) // ture
+console.log('arr8:', arr)
+assert.strictEqual(arr.length === 2, true) // true
+assert.strictEqual(arr[0] === '[2001:abcd::1]', true) // true
+assert.strictEqual(arr[1] === 8080, true) // ture