71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| var express = require('../')
 | |
|   , request = require('supertest');
 | |
| 
 | |
| describe('req', function(){
 | |
|   describe('.fresh', function(){
 | |
|     it('should return true when the resource is not modified', function(done){
 | |
|       var app = express();
 | |
|       var etag = '"12345"';
 | |
| 
 | |
|       app.use(function(req, res){
 | |
|         res.set('ETag', etag);
 | |
|         res.send(req.fresh);
 | |
|       });
 | |
| 
 | |
|       request(app)
 | |
|       .get('/')
 | |
|       .set('If-None-Match', etag)
 | |
|       .expect(304, done);
 | |
|     })
 | |
| 
 | |
|     it('should return false when the resource is modified', function(done){
 | |
|       var app = express();
 | |
| 
 | |
|       app.use(function(req, res){
 | |
|         res.set('ETag', '"123"');
 | |
|         res.send(req.fresh);
 | |
|       });
 | |
| 
 | |
|       request(app)
 | |
|       .get('/')
 | |
|       .set('If-None-Match', '"12345"')
 | |
|       .expect(200, 'false', done);
 | |
|     })
 | |
| 
 | |
|     it('should return false without response headers', function(done){
 | |
|       var app = express();
 | |
| 
 | |
|       app.disable('x-powered-by')
 | |
|       app.use(function(req, res){
 | |
|         res.send(req.fresh);
 | |
|       });
 | |
| 
 | |
|       request(app)
 | |
|       .get('/')
 | |
|       .expect(200, 'false', done);
 | |
|     })
 | |
| 
 | |
|     it('should ignore "If-Modified-Since" when "If-None-Match" is present', function(done) {
 | |
|       var app = express();
 | |
|       const etag = '"FooBar"'
 | |
|       const now = Date.now()
 | |
| 
 | |
|       app.disable('x-powered-by')
 | |
|       app.use(function(req, res) {
 | |
|         res.set('Etag', etag)
 | |
|         res.set('Last-Modified', new Date(now).toUTCString())
 | |
|         res.send(req.fresh);
 | |
|       });
 | |
| 
 | |
|       request(app)
 | |
|         .get('/')
 | |
|         .set('If-Modified-Since', new Date(now - 1000).toUTCString)
 | |
|         .set('If-None-Match', etag)
 | |
|         .expect(304, done);
 | |
|     })
 | |
| 
 | |
|   })
 | |
| })
 |