2
0
mirror of https://github.com/tenrok/axios.git synced 2026-05-21 13:24:11 +03:00
Files
axios/test/specs/helpers/validator.spec.js
T
Dmitriy Mozgovoy 5ad6994da3 JSON improvements: throw if JSON parsing failed; number, boolean can be passed directly as payload for encoding to JSON #2613, #61, #907 (#3688)
* Draft

* Added support for primitive types to be converted to JSON if the request Content-Type is 'application/json';
Added throwing SyntaxError if JSON parsing failed and responseType is json;
Added transitional option object;
Added options validator to assert transitional options;
Added transitional option `silentJSONParsing= true` for backward compatibility;
Updated README.md;
Updated typings;

* Fixed isOlderVersion helper;
Fixed typo;
Added validator.spec.js;

* Added forcedJSONParsing transitional option #2791

* `transformData` is now called in the default configuration context if the function context is not specified (for tests compatibility);

* Added `transitional.clarifyTimeoutError` to throw ETIMEDOUT error instead of generic ECONNABORTED on request timeouts;
Added support of onloadend handler if available instead of onreadystatechange;
Added xhr timeout test;
Fixed potential bug of xhr adapter with proper handling timeouts&errors (FakeXMLHTTPRequest failed to handle timeouts);
2021-04-19 18:55:34 +02:00

59 lines
1.7 KiB
JavaScript

'use strict';
var validator = require('../../../lib/helpers/validator');
describe('validator::isOlderVersion', function () {
it('should return true if dest version is older than the package version', function () {
expect(validator.isOlderVersion('0.0.1', '1.0.0')).toEqual(true);
expect(validator.isOlderVersion('0.0.1', '0.1.0')).toEqual(true);
expect(validator.isOlderVersion('0.0.1', '0.0.1')).toEqual(false);
expect(validator.isOlderVersion('100.0.0', '1.0.0')).toEqual(false);
expect(validator.isOlderVersion('100.0.0', '0.1.0')).toEqual(false);
expect(validator.isOlderVersion('100.0.0', '0.0.1')).toEqual(false);
expect(validator.isOlderVersion('0.10000.0', '1000.0.1')).toEqual(true);
});
});
describe('validator::assertOptions', function () {
it('should throw only if unknown an option was passed', function () {
expect(function() {
validator.assertOptions({
x: true
}, {
y: validator.validators.boolean
});
}).toThrow(new Error('Unknown option x'));
expect(function() {
validator.assertOptions({
x: true
}, {
x: validator.validators.boolean,
y: validator.validators.boolean
});
}).not.toThrow(new Error('Unknown option x'));
});
it('should throw TypeError only if option type doesn\'t match', function () {
expect(function() {
validator.assertOptions({
x: 123
}, {
x: validator.validators.boolean
});
}).toThrow(new TypeError('option x must be a boolean'));
expect(function() {
validator.assertOptions({
x: true
}, {
x: validator.validators.boolean,
y: validator.validators.boolean
});
}).not.toThrow();
});
});