fix(deps)!: mime-types@^3.0.0 (#5882)
[express.git] / test / res.vary.js
blobff3c97165294d175679e8a0bb3e5a8fc857fb270
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 throw error', 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(500, /field.*required/, done)
23 describe('with an empty array', function(){
24 it('should not set Vary', function (done) {
25 var app = express();
27 app.use(function (req, res) {
28 res.vary([]);
29 res.end();
30 });
32 request(app)
33 .get('/')
34 .expect(utils.shouldNotHaveHeader('Vary'))
35 .expect(200, done);
39 describe('with an array', function(){
40 it('should set the values', function (done) {
41 var app = express();
43 app.use(function (req, res) {
44 res.vary(['Accept', 'Accept-Language', 'Accept-Encoding']);
45 res.end();
46 });
48 request(app)
49 .get('/')
50 .expect('Vary', 'Accept, Accept-Language, Accept-Encoding')
51 .expect(200, done);
55 describe('with a string', function(){
56 it('should set the value', function (done) {
57 var app = express();
59 app.use(function (req, res) {
60 res.vary('Accept');
61 res.end();
62 });
64 request(app)
65 .get('/')
66 .expect('Vary', 'Accept')
67 .expect(200, done);
71 describe('when the value is present', function(){
72 it('should not add it again', function (done) {
73 var app = express();
75 app.use(function (req, res) {
76 res.vary('Accept');
77 res.vary('Accept-Encoding');
78 res.vary('Accept-Encoding');
79 res.vary('Accept-Encoding');
80 res.vary('Accept');
81 res.end();
82 });
84 request(app)
85 .get('/')
86 .expect('Vary', 'Accept, Accept-Encoding')
87 .expect(200, done);