deps: body-parser@1.20.0
[express.git] / test / res.vary.js
blob1efc20b44530dc53bb320d3df75b5b2d80cb65fd
1 'use strict'
3 var express = require('..');
4 var request = require('supertest');
5 var utils = require('./support/utils');
7 describe('res.vary()', function(){
8   describe('with no arguments', function(){
9     it('should not set Vary', function (done) {
10       var app = express();
12       app.use(function (req, res) {
13         res.vary();
14         res.end();
15       });
17       request(app)
18       .get('/')
19       .expect(utils.shouldNotHaveHeader('Vary'))
20       .expect(200, done);
21     })
22   })
24   describe('with an empty array', function(){
25     it('should not set Vary', function (done) {
26       var app = express();
28       app.use(function (req, res) {
29         res.vary([]);
30         res.end();
31       });
33       request(app)
34       .get('/')
35       .expect(utils.shouldNotHaveHeader('Vary'))
36       .expect(200, done);
37     })
38   })
40   describe('with an array', function(){
41     it('should set the values', function (done) {
42       var app = express();
44       app.use(function (req, res) {
45         res.vary(['Accept', 'Accept-Language', 'Accept-Encoding']);
46         res.end();
47       });
49       request(app)
50       .get('/')
51       .expect('Vary', 'Accept, Accept-Language, Accept-Encoding')
52       .expect(200, done);
53     })
54   })
56   describe('with a string', function(){
57     it('should set the value', function (done) {
58       var app = express();
60       app.use(function (req, res) {
61         res.vary('Accept');
62         res.end();
63       });
65       request(app)
66       .get('/')
67       .expect('Vary', 'Accept')
68       .expect(200, done);
69     })
70   })
72   describe('when the value is present', function(){
73     it('should not add it again', function (done) {
74       var app = express();
76       app.use(function (req, res) {
77         res.vary('Accept');
78         res.vary('Accept-Encoding');
79         res.vary('Accept-Encoding');
80         res.vary('Accept-Encoding');
81         res.vary('Accept');
82         res.end();
83       });
85       request(app)
86       .get('/')
87       .expect('Vary', 'Accept, Accept-Encoding')
88       .expect(200, done);
89     })
90   })