Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Broke the tests up so they are separated by category instead of being in one big file. Test browsers are now run using Karma. I also improved the Sauce setup so it works more predictably. The [full matrix of browsers to test on Sauce can be found in karma.conf.js. We may want to slim this list down for most PRs because Sauce itself is quite flaky, particularly for things like connecting to test iOS devices. - Removed all bundled polyfills for things like Node.contains, and Element.prototype.matches. Instead, we ask folks who need these polyfills to load them with polyfill.io. I updated the Readme to include the script they need to include to make this happen. - Removed usage of for...of and replaced with forEach. I needed to do this because Babel transpiles for...of using Symbol (meaning we need yet another polyfill) and the Symbol polyfill was causing issues in IE11. - Replaced Promise.resolve().then in async tests with a simple setTimeout(fn, 0). For whatever reason done() was never being called in IE11 in these async tests. Swapping out Promise with setTimeout did the trick. - Added a workaround to inert.js to handle an IE11 blur() quirk.
- Loading branch information
Showing
28 changed files
with
5,825 additions
and
2,403 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,10 @@ | ||
{ | ||
"presets": [ | ||
[ | ||
"es2015", | ||
{ | ||
"modules": false | ||
["env", { | ||
"modules": false, | ||
"targets": { | ||
"browsers": ["last 2 versions", "ie 9"] | ||
} | ||
] | ||
], | ||
"plugins": [ | ||
"external-helpers" | ||
}] | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1 @@ | ||
rollup.config.js | ||
dist/**/*.js | ||
node_modules/**/*.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
node_modules | ||
.vscode | ||
npm-debug.log | ||
dist | ||
.vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,4 @@ | ||
--- | ||
language: node_js | ||
node_js: | ||
- "6" | ||
|
||
env: | ||
global: | ||
- SAUCE_USERNAME=robdodson_inert | ||
- SAUCE_ACCESS_KEY=a844aee9-d3ec-4566-94e3-dba3d0c30248 | ||
- "8" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
const path = require('path'); | ||
|
||
module.exports = function(config) { | ||
config.set({ | ||
plugins: [ | ||
'karma-chrome-launcher', | ||
'karma-firefox-launcher', | ||
'karma-mocha', | ||
'karma-chai', | ||
'karma-polyfill', | ||
'karma-spec-reporter', | ||
'karma-sourcemap-loader', | ||
'karma-fixture', | ||
'karma-html2js-preprocessor', | ||
'karma-sauce-launcher', | ||
], | ||
// Change this to 'Chrome' if you would like to debug. | ||
// Can also add additional local browsers like 'Firefox'. | ||
browsers: ['ChromeHeadless'], | ||
// Set this to false to leave the browser open for debugging. | ||
// You'll probably also need to remove the afterEach block in your tests | ||
// so the content is not removed from the page you're trying to debug. | ||
// To isolate a test, use `it.only`. | ||
// https://mochajs.org/#exclusive-tests | ||
singleRun: true, | ||
// Use the mocha test framework with chai assertions. | ||
// Use polyfills loaded from Polyfill.io. | ||
// Use an html fixture loader. | ||
frameworks: ['mocha', 'chai', 'polyfill', 'fixture'], | ||
// List of polyfills to load from Polyfill.io. | ||
polyfill: [ | ||
'Array.from', // Used in tests. | ||
'Promise', | ||
'Map', | ||
'Set', | ||
'Element.prototype.matches', | ||
'Node.prototype.contains', | ||
], | ||
preprocessors: { | ||
'**/*.html': ['html2js'], | ||
}, | ||
// The root path location that will be used to resolve all relative paths | ||
// defined in files and exclude. | ||
basePath: path.resolve(__dirname), | ||
// Things in the files array will be injected into the page. | ||
files: [ | ||
'dist/inert.js', | ||
'test/fixtures/**/*', | ||
'test/specs/helpers/**/*', | ||
'test/specs/**/*.spec.js', | ||
], | ||
// Report output to console. | ||
reporters: ['spec'], | ||
}); | ||
|
||
// If we're on Travis, override config settings and run tests on SauceLabs. | ||
if (process.env.TRAVIS || process.env.SAUCE) { | ||
// List of browsers to test on SauceLabs. | ||
// To add more browsers, use: | ||
// https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/ | ||
// This set of browsers was copied from: | ||
// https://github.com/angular/angular.js/blob/master/karma-shared.conf.js#L42-L116 | ||
const customLaunchers = { | ||
'SL_Chrome': { | ||
base: 'SauceLabs', | ||
browserName: 'chrome', | ||
version: 'latest', | ||
}, | ||
'SL_Chrome-1': { | ||
base: 'SauceLabs', | ||
browserName: 'chrome', | ||
version: 'latest-1', | ||
}, | ||
'SL_Firefox': { | ||
base: 'SauceLabs', | ||
browserName: 'firefox', | ||
version: 'latest', | ||
}, | ||
'SL_Firefox-1': { | ||
base: 'SauceLabs', | ||
browserName: 'firefox', | ||
version: 'latest-1', | ||
}, | ||
'SL_Safari-1': { | ||
base: 'SauceLabs', | ||
browserName: 'safari', | ||
platform: 'OS X 10.12', | ||
version: 'latest-1', | ||
}, | ||
'SL_Safari': { | ||
base: 'SauceLabs', | ||
browserName: 'safari', | ||
platform: 'OS X 10.13', | ||
version: 'latest', | ||
}, | ||
// 'SL_IE_9': { | ||
// base: 'SauceLabs', | ||
// browserName: 'internet explorer', | ||
// platform: 'Windows 2008', | ||
// version: '9', | ||
// }, | ||
// 'SL_IE_10': { | ||
// base: 'SauceLabs', | ||
// browserName: 'internet explorer', | ||
// platform: 'Windows 2012', | ||
// version: '10', | ||
// }, | ||
'SL_IE_11': { | ||
base: 'SauceLabs', | ||
browserName: 'internet explorer', | ||
platform: 'Windows 8.1', | ||
version: '11', | ||
}, | ||
'SL_EDGE': { | ||
base: 'SauceLabs', | ||
browserName: 'microsoftedge', | ||
platform: 'Windows 10', | ||
version: 'latest', | ||
}, | ||
'SL_EDGE-1': { | ||
base: 'SauceLabs', | ||
browserName: 'microsoftedge', | ||
platform: 'Windows 10', | ||
version: 'latest-1', | ||
}, | ||
// 'SL_iOS_10': { | ||
// base: 'SauceLabs', | ||
// browserName: 'iphone', | ||
// version: '10.3', | ||
// }, | ||
// 'SL_iOS_11': { | ||
// base: 'SauceLabs', | ||
// browserName: 'iphone', | ||
// version: '11', | ||
// }, | ||
}; | ||
|
||
config.set({ | ||
sauceLabs: { | ||
testName: 'Inert Polyfill Tests', | ||
username: 'robdodson_inert', | ||
accessKey: 'a844aee9-d3ec-4566-94e3-dba3d0c30248', | ||
}, | ||
// Increase timeout in case connection in CI is slow | ||
captureTimeout: 120000, | ||
customLaunchers: customLaunchers, | ||
browsers: Object.keys(customLaunchers), | ||
reporters: ['spec', 'saucelabs'], | ||
}); | ||
} | ||
}; |
Oops, something went wrong.