diff options
Diffstat (limited to 'node_modules/supertest/lib/agent.js')
| -rw-r--r-- | node_modules/supertest/lib/agent.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/node_modules/supertest/lib/agent.js b/node_modules/supertest/lib/agent.js new file mode 100644 index 0000000..ccd2cfd --- /dev/null +++ b/node_modules/supertest/lib/agent.js @@ -0,0 +1,54 @@ + +/** + * Module dependencies. + */ + +var Agent = require('superagent').agent + , methods = require('methods') + , http = require('http') + , Test = require('./test'); + +/** + * Expose `Agent`. + */ + +module.exports = TestAgent; + +/** + * Initialize a new `TestAgent`. + * + * @param {Function|Server} app + * @param {Object} options + * @api public + */ + +function TestAgent(app, options){ + if (!(this instanceof TestAgent)) return new TestAgent(app, options); + if ('function' == typeof app) app = http.createServer(app); + if (options) this._ca = options.ca; + Agent.call(this); + this.app = app; +} + +/** + * Inherits from `Agent.prototype`. + */ + +TestAgent.prototype.__proto__ = Agent.prototype; + +// override HTTP verb methods +methods.forEach(function(method){ + TestAgent.prototype[method] = function(url, fn){ + var req = new Test(this.app, method.toUpperCase(), url); + req.ca(this._ca); + + req.on('response', this.saveCookies.bind(this)); + req.on('redirect', this.saveCookies.bind(this)); + req.on('redirect', this.attachCookies.bind(this, req)); + this.attachCookies(req); + + return req; + }; +}); + +TestAgent.prototype.del = TestAgent.prototype.delete; |
