e8f79d43f9
closes #517 add index test for Application add app.toJSON test add test for app.inspect() add tests for app.use() add tests for app.onerror() add tests for app.respond() add tests for app.context() add tests for app.request() add tests for app.response refactor for non-existence of test/app...js no need for *.js use helpers/ dir for non-tests
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
|
|
'use strict';
|
|
|
|
const Stream = require('stream');
|
|
const http = require('http');
|
|
const koa = require('../../');
|
|
const context = require('../helpers/context');
|
|
|
|
describe('ctx.href', function(){
|
|
it('should return the full request url', function(){
|
|
const socket = new Stream.Duplex();
|
|
const req = {
|
|
url: '/users/1?next=/dashboard',
|
|
headers: {
|
|
host: 'localhost'
|
|
},
|
|
socket: socket,
|
|
__proto__: Stream.Readable.prototype
|
|
};
|
|
const ctx = context(req);
|
|
ctx.href.should.equal('http://localhost/users/1?next=/dashboard');
|
|
// change it also work
|
|
ctx.url = '/foo/users/1?next=/dashboard';
|
|
ctx.href.should.equal('http://localhost/users/1?next=/dashboard');
|
|
})
|
|
|
|
it('should work with `GET http://example.com/foo`', function(done){
|
|
const app = koa()
|
|
app.use(function* (){
|
|
this.body = this.href
|
|
})
|
|
app.listen(function(){
|
|
const address = this.address()
|
|
http.get({
|
|
host: 'localhost',
|
|
path: 'http://example.com/foo',
|
|
port: address.port
|
|
}, function(res){
|
|
res.statusCode.should.equal(200)
|
|
var buf = ''
|
|
res.setEncoding('utf8')
|
|
res.on('data', function(s){ buf += s })
|
|
res.on('end', function(){
|
|
buf.should.equal('http://example.com/foo')
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})
|