Skip to content

Commit 3481040

Browse files
Fixed broken tests in old versions of WebKit
1 parent 90e2a66 commit 3481040

2 files changed

Lines changed: 50 additions & 14 deletions

File tree

karma.conf.js

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var baseConfig = {
2525
};
2626

2727
module.exports = function(config) {
28+
var debug = process.env.DEBUG ? process.env.DEBUG === 'true' : false;
2829
var karma = process.env.KARMA ? process.env.KARMA === 'true' : true;
2930
var coverage = process.env.KARMA_COVERAGE ? process.env.KARMA_COVERAGE === 'true' : true;
3031
var sauce = process.env.KARMA_SAUCE ? process.env.KARMA_SAUCE === 'true' : true;
@@ -37,21 +38,35 @@ module.exports = function(config) {
3738
return;
3839
}
3940

40-
if (coverage) {
41-
configureCodeCoverage(baseConfig);
42-
}
43-
44-
if (sauce && sauceUsername && sauceAccessKey) {
45-
configureSauceLabs(baseConfig);
41+
if (debug) {
42+
configureForDebugging(baseConfig);
4643
}
4744
else {
48-
configureLocalBrowsers(baseConfig);
45+
if (coverage) {
46+
configureCodeCoverage(baseConfig);
47+
}
48+
49+
if (sauce && sauceUsername && sauceAccessKey) {
50+
configureSauceLabs(baseConfig);
51+
}
52+
else {
53+
configureLocalBrowsers(baseConfig);
54+
}
4955
}
5056

5157
console.log('Karma Config:\n', JSON.stringify(baseConfig, null, 2));
5258
config.set(baseConfig);
5359
};
5460

61+
/**
62+
* Configures Karma to only run Chrome, and with unminified source code.
63+
* This is intended for debugging purposes only.
64+
*/
65+
function configureForDebugging(config) {
66+
config.files.splice(config.files.indexOf('dist/ref-parser.min.js'), 1, 'dist/ref-parser.js');
67+
config.browsers = ['Chrome'];
68+
}
69+
5570
/**
5671
* Configures the code-coverage reporter
5772
*/

tests/specs/unknown/unknown.spec.js

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
'use strict';
22

33
describe('Schema with $refs to unknown file types', function() {
4+
var windowOnError, testDone;
5+
6+
beforeEach(function() {
7+
// Some old Webkit browsers throw an error when downloading zero-byte files.
8+
windowOnError = global.onerror;
9+
global.onerror = function() {
10+
testDone();
11+
return true;
12+
}
13+
});
14+
15+
afterEach(function() {
16+
global.onerror = windowOnError;
17+
});
18+
419
it('should parse successfully', function(done) {
20+
testDone = done;
521
var parser = new $RefParser();
622
parser
723
.parse(path.rel('specs/unknown/unknown.yaml'))
@@ -14,15 +30,19 @@ describe('Schema with $refs to unknown file types', function() {
1430
.catch(helper.shouldNotGetCalled(done));
1531
});
1632

17-
it('should resolve successfully', helper.testResolve(
18-
'specs/unknown/unknown.yaml', helper.parsed.unknown.schema,
19-
'specs/unknown/files/blank', helper.parsed.unknown.blank,
20-
'specs/unknown/files/text.txt', helper.parsed.unknown.text,
21-
'specs/unknown/files/page.html', helper.parsed.unknown.html,
22-
'specs/unknown/files/binary.png', helper.parsed.unknown.binary
23-
));
33+
it('should resolve successfully', function(done) {
34+
testDone = done;
35+
helper.testResolve(
36+
'specs/unknown/unknown.yaml', helper.parsed.unknown.schema,
37+
'specs/unknown/files/blank', helper.parsed.unknown.blank,
38+
'specs/unknown/files/text.txt', helper.parsed.unknown.text,
39+
'specs/unknown/files/page.html', helper.parsed.unknown.html,
40+
'specs/unknown/files/binary.png', helper.parsed.unknown.binary
41+
)(done);
42+
});
2443

2544
it('should dereference successfully', function(done) {
45+
testDone = done;
2646
var parser = new $RefParser();
2747
parser
2848
.dereference(path.rel('specs/unknown/unknown.yaml'))
@@ -39,6 +59,7 @@ describe('Schema with $refs to unknown file types', function() {
3959
});
4060

4161
it('should bundle successfully', function(done) {
62+
testDone = done;
4263
var parser = new $RefParser();
4364
parser
4465
.bundle(path.rel('specs/unknown/unknown.yaml'))

0 commit comments

Comments
 (0)