From 0056ca2fc9006c0d7805660d3e5c0e99b3ac456a Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Fri, 17 Jan 2025 21:53:09 +0800 Subject: [PATCH] feat: support trace method request --- package.json | 4 ++-- src/agent.ts | 3 +++ src/request.ts | 3 +++ test/supertest.test.ts | 23 +++++++++++++++++++++++ 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fa80f33..180f349 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "superagent": "^9.0.1" }, "devDependencies": { - "@arethetypeswrong/cli": "^0.17.1", + "@arethetypeswrong/cli": "^0.17.3", + "@eggjs/bin": "7", "@eggjs/tsconfig": "1", "@types/body-parser": "^1.19.5", "@types/cookie-parser": "^1.4.8", @@ -37,7 +38,6 @@ "@types/node": "22", "body-parser": "^1.20.3", "cookie-parser": "^1.4.6", - "egg-bin": "6", "eslint": "8", "eslint-config-egg": "14", "express": "^4.18.2", diff --git a/src/agent.ts b/src/agent.ts index 2363228..948b54b 100644 --- a/src/agent.ts +++ b/src/agent.ts @@ -83,6 +83,9 @@ export class TestAgent extends Agent { options(url: string) { return this._testRequest('options', url); } + trace(url: string) { + return this._testRequest('trace', url); + } } // allow keep use by `agent()` diff --git a/src/request.ts b/src/request.ts index 538b6ee..b90781b 100644 --- a/src/request.ts +++ b/src/request.ts @@ -56,4 +56,7 @@ export class Request { options(url: string) { return this._testRequest('options', url); } + trace(url: string) { + return this._testRequest('trace', url); + } } diff --git a/test/supertest.test.ts b/test/supertest.test.ts index 446634b..84a606e 100644 --- a/test/supertest.test.ts +++ b/test/supertest.test.ts @@ -204,6 +204,18 @@ describe('request(app)', function() { .expect('Hello', done); }); + it('should work on trace method', function(done) { + const app = express(); + + app.trace('/', function(_req, res) { + res.end('Hello'); + }); + + request(app) + .trace('/') + .expect('Hello', done); + }); + it('should default redirects to 0', function(done) { const app = express(); @@ -1078,6 +1090,11 @@ describe('request.agent(app)', function() { res.send(); }); + app.trace('/', function(_req, res) { + res.cookie('cookie', 'hey'); + res.send('trace method'); + }); + app.get('/return_cookies', function(req, res) { if (req.cookies.cookie) res.send(req.cookies.cookie); else res.send(':('); @@ -1105,6 +1122,12 @@ describe('request.agent(app)', function() { .get('/return_headers') .expect('hey', done); }); + + it('should trace method work', function(done) { + agent + .trace('/') + .expect('trace method', done); + }); }); describe('agent.host(host)', function() {