mirror of
https://github.com/tenrok/axios.git
synced 2026-06-17 19:21:29 +03:00
Fixing config weirdness
This commit is contained in:
@@ -1,6 +1,22 @@
|
||||
var axios = require('../../index');
|
||||
var defaults = require('../../lib/defaults');
|
||||
var utils = require('../../lib/utils');
|
||||
|
||||
describe('defaults', function () {
|
||||
var __defaults;
|
||||
var XSRF_COOKIE_NAME = 'CUSTOM-XSRF-TOKEN';
|
||||
|
||||
beforeEach(function () {
|
||||
jasmine.Ajax.install();
|
||||
__defaults = axios.defaults;
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
jasmine.Ajax.uninstall();
|
||||
axios.defaults = __defaults;
|
||||
document.cookie = XSRF_COOKIE_NAME + '=;expires=' + new Date(Date.now() - 86400000).toGMTString();
|
||||
});
|
||||
|
||||
it('should transform request json', function () {
|
||||
expect(defaults.transformRequest[0]({foo: 'bar'})).toEqual('{"foo":"bar"}');
|
||||
});
|
||||
@@ -19,5 +35,105 @@ describe('defaults', function () {
|
||||
it('should do nothing to response string', function () {
|
||||
expect(defaults.transformResponse[0]('foo=bar')).toEqual('foo=bar');
|
||||
});
|
||||
|
||||
it('should use global defaults config', function (done) {
|
||||
var request;
|
||||
|
||||
axios({ url: '/foo' });
|
||||
|
||||
setTimeout(function () {
|
||||
request = jasmine.Ajax.requests.mostRecent();
|
||||
|
||||
expect(request.url).toBe('/foo');
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
it('should use modified defaults config', function (done) {
|
||||
var request;
|
||||
axios.defaults.baseURL = 'http://example.com/';
|
||||
|
||||
axios({ url: '/foo' });
|
||||
|
||||
setTimeout(function () {
|
||||
request = jasmine.Ajax.requests.mostRecent();
|
||||
|
||||
expect(request.url).toBe('http://example.com/foo');
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
it('should use request config', function (done) {
|
||||
var request;
|
||||
|
||||
axios({
|
||||
url: '/foo',
|
||||
baseURL: 'http://www.example.com'
|
||||
});
|
||||
|
||||
setTimeout(function () {
|
||||
request = jasmine.Ajax.requests.mostRecent();
|
||||
|
||||
expect(request.url).toBe('http://www.example.com/foo');
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
it('should use default config for custom instance', function (done) {
|
||||
var request;
|
||||
var instance = axios.create({
|
||||
xsrfCookieName: XSRF_COOKIE_NAME,
|
||||
xsrfHeaderName: 'X-CUSTOM-XSRF-TOKEN'
|
||||
});
|
||||
document.cookie = instance.defaults.xsrfCookieName + '=foobarbaz';
|
||||
|
||||
instance.get('/foo');
|
||||
|
||||
setTimeout(function () {
|
||||
request = jasmine.Ajax.requests.mostRecent();
|
||||
|
||||
expect(request.requestHeaders[instance.defaults.xsrfHeaderName]).toEqual('foobarbaz');
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
it('should use header config', function (done) {
|
||||
var request;
|
||||
var instance = axios.create({
|
||||
headers: {
|
||||
common: {
|
||||
'X-COMMON-HEADER': 'commonHeaderValue'
|
||||
},
|
||||
get: {
|
||||
'X-GET-HEADER': 'getHeaderValue'
|
||||
},
|
||||
post: {
|
||||
'X-POST-HEADER': 'postHeaderValue'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
instance.get('/foo', {
|
||||
headers: {
|
||||
'X-FOO-HEADER': 'fooHeaderValue',
|
||||
'X-BAR-HEADER': 'barHeaderValue'
|
||||
}
|
||||
});
|
||||
|
||||
setTimeout(function () {
|
||||
request = jasmine.Ajax.requests.mostRecent();
|
||||
|
||||
expect(request.requestHeaders).toEqual(
|
||||
utils.merge(defaults.headers.common, {
|
||||
'X-COMMON-HEADER': 'commonHeaderValue',
|
||||
'X-GET-HEADER': 'getHeaderValue',
|
||||
'X-FOO-HEADER': 'fooHeaderValue',
|
||||
'X-BAR-HEADER': 'barHeaderValue'
|
||||
})
|
||||
);
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -23,5 +23,20 @@ describe('utils::merge', function () {
|
||||
expect(d.foo).toEqual(789);
|
||||
expect(d.bar).toEqual(456);
|
||||
});
|
||||
|
||||
it('should merge recursively', function () {
|
||||
var a = {foo: {bar: 123}};
|
||||
var b = {foo: {baz: 456}, bar: {qux: 789}};
|
||||
|
||||
expect(merge(a, b)).toEqual({
|
||||
foo: {
|
||||
bar: 123,
|
||||
baz: 456
|
||||
},
|
||||
bar: {
|
||||
qux: 789
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user