2
0
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:
Matt Zabriskie
2015-12-24 11:44:46 -07:00
parent cdedbf0bb1
commit 82847f737e
6 changed files with 176 additions and 49 deletions
+116
View File
@@ -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);
});
});
+15
View File
@@ -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
}
});
});
});