forked from axios/axios
/
mergeConfig.spec.js
67 lines (59 loc) · 2.26 KB
/
mergeConfig.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var defaults = require('../../../lib/defaults');
var mergeConfig = require('../../../lib/core/mergeConfig');
describe('core::mergeConfig', function() {
it('should accept undefined for second argument', function() {
expect(mergeConfig(defaults, undefined)).toEqual(defaults);
});
it('should accept an object for second argument', function() {
expect(mergeConfig(defaults, {})).toEqual(defaults);
});
it('should not leave references', function() {
var merged = mergeConfig(defaults, {});
expect(merged).not.toBe(defaults);
expect(merged.headers).not.toBe(defaults.headers);
});
it('should allow setting request options', function() {
var config = {
url: '__sample url__',
method: '__sample method__',
params: '__sample params__',
data: { foo: true }
};
var merged = mergeConfig(defaults, config);
expect(merged.url).toEqual(config.url);
expect(merged.method).toEqual(config.method);
expect(merged.params).toEqual(config.params);
expect(merged.data).toEqual(config.data);
});
it('should not inherit request options', function() {
var localDefaults = {
method: '__sample method__',
params: '__sample params__',
data: { foo: true }
};
var merged = mergeConfig(localDefaults, {});
expect(merged.method).toEqual(undefined);
expect(merged.params).toEqual(undefined);
expect(merged.data).toEqual(undefined);
});
it('should merge auth, headers, proxy with defaults', function() {
expect(mergeConfig({ auth: undefined }, { auth: { user: 'foo', pass: 'test' } })).toEqual({
auth: { user: 'foo', pass: 'test' }
});
expect(mergeConfig({ auth: { user: 'foo', pass: 'test' } }, { auth: { pass: 'foobar' } })).toEqual({
auth: { user: 'foo', pass: 'foobar' }
});
});
it('should overwrite auth, headers, proxy with a non-object value', function() {
expect(mergeConfig({ auth: { user: 'foo', pass: 'test' } }, { auth: false })).toEqual({
auth: false
});
expect(mergeConfig({ auth: { user: 'foo', pass: 'test' } }, { auth: null })).toEqual({
auth: null
});
});
it('should allow setting other options', function() {
var merged = mergeConfig(defaults, { timeout: 123 });
expect(merged.timeout).toEqual(123);
});
});