39 lines
1 KiB
JavaScript
39 lines
1 KiB
JavaScript
|
|
||
|
var context = require('../context');
|
||
|
|
||
|
describe('ctx.fresh', function(){
|
||
|
describe('the response is non-2xx', function(){
|
||
|
it('should return false', function(){
|
||
|
var ctx = context();
|
||
|
ctx.status = 404;
|
||
|
ctx.req.method = 'GET';
|
||
|
ctx.req.headers['if-none-match'] = '123';
|
||
|
ctx.set('ETag', '123');
|
||
|
ctx.fresh.should.be.false;
|
||
|
})
|
||
|
});
|
||
|
|
||
|
describe('the response is 2xx', function(){
|
||
|
describe('and etag matches', function(){
|
||
|
it('should return true', function(){
|
||
|
var ctx = context();
|
||
|
ctx.status = 200;
|
||
|
ctx.req.method = 'GET';
|
||
|
ctx.req.headers['if-none-match'] = '123';
|
||
|
ctx.set('ETag', '123');
|
||
|
ctx.fresh.should.be.true;
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('and etag do not match', function(){
|
||
|
it('should return false', function(){
|
||
|
var ctx = context();
|
||
|
ctx.status = 200;
|
||
|
ctx.req.method = 'GET';
|
||
|
ctx.req.headers['if-none-match'] = '123';
|
||
|
ctx.set('ETag', 'hey');
|
||
|
ctx.fresh.should.be.false;
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|