From 939666f17288ac729ab2628b5c3b1dde4ef662fa Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Wed, 4 Apr 2018 20:13:04 -0400 Subject: [PATCH] add polyfills for phantomjs --- awx/ui/test/spec/karma.spec.js | 1 + awx/ui/test/spec/polyfills.js | 31 +++++++++++++++++++++++++++++++ awx/ui/test/unit/karma.unit.js | 1 + awx/ui/test/unit/polyfills.js | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 awx/ui/test/spec/polyfills.js create mode 100644 awx/ui/test/unit/polyfills.js diff --git a/awx/ui/test/spec/karma.spec.js b/awx/ui/test/spec/karma.spec.js index abff3172f5..ae2dc8899d 100644 --- a/awx/ui/test/spec/karma.spec.js +++ b/awx/ui/test/spec/karma.spec.js @@ -13,6 +13,7 @@ module.exports = config => { frameworks: ['jasmine'], reporters: ['progress', 'junit'], files:[ + './polyfills.js', path.join(SRC_PATH, '**/*.html'), path.join(SRC_PATH, 'vendor.js'), path.join(NODE_MODULES, 'angular-mocks/angular-mocks.js'), diff --git a/awx/ui/test/spec/polyfills.js b/awx/ui/test/spec/polyfills.js new file mode 100644 index 0000000000..8b7342e5fd --- /dev/null +++ b/awx/ui/test/spec/polyfills.js @@ -0,0 +1,31 @@ +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill + +if (typeof Object.assign != 'function') { + // Must be writable: true, enumerable: false, configurable: true + Object.defineProperty(Object, "assign", { + value: function assign(target, varArgs) { // .length of function is 2 + 'use strict'; + if (target == null) { // TypeError if undefined or null + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + + if (nextSource != null) { // Skip over if undefined or null + for (var nextKey in nextSource) { + // Avoid bugs when hasOwnProperty is shadowed + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }, + writable: true, + configurable: true + }); +} diff --git a/awx/ui/test/unit/karma.unit.js b/awx/ui/test/unit/karma.unit.js index 5ccd1fe151..d839aff5f2 100644 --- a/awx/ui/test/unit/karma.unit.js +++ b/awx/ui/test/unit/karma.unit.js @@ -14,6 +14,7 @@ module.exports = config => { browsers: ['PhantomJS'], reporters: ['progress', 'junit'], files: [ + './polyfills.js', path.join(SRC_PATH, 'vendor.js'), path.join(SRC_PATH, 'app.js'), path.join(SRC_PATH, '**/*.html'), diff --git a/awx/ui/test/unit/polyfills.js b/awx/ui/test/unit/polyfills.js new file mode 100644 index 0000000000..25b18055bd --- /dev/null +++ b/awx/ui/test/unit/polyfills.js @@ -0,0 +1,33 @@ +/* eslint-disable */ + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill + +if (typeof Object.assign != 'function') { + // Must be writable: true, enumerable: false, configurable: true + Object.defineProperty(Object, "assign", { + value: function assign(target, varArgs) { // .length of function is 2 + 'use strict'; + if (target == null) { // TypeError if undefined or null + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + + if (nextSource != null) { // Skip over if undefined or null + for (var nextKey in nextSource) { + // Avoid bugs when hasOwnProperty is shadowed + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }, + writable: true, + configurable: true + }); +}