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
70 lines
2 KiB
JavaScript
70 lines
2 KiB
JavaScript
|
|
'use strict';
|
|
|
|
const context = require('../helpers/context');
|
|
const assert = require('assert');
|
|
|
|
describe('ctx.type=', function(){
|
|
describe('with a mime', function(){
|
|
it('should set the Content-Type', function(){
|
|
const ctx = context();
|
|
ctx.type = 'text/plain';
|
|
ctx.type.should.equal('text/plain');
|
|
ctx.response.header['content-type'].should.equal('text/plain; charset=utf-8');
|
|
})
|
|
})
|
|
|
|
describe('with an extension', function(){
|
|
it('should lookup the mime', function(){
|
|
const ctx = context();
|
|
ctx.type = 'json';
|
|
ctx.type.should.equal('application/json');
|
|
ctx.response.header['content-type'].should.equal('application/json; charset=utf-8');
|
|
})
|
|
})
|
|
|
|
describe('without a charset', function(){
|
|
it('should default the charset', function(){
|
|
const ctx = context();
|
|
ctx.type = 'text/html';
|
|
ctx.type.should.equal('text/html');
|
|
ctx.response.header['content-type'].should.equal('text/html; charset=utf-8');
|
|
})
|
|
})
|
|
|
|
describe('with a charset', function(){
|
|
it('should not default the charset', function(){
|
|
const ctx = context();
|
|
ctx.type = 'text/html; charset=foo';
|
|
ctx.type.should.equal('text/html');
|
|
ctx.response.header['content-type'].should.equal('text/html; charset=foo');
|
|
})
|
|
})
|
|
|
|
describe('with an unknown extension', function(){
|
|
it('should default to application/octet-stream',function(){
|
|
const ctx = context();
|
|
ctx.type = 'asdf';
|
|
ctx.type.should.equal('application/octet-stream');
|
|
ctx.response.header['content-type'].should.equal('application/octet-stream');
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('ctx.type', function(){
|
|
describe('with no Content-Type', function(){
|
|
it('should return ""', function(){
|
|
const ctx = context();
|
|
// TODO: this is lame
|
|
assert('' === ctx.type);
|
|
})
|
|
})
|
|
|
|
describe('with a Content-Type', function(){
|
|
it('should return the mime', function(){
|
|
const ctx = context();
|
|
ctx.type = 'json';
|
|
ctx.type.should.equal('application/json');
|
|
})
|
|
})
|
|
})
|