63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
describe('xhr-status', function () {
|
|
'use strict';
|
|
|
|
var assume = require('assume')
|
|
, status = require('./');
|
|
|
|
it('is exported as function', function () {
|
|
assume(status).is.a('function');
|
|
});
|
|
|
|
it('corrects the 1233 status code', function () {
|
|
var xhr = {
|
|
status: 1233,
|
|
responseText: 'moo',
|
|
responseURL: 'http://google.com/204'
|
|
};
|
|
|
|
assume(status(xhr).code).equals(204);
|
|
assume(status(xhr).error).equals(false);
|
|
assume(status(xhr).text).equals('OK');
|
|
});
|
|
|
|
it('corrects status code 0 to 200 for local files', function () {
|
|
var xhr = {
|
|
status: 0,
|
|
responseText: 'moo',
|
|
responseURL: 'file://google/com/204'
|
|
};
|
|
|
|
assume(status(xhr).code).equals(200);
|
|
assume(status(xhr).error).equals(false);
|
|
assume(status(xhr).text).equals('OK');
|
|
});
|
|
|
|
it('keep status 0 for non local requests', function () {
|
|
var xhr = {
|
|
status: 0,
|
|
responseText: 'moo',
|
|
responseURL: 'http://google.com/204'
|
|
};
|
|
|
|
assume(status(xhr).code).equals(0);
|
|
assume(status(xhr).error).equals(true);
|
|
assume(status(xhr).text).equals('An unknown error occured');
|
|
});
|
|
|
|
it('uses a blank statusText if it throws (firefox edgecase)', function () {
|
|
var xhr = {
|
|
status: 404,
|
|
responseURL: 'http://google.com/204'
|
|
};
|
|
|
|
Object.defineProperty(xhr, 'statusText', {
|
|
get: function () {
|
|
throw new Error('lol cakes');
|
|
}
|
|
});
|
|
|
|
assume(status(xhr).error).equals(true);
|
|
assume(status(xhr).code).equals(404);
|
|
assume(status(xhr).text).equals('');
|
|
});
|
|
});
|