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; }) }) }) })