-
Notifications
You must be signed in to change notification settings - Fork 0
/
Suite.min.js.map
1 lines (1 loc) · 39.5 KB
/
Suite.min.js.map
1
{"version":3,"sources":["Suite.es6.js"],"names":["root","factory","define","amd","Suite","exports","_typeof","module","Function","toString","match","Error","e","_createClass","require","default","_classCallCheck","_possibleConstructorReturn","_inherits","this","target","description","arguments","length","undefined","_name","constructor","scope","classes","leafClasses","leafScenarios","branchScenarios","mixins","scopes","classSyntaxSupport","arrowFunctionSupport","key","get","value","name","replace","toLowerCase","f","allowUnicodeNames","message","tests","self","test","parseInt","split","map","isLeaf","scenario","chain","proto","unshift","Object","getPrototypeOf","i","debug","console","log","branch","_this","shift","join","generateClass","Array","isArray","forEach","item","generateClasses","prop","push","pop","_this2","expression","_checkIdentifier","allowLooseNaming","c","prefix","window","subclass","base","__BASE_CLASS__","_BASE_CLASS__","__SUBCLASS__","__proto__","apply","_BASE_CLASS__2","updateLeafClasses","regeneratorRuntime","async","_context","prev","next","stop","element","type","trigger","condition","Promise","resolve","addEventListener","onEvent","event","Polymer","dom","rootTarget","removeEventListener","mark","steps","wrap","_context2","hasOwnProperty","uncamel","iteration","operation","checkpoint","ctor","delegateYield","_context3","reject","testSuites","testClasses","suite","describe","_this5","testInstances","s","all","instance","index","_context4","abrupt","run","then","v","catch","results","filter","MultiError","_Error","errors","_this6","call","exception","checkExceptionHandler","overrideToString","func","getOwnPropertyDescriptor","_loop","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","step","_context9","suiteSetup","before","_context5","awrap","setup","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","Symbol","iterator","done","parameters","it","_context6","skipAfterFailure","__failed","skip","err","return","_context7","t0","finish","t1","suiteTeardown","after","_context8","teardown","set","last","o","keys","n","reduce","l","reconnectable","count","_permute","targets","len","j","swap","append","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","sub","result","list","_context10","cursor","k","tmp","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4"],"mappings":"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","file":"Suite.min.js","sourcesContent":["/*\n@license https://github.com/t2ym/scenarist/blob/master/LICENSE.md\nCopyright (c) 2016, Tetsuya Mori <[email protected]>. All rights reserved.\n*/\n\n(function (root, factory) {\n\n 'use strict';\n\n /* istanbul ignore if: AMD is not tested */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return (root.Suite = root.Suite || factory());\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory();\n try {\n new Function('return class $$A$$ {}');\n if (!module.exports.toString().match(/^class /)) {\n throw new Error('Suite.min.js requires babel-runtime');\n }\n }\n catch (e) {\n // Supply Babel runtime helpers\n module.exports._createClass = module.exports._createClass || require('babel-runtime/helpers/_create-class.js').default;\n module.exports._classCallCheck = module.exports._classCallCheck || require('babel-runtime/helpers/_class-call-check.js').default;\n module.exports._possibleConstructorReturn = module.exports._possibleConstructorReturn || require('babel-runtime/helpers/_possible-constructor-return.js').default;\n module.exports._inherits = module.exports._inherits || require('babel-runtime/helpers/_inherits.js').default;\n }\n } else {\n // Browser globals\n root.Suite = root.Suite || factory();\n }\n\n}(this, function () {\n// UMD Definition above, do not remove this line\n 'use strict';\n\nclass Suite {\n static get reconnectable() { return true; }\n static get skipAfterFailure() { return false; }\n constructor(target, description = target + ' suite') {\n if (Suite._name(this.constructor) === 'Suite') {\n // suite instance\n this.scope = target || '';\n this.description = description;\n this.classes = {};\n this.leafClasses = {};\n this.leafScenarios = {};\n this.branchScenarios = {};\n this.mixins = {};\n this.constructor.scopes = this.constructor.scopes || {};\n this.constructor.scopes[this.scope] = this;\n this.classSyntaxSupport = true;\n this.arrowFunctionSupport = true;\n try {\n new Function('return class A {}');\n }\n catch (e) {\n \n this.classSyntaxSupport = false;\n }\n if (!Suite.toString().match(/^class /)) {\n \n this.classSyntaxSupport = false; // Running as Suite.min.js\n }\n try {\n new Function('return () => 1');\n }\n catch (e) {\n \n this.arrowFunctionSupport = false;\n }\n }\n else {\n // test instance\n this.target = target;\n }\n }\n uncamel(name) {\n return name.replace(/([A-Z])/g, ' $1').replace(/_/g, ' ').replace(/[ ]{1,}/g, ' ').replace(/^ /, '').toLowerCase();\n }\n static _name(func) {\n return (func.hasOwnProperty('name')\n ? func.name\n : func.toString().replace(/^[\\S\\s]*?function\\s*/, \"\").replace(/[\\s\\(\\/][\\S\\s]+$/, \"\")).replace(/^_?class$/, '');\n }\n _checkIdentifier(name) {\n try {\n let f = (new Function('return function ' + name + ' () {}'))();\n if (f.name !== name || (!this.constructor.allowUnicodeNames && !f.name.match(/^[$\\w]*$/))) {\n throw new Error(name + ' is defined as ' + f.name);\n }\n }\n catch (e) {\n throw new Error(this.constructor.name + '.' + this.scope + ':_checkIdentifier ' + name + ' is not a valid identifier ' + e.message);\n }\n }\n set test(value) {\n if (typeof value === 'function') {\n let name = Suite._name(value);\n if (name) {\n // test class\n if (this.classes[name]) {\n // test class with the name already exists\n throw new Error(this.constructor.name + '.' + this.scope + ': class ' + name + ' already exists');\n }\n else {\n // register a new test class with the name\n this.classes[name] = value;\n this.updateLeafClasses(value);\n }\n }\n else {\n // test class mixin\n name = Suite._name(value(null));\n if (name) {\n if (this.mixins[name]) {\n // test class mixin with the name already exists\n throw new Error(this.constructor.name + '.' + this.scope + ': class mixin ' + name + ' already exists');\n }\n else {\n // register a new test class mixin with the name\n this.mixins[name] = value;\n }\n }\n else {\n // no name for the test class mixin\n throw new Error(this.constructor.name + '.' + this.scope + ': class mixin has no name ' + value.toString());\n }\n }\n }\n else if (typeof value === 'object') {\n if (value) {\n // branch object\n this.generateClasses(value, []);\n }\n else {\n throw new Error(this.constructor.name + '.' + this.scope + ': null object is not expected');\n }\n }\n }\n get test() {\n let last;\n // [ 'UnreconnectableTest', 'ReconnectableTest,ReconnectableTest,...', 'UnreconnectableTest', ...]\n return (o => Object.keys(o).map(n => o[n]))(this.leafClasses)\n .reduce((l, c) => ((c.reconnectable && last && last[0].reconnectable ? last.push(c) : l.push(last = [c])), l), [])\n .map(l => l.map(c => Suite._name(c)).join(','));\n }\n testClasses(tests) {\n let self = this;\n return (typeof tests === 'number' || tests.match(/^[0-9]$/) ? self.test[parseInt(tests)] : tests).split(/,/).map((name) => {\n if (!self.classes[name]) {\n throw new Error('Suite.' + self.scope + ': Test ' + name + ' is not defined');\n }\n return self.classes[name];\n });\n }\n updateLeafClasses(value) {\n let name = Suite._name(value);\n let isLeaf = true;\n let scenario = '';\n function getChain(proto) {\n let chain = [];\n while (Suite._name(proto) && Suite._name(proto) !== 'Suite') {\n chain.unshift(Suite._name(proto));\n proto = Object.getPrototypeOf(proto);\n }\n return chain;\n }\n let chain = getChain(value);\n for (let i in chain) {\n scenario = scenario ? scenario + ',' + chain[i] : chain[i];\n if (i < chain.length - 1) {\n if (!this.branchScenarios[scenario]) {\n this.branchScenarios[scenario] = true;\n }\n if (this.leafClasses[chain[i]] &&\n this.leafScenarios[chain[i]] === scenario) {\n if (this.constructor.debug) { console.log('updateLeafClasses ' + name + ': trim a non-leaf class ' + chain[i] + ' with scenario ' + scenario); }\n delete this.leafClasses[chain[i]];\n delete this.leafScenarios[chain[i]];\n }\n }\n else {\n if (this.branchScenarios[scenario]) {\n if (this.constructor.debug) { console.log('updateLeafClasses ' + name + ': ' + scenario + ' is not a leaf'); }\n isLeaf = false;\n }\n }\n }\n if (isLeaf) {\n this.leafClasses[name] = value;\n this.leafScenarios[name] = scenario;\n }\n }\n generateClasses(branch, chain) {\n if (typeof branch === 'string') {\n let description = branch.split(/;/);\n if (description.length > 1) {\n branch = description.shift();\n description = description.join(';').replace(/^[\\s]*/, '');\n }\n else {\n description = '';\n }\n if (this.constructor.debug) { console.log('string', branch || chain[chain.length - 1], chain, description); }\n this.generateClass(branch, chain, description);\n }\n else if (typeof branch === 'object' && !Array.isArray(branch)) {\n if (branch) {\n for (let prop in branch) {\n chain.push(prop);\n this.generateClasses(branch[prop], chain);\n chain.pop();\n }\n }\n else {\n if (this.constructor.debug) { console.log('null', branch, chain); }\n this.generateClass(branch, chain);\n }\n }\n else if (typeof branch === 'object' && Array.isArray(branch)) {\n branch.forEach((item) => {\n this.generateClasses(item, chain);\n });\n }\n else {\n throw new Error(this.constructor.name + '.' + this.scope + ': unknown branch type ' + typeof branch + branch);\n }\n }\n generateClass(name, chain, description) {\n let self = this;\n let expression;\n if (!(chain.length >= (chain[0] ? 1 : 2))) {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass invalid chain.length ' + chain.length);\n }\n if (!name) {\n name = chain[chain.length - 1];\n }\n this._checkIdentifier(name);\n if (!chain[0]) {\n // class mixin\n if (self.mixins[name]) {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass mixin ' + name + ' already exists');\n }\n if (!self.constructor.allowLooseNaming && self.classes[name]) {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass class ' + name + ' already exists'); \n }\n chain.forEach((c, i) => {\n self._checkIdentifier(c);\n if (i === 0) {\n expression = 'base';\n }\n else if (self.mixins[c]) {\n expression = 'self.mixins.' + c + '(' + expression + ')';\n }\n else {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass mixin ' + c + ' does not exist');\n }\n });\n expression = self.arrowFunctionSupport\n ? 'return (base) => ' + expression\n : 'return function (base) { return ' + expression + '; }';\n self.mixins[name] = (new Function('self', expression))(self);\n if (self.constructor.debug) { console.log('generateClass mixins.' + name + ' = ' + expression); }\n }\n else {\n // class\n if (this.classes[name]) {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass class ' + name + ' already exists');\n }\n if (!self.constructor.allowLooseNaming && this.mixins[name] && chain[chain.length - 1] !== name) {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass mixin ' + name + ' already exists');\n }\n chain.forEach((c, i) => {\n self._checkIdentifier(c);\n if (i === 0) {\n if (self.classes[c]) {\n expression = 'self.classes.' + c;\n }\n else if ((new Function(self.constructor.name, 'return (typeof ' + c + ' === \"function\" && (new ' + c + '()) instanceof ' + self.constructor.name + ')'))(self.constructor)) {\n expression = c;\n }\n else {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass global test class ' + c + ' does not exist');\n }\n }\n else if (self.mixins[c]) {\n expression = 'self.mixins.' + c + '(' + expression + ')';\n }\n else {\n throw new Error(this.constructor.name + '.' + this.scope + ':generateClass mixin ' + c + ' does not exist');\n }\n });\n if (description) {\n description = description.replace(/\"/g,'\\\\\"').replace(/\\n/g, ' ');\n }\n let prefix = !this.classSyntaxSupport && typeof Suite._createClass === 'function' && typeof window !== 'object' ? 'self.constructor.' : '';\n expression = chain.length === 1 && name === expression\n ? 'return ' + name\n : name === chain[chain.length - 1]\n ? 'return ' + expression\n : self.classSyntaxSupport\n ? 'return class ' + name + ' extends ' + expression + (description ? ' { get description() { return \"' + description + '\"; } }' : ' {}')\n : (function (subclass, base, description) { // generate ES5 class by manipulating transpiled func.toString()\n return 'return (' +\n (() => { /* istanbul ignore next */\n return description\n ? function (__BASE_CLASS__) { return class __SUBCLASS__ extends __BASE_CLASS__ { get description() { return 314159265358; } } }\n : function (__BASE_CLASS__) { return class __SUBCLASS__ extends __BASE_CLASS__ {} }\n })().toString()\n .replace(/__cov_[^. ]*[.][a-z]\\[\\'[0-9]*\\'\\](\\[[0-9]*\\])?\\+\\+[;,]?/g, '') // trim istanbul coverage counters\n .replace(/__SUBCLASS__/g, subclass)\n .replace(/_inherits|_classCallCheck|_createClass|_possibleConstructorReturn/g, prefix + '$&')\n .replace(/ 314159265358;?/g, ' \"' + description + '\";')\n + ')(' + base + ');'\n })(name, expression, description);\n self.classes[name] = (new Function('self', expression))(self);\n self.updateLeafClasses(self.classes[name]);\n if (self.constructor.debug) { console.log('generateClass classes.' + name + ' = ' + expression); }\n }\n }\n static repeat(target, count, subclass) {\n let scenario = {};\n if (count < 1) {\n scenario = subclass;\n }\n else {\n scenario[target] = subclass;\n count--;\n while (count-- > 0) {\n scenario = {\n [target]: scenario\n };\n }\n }\n return scenario;\n }\n static * _permute(targets, i = 0, result = {}, subclass = (list) => list.join('Then')) {\n let len = targets.length;\n let j;\n function swap() {\n if (j !== i) {\n let tmp = targets[i];\n targets[i] = targets[j];\n targets[j] = tmp;\n }\n }\n function append() {\n // TODO: cache cursor\n let cursor = result;\n for (let k = 0; k < len; k++) {\n if (!cursor[targets[k]]) {\n if (k >= len - 1) {\n cursor[targets[k]] = subclass(targets);\n }\n else {\n cursor[targets[k]] = {};\n }\n }\n cursor = cursor[targets[k]];\n }\n }\n if (i >= len - 1) {\n yield targets;\n append();\n }\n else {\n for (j = i; j < len; j++) {\n swap();\n for (let sub of this._permute(targets, i + 1, result)) {\n yield targets;\n append();\n }\n swap();\n }\n }\n }\n static permute(targets, subclass) {\n let result = {};\n for (let chain of this._permute(targets, 0, result, subclass)) {}\n return result;\n }\n async setup() {\n }\n forEvent(element, type, trigger, condition) {\n return new Promise(resolve => {\n element.addEventListener(type, function onEvent(event) {\n if (!condition ||\n (typeof condition === 'boolean' && condition && Polymer.dom(event).rootTarget === element) ||\n (typeof condition === 'function' && condition(element, type, event))) {\n element.removeEventListener(type, onEvent);\n resolve(event);\n }\n });\n if (trigger) {\n trigger();\n }\n })\n }\n * scenario() {\n // trick to unveil overridden methods\n let steps = [];\n let proto = Object.getPrototypeOf(this);\n while (proto.constructor.name && proto.constructor.name !== 'Object') {\n steps.unshift({\n name: proto.hasOwnProperty('description') ? proto.description : this.uncamel(Suite._name(proto.constructor)),\n iteration: proto.hasOwnProperty('iteration') ? proto.iteration : undefined,\n operation: proto.hasOwnProperty('operation') ? proto.operation : undefined,\n checkpoint: proto.hasOwnProperty('checkpoint') ? proto.checkpoint: undefined,\n ctor: proto.constructor\n });\n proto = Object.getPrototypeOf(proto);\n }\n yield * steps;\n }\n async teardown() {\n }\n run(classes, target) { // async method\n let self = this;\n if (Suite._name(self.constructor) === 'Suite') {\n return new Promise((resolve, reject) => {\n try {\n // Suite Runner\n let testSuites = [];\n if (typeof classes === 'number' || typeof classes === 'string') {\n // Number 0\n // Number string '0'\n // CSV string 'Test1,Test2'\n testSuites = self.testClasses(classes);\n }\n else if (typeof classes === 'object' && Array.isArray(classes)) {\n // String Array [ 'Test1', 'Test2' ]\n // Class Array [ Test1, Test2 ]\n // TODO: handle errors if item is neither a string nor a class\n testSuites = classes.map((item) => typeof item === 'string' ? self.classes[item] : item);\n }\n else if (typeof classes === 'object' && !Array.isArray(classes) && classes) {\n // Object { Test1: Test1, Test2: Test2 } - property names are discarded\n for (let c in classes) {\n testSuites.push(classes[c]);\n }\n }\n (typeof suite === 'function' ? suite : describe)(self.description || (self.scope + ' suite'), function() {\n let testInstances = testSuites.map(s => [ Suite._name(s), new s(target) ]);\n Promise.all(testInstances.map(async (instance, index) => instance[1].run()\n .then(v => testInstances[index][2] = v)\n .catch(e => testInstances[index][2] = e)))\n .then(results => {\n if (results.filter(i => i instanceof Error).length > 0) {\n class MultiError extends Error {\n constructor(message, errors) {\n super(message);\n this.errors = errors;\n }\n }\n let errors = new MultiError(self.constructor.name + '.' + self.scope +\n '.run(' + testInstances.map(item => item[0]).join(',') + '): ' +\n 'exception(s) thrown. See .errors for details', testInstances);\n if (self.constructor.debug) { console.log(self.description + ': exception(s) thrown for ', classes, errors, errors.errors); }\n reject(errors); // reject the promise for run()\n }\n else {\n if (self.constructor.debug) { console.log(self.description + ': loaded for ', classes); }\n resolve(); // resolve the promise for run()\n }\n });\n // no rejections to catch as they have been caught\n });\n }\n catch (e) {\n // catch exceptions outside of the Promise.all()\n reject(e); // reject the promise for run()\n }\n })\n }\n else {\n return new Promise((resolve, reject) => {\n let exception;\n let checkExceptionHandler = (reject, exception) => typeof self.exception === 'function' ? self.exception(reject, exception) : (reject(exception), true);\n try {\n // Scenario Runner\n let overrideToString = (func, ctor) => { func.toString = () => ctor.toString(); return func; };\n (typeof suite === 'function' ? suite : describe)(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(self), 'description') ? self.description : self.uncamel(Suite._name(self.constructor)), async function () {\n (typeof suiteSetup === 'function' ? suiteSetup : before)(async function () {\n await self.setup();\n });\n\n try {\n for (let step of self.scenario()) {\n if (step.operation || step.checkpoint) {\n if (step.iteration) {\n for (let parameters of step.iteration.apply(self)) {\n (typeof test === 'function' ? test : it)(parameters.name ?\n (typeof parameters.name === 'function' ? parameters.name(parameters) : parameters.name)\n : step.name, overrideToString(async function() {\n if (self.constructor.skipAfterFailure && self.__failed) {\n return this.skip();\n }\n else {\n self.__failed = true;\n if (step.operation) {\n await step.operation.call(self, parameters);\n }\n if (step.checkpoint) {\n await step.checkpoint.call(self, parameters);\n }\n self.__failed = false;\n }\n }, step.ctor));\n }\n }\n else {\n (typeof test === 'function' ? test : it)(step.name, overrideToString(async function() {\n if (self.constructor.skipAfterFailure && self.__failed) {\n return this.skip();\n }\n else {\n self.__failed = true;\n if (step.operation) {\n await step.operation.call(self);\n }\n if (step.checkpoint) {\n await step.checkpoint.call(self);\n }\n self.__failed = false;\n }\n }, step.ctor));\n }\n }\n }\n }\n catch (e) {\n // catch exceptions within suite callback but outside of test callbacks\n exception = checkExceptionHandler(reject, e);\n }\n\n (typeof suiteTeardown === 'function' ? suiteTeardown : after)(async function () {\n await self.teardown();\n });\n });\n\n if (!exception) {\n resolve(); // resolve the promise for run()\n }\n }\n catch (e) {\n // catch exceptions outside of suite() callback\n exception = checkExceptionHandler(reject, e);\n }\n });\n }\n }\n}\n\n return Suite;\n})); // UMD Definition\n"]}