208 lines
5.7 KiB
JavaScript
208 lines
5.7 KiB
JavaScript
'use strict'
|
|
|
|
var assert = require('node:assert');
|
|
var express = require('..');
|
|
|
|
describe('config', function () {
|
|
describe('.set()', function () {
|
|
it('should set a value', function () {
|
|
var app = express();
|
|
app.set('foo', 'bar');
|
|
assert.equal(app.get('foo'), 'bar');
|
|
})
|
|
|
|
it('should set prototype values', function () {
|
|
var app = express()
|
|
app.set('hasOwnProperty', 42)
|
|
assert.strictEqual(app.get('hasOwnProperty'), 42)
|
|
})
|
|
|
|
it('should return the app', function () {
|
|
var app = express();
|
|
assert.equal(app.set('foo', 'bar'), app);
|
|
})
|
|
|
|
it('should return the app when undefined', function () {
|
|
var app = express();
|
|
assert.equal(app.set('foo', undefined), app);
|
|
})
|
|
|
|
it('should return set value', function () {
|
|
var app = express()
|
|
app.set('foo', 'bar')
|
|
assert.strictEqual(app.set('foo'), 'bar')
|
|
})
|
|
|
|
it('should return undefined for prototype values', function () {
|
|
var app = express()
|
|
assert.strictEqual(app.set('hasOwnProperty'), undefined)
|
|
})
|
|
|
|
describe('"etag"', function(){
|
|
it('should throw on bad value', function(){
|
|
var app = express();
|
|
assert.throws(app.set.bind(app, 'etag', 42), /unknown value/);
|
|
})
|
|
|
|
it('should set "etag fn"', function(){
|
|
var app = express()
|
|
var fn = function(){}
|
|
app.set('etag', fn)
|
|
assert.equal(app.get('etag fn'), fn)
|
|
})
|
|
})
|
|
|
|
describe('"trust proxy"', function(){
|
|
it('should set "trust proxy fn"', function(){
|
|
var app = express()
|
|
var fn = function(){}
|
|
app.set('trust proxy', fn)
|
|
assert.equal(app.get('trust proxy fn'), fn)
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('.get()', function(){
|
|
it('should return undefined when unset', function(){
|
|
var app = express();
|
|
assert.strictEqual(app.get('foo'), undefined);
|
|
})
|
|
|
|
it('should return undefined for prototype values', function () {
|
|
var app = express()
|
|
assert.strictEqual(app.get('hasOwnProperty'), undefined)
|
|
})
|
|
|
|
it('should otherwise return the value', function(){
|
|
var app = express();
|
|
app.set('foo', 'bar');
|
|
assert.equal(app.get('foo'), 'bar');
|
|
})
|
|
|
|
describe('when mounted', function(){
|
|
it('should default to the parent app', function(){
|
|
var app = express();
|
|
var blog = express();
|
|
|
|
app.set('title', 'Express');
|
|
app.use(blog);
|
|
assert.equal(blog.get('title'), 'Express');
|
|
})
|
|
|
|
it('should given precedence to the child', function(){
|
|
var app = express();
|
|
var blog = express();
|
|
|
|
app.use(blog);
|
|
app.set('title', 'Express');
|
|
blog.set('title', 'Some Blog');
|
|
|
|
assert.equal(blog.get('title'), 'Some Blog');
|
|
})
|
|
|
|
it('should inherit "trust proxy" setting', function () {
|
|
var app = express();
|
|
var blog = express();
|
|
|
|
function fn() { return false }
|
|
|
|
app.set('trust proxy', fn);
|
|
assert.equal(app.get('trust proxy'), fn);
|
|
assert.equal(app.get('trust proxy fn'), fn);
|
|
|
|
app.use(blog);
|
|
|
|
assert.equal(blog.get('trust proxy'), fn);
|
|
assert.equal(blog.get('trust proxy fn'), fn);
|
|
})
|
|
|
|
it('should prefer child "trust proxy" setting', function () {
|
|
var app = express();
|
|
var blog = express();
|
|
|
|
function fn1() { return false }
|
|
function fn2() { return true }
|
|
|
|
app.set('trust proxy', fn1);
|
|
assert.equal(app.get('trust proxy'), fn1);
|
|
assert.equal(app.get('trust proxy fn'), fn1);
|
|
|
|
blog.set('trust proxy', fn2);
|
|
assert.equal(blog.get('trust proxy'), fn2);
|
|
assert.equal(blog.get('trust proxy fn'), fn2);
|
|
|
|
app.use(blog);
|
|
|
|
assert.equal(app.get('trust proxy'), fn1);
|
|
assert.equal(app.get('trust proxy fn'), fn1);
|
|
assert.equal(blog.get('trust proxy'), fn2);
|
|
assert.equal(blog.get('trust proxy fn'), fn2);
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('.enable()', function(){
|
|
it('should set the value to true', function(){
|
|
var app = express();
|
|
assert.equal(app.enable('tobi'), app);
|
|
assert.strictEqual(app.get('tobi'), true);
|
|
})
|
|
|
|
it('should set prototype values', function () {
|
|
var app = express()
|
|
app.enable('hasOwnProperty')
|
|
assert.strictEqual(app.get('hasOwnProperty'), true)
|
|
})
|
|
})
|
|
|
|
describe('.disable()', function(){
|
|
it('should set the value to false', function(){
|
|
var app = express();
|
|
assert.equal(app.disable('tobi'), app);
|
|
assert.strictEqual(app.get('tobi'), false);
|
|
})
|
|
|
|
it('should set prototype values', function () {
|
|
var app = express()
|
|
app.disable('hasOwnProperty')
|
|
assert.strictEqual(app.get('hasOwnProperty'), false)
|
|
})
|
|
})
|
|
|
|
describe('.enabled()', function(){
|
|
it('should default to false', function(){
|
|
var app = express();
|
|
assert.strictEqual(app.enabled('foo'), false);
|
|
})
|
|
|
|
it('should return true when set', function(){
|
|
var app = express();
|
|
app.set('foo', 'bar');
|
|
assert.strictEqual(app.enabled('foo'), true);
|
|
})
|
|
|
|
it('should default to false for prototype values', function () {
|
|
var app = express()
|
|
assert.strictEqual(app.enabled('hasOwnProperty'), false)
|
|
})
|
|
})
|
|
|
|
describe('.disabled()', function(){
|
|
it('should default to true', function(){
|
|
var app = express();
|
|
assert.strictEqual(app.disabled('foo'), true);
|
|
})
|
|
|
|
it('should return false when set', function(){
|
|
var app = express();
|
|
app.set('foo', 'bar');
|
|
assert.strictEqual(app.disabled('foo'), false);
|
|
})
|
|
|
|
it('should default to true for prototype values', function () {
|
|
var app = express()
|
|
assert.strictEqual(app.disabled('hasOwnProperty'), true)
|
|
})
|
|
})
|
|
})
|