UNPKG

@glimmer/application-test-helpers

Version:

Test helpers for developing @glimmer/component and @glimmer/application

75 lines (61 loc) 6.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RenderTest = undefined; exports.renderModule = renderModule; exports.test = test; var _appBuilder = require("./app-builder"); var _env = require("@glimmer/env"); function renderModule(name, renderTest) { QUnit.module(name); var _loop = function _loop(prop) { var test = renderTest.prototype[prop]; if (isTestFunction(test) && shouldRun(test)) { ['runtime-compiler', 'bytecode'].forEach(function (loader) { var app = (0, _appBuilder.buildApp)({ loader: loader }); QUnit.test("[" + loader + "] " + prop, function (assert) { return test.call({ app: app }, assert); }); }); } }; for (var prop in renderTest.prototype) { _loop(prop); } } function shouldRun(testFunc) { if (testFunc['debug'] && !_env.DEBUG) { return false; } return true; } function isTestFunction(value) { return typeof value === 'function' && value.isTest; } var RenderTest = exports.RenderTest = function RenderTest() {}; function setTestingDescriptor(descriptor) { var testFunction = descriptor.value; descriptor.enumerable = true; testFunction['isTest'] = true; } function test() { if (arguments.length === 1) { var meta = arguments.length <= 0 ? undefined : arguments[0]; return function (_target, _name, descriptor) { var testFunction = descriptor.value; Object.keys(meta).forEach(function (key) { return testFunction[key] = meta[key]; }); setTestingDescriptor(descriptor); }; } var descriptor = arguments.length <= 2 ? undefined : arguments[2]; setTestingDescriptor(descriptor); return descriptor; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2FwcGxpY2F0aW9uLXRlc3QtaGVscGVycy9zcmMvcmVuZGVyLXRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O1FBT00sWSxHQUFBLFk7UUFxREEsSSxHQUFBLEk7O0FBNUROOztBQUNBOztBQU1NLFNBQUEsWUFBQSxDQUFBLElBQUEsRUFBQSxVQUFBLEVBQXdFO0FBQzVFLEVBQUEsS0FBSyxDQUFMLE1BQUEsQ0FBQSxJQUFBOztBQUQ0RSxNQUFBLEtBQUEsR0FBQSxTQUFBLEtBQUEsQ0FBQSxJQUFBLEVBQUE7QUFJMUUsUUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFWLFNBQUEsQ0FBYixJQUFhLENBQWI7O0FBRUEsUUFBSSxjQUFjLENBQWQsSUFBYyxDQUFkLElBQXdCLFNBQVMsQ0FBckMsSUFBcUMsQ0FBckMsRUFBNkM7QUFDM0MsT0FBQSxrQkFBQSxFQUFBLFVBQUEsRUFBQSxPQUFBLENBQXlDLFVBQUEsTUFBQSxFQUFTO0FBQ2hELFlBQUksR0FBRyxHQUFHLDBCQUFTO0FBQUUsVUFBQSxNQUFNLEVBQU47QUFBRixTQUFULENBQVY7QUFDQSxRQUFBLEtBQUssQ0FBTCxJQUFBLENBQUEsTUFBQSxNQUFBLEdBQUEsSUFBQSxHQUFBLElBQUEsRUFBa0MsVUFBQSxNQUFBLEVBQU07QUFBQSxpQkFBSSxJQUFJLENBQUosSUFBQSxDQUFVO0FBQUUsWUFBQSxHQUFHLEVBQUg7QUFBRixXQUFWLEVBQUosTUFBSSxDQUFKO0FBQXhDLFNBQUE7QUFGRixPQUFBO0FBSUQ7QUFYeUUsR0FBQTs7QUFHNUUsT0FBSyxJQUFMLElBQUEsSUFBaUIsVUFBVSxDQUEzQixTQUFBLEVBQXVDO0FBQUEsSUFBQSxLQUFBLENBQTlCLElBQThCLENBQUE7QUFTdEM7QUFDRjs7QUFFRCxTQUFBLFNBQUEsQ0FBQSxRQUFBLEVBQWdDO0FBQzlCLE1BQUksUUFBUSxDQUFSLE9BQVEsQ0FBUixJQUFxQixDQUF6QixVQUFBLEVBQWlDO0FBQy9CLFdBQUEsS0FBQTtBQUNEOztBQUNELFNBQUEsSUFBQTtBQUNEOztBQUVELFNBQUEsY0FBQSxDQUFBLEtBQUEsRUFDWTtBQUVWLFNBQU8sT0FBQSxLQUFBLEtBQUEsVUFBQSxJQUErQixLQUFLLENBQTNDLE1BQUE7QUFDRDs7QUFFRCxJQUFhLFVBQWIsV0FBYSxVQUFiLEdBQUEsU0FBQSxVQUFBLEdBQUEsQ0FBQSxDQUFBOztBQUlBLFNBQUEsb0JBQUEsQ0FBQSxVQUFBLEVBQTREO0FBQzFELE1BQUksWUFBWSxHQUFpQixVQUFVLENBQTNDLEtBQUE7QUFDQSxFQUFBLFVBQVUsQ0FBVixVQUFBLEdBQUEsSUFBQTtBQUNBLEVBQUEsWUFBWSxDQUFaLFFBQVksQ0FBWixHQUFBLElBQUE7QUFDRDs7QUFpQkssU0FBQSxJQUFBLEdBQTZCO0FBQ2pDLE1BQUksU0FBQSxDQUFBLE1BQUEsS0FBSixDQUFBLEVBQXVCO0FBQ3JCLFFBQUksSUFBSSxHQUFBLFNBQUEsQ0FBQSxNQUFBLElBQUEsQ0FBQSxHQUFBLFNBQUEsR0FBQSxTQUFBLENBQVIsQ0FBUSxDQUFSO0FBQ0EsV0FBTyxVQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsVUFBQSxFQUFtRTtBQUN4RSxVQUFJLFlBQVksR0FBaUIsVUFBVSxDQUEzQyxLQUFBO0FBQ0EsTUFBQSxNQUFNLENBQU4sSUFBQSxDQUFBLElBQUEsRUFBQSxPQUFBLENBQTBCLFVBQUEsR0FBQSxFQUFHO0FBQUEsZUFBSyxZQUFZLENBQVosR0FBWSxDQUFaLEdBQW9CLElBQUksQ0FBN0IsR0FBNkIsQ0FBN0I7QUFBN0IsT0FBQTtBQUNBLE1BQUEsb0JBQW9CLENBQXBCLFVBQW9CLENBQXBCO0FBSEYsS0FBQTtBQUtEOztBQUVELE1BQUksVUFBVSxHQUFBLFNBQUEsQ0FBQSxNQUFBLElBQUEsQ0FBQSxHQUFBLFNBQUEsR0FBQSxTQUFBLENBQWQsQ0FBYyxDQUFkO0FBQ0EsRUFBQSxvQkFBb0IsQ0FBcEIsVUFBb0IsQ0FBcEI7QUFDQSxTQUFBLFVBQUE7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJ1aWxkQXBwLCBUZXN0QXBwbGljYXRpb24sIEFwcEJ1aWxkZXIgfSBmcm9tICcuL2FwcC1idWlsZGVyJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcblxuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RvcjxUPiB7XG4gIG5ldyAoLi4uYXJnczogYW55W10pOiBUO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTW9kdWxlKG5hbWU6IHN0cmluZywgcmVuZGVyVGVzdDogQ29uc3RydWN0b3I8UmVuZGVyVGVzdD4pIHtcbiAgUVVuaXQubW9kdWxlKG5hbWUpO1xuXG4gIGZvciAobGV0IHByb3AgaW4gcmVuZGVyVGVzdC5wcm90b3R5cGUpIHtcbiAgICBjb25zdCB0ZXN0ID0gcmVuZGVyVGVzdC5wcm90b3R5cGVbcHJvcF07XG5cbiAgICBpZiAoaXNUZXN0RnVuY3Rpb24odGVzdCkgJiYgc2hvdWxkUnVuKHRlc3QpKSB7XG4gICAgICBbJ3J1bnRpbWUtY29tcGlsZXInLCAnYnl0ZWNvZGUnXS5mb3JFYWNoKGxvYWRlciA9PiB7XG4gICAgICAgIGxldCBhcHAgPSBidWlsZEFwcCh7IGxvYWRlciB9KTtcbiAgICAgICAgUVVuaXQudGVzdChgWyR7bG9hZGVyfV0gJHtwcm9wfWAsIGFzc2VydCA9PiB0ZXN0LmNhbGwoeyBhcHAgfSwgYXNzZXJ0KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkUnVuKHRlc3RGdW5jOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHRlc3RGdW5jWydkZWJ1ZyddICYmICFERUJVRykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gaXNUZXN0RnVuY3Rpb24oXG4gIHZhbHVlOiBhbnlcbik6IHZhbHVlIGlzICh0aGlzOiBSZW5kZXJUZXN0LCBhc3NlcnQ6IHR5cGVvZiBRVW5pdC5hc3NlcnQpID0+IHZvaWQge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nICYmIHZhbHVlLmlzVGVzdDtcbn1cblxuZXhwb3J0IGNsYXNzIFJlbmRlclRlc3Qge1xuICBhcHA6IEFwcEJ1aWxkZXI8VGVzdEFwcGxpY2F0aW9uPjtcbn1cblxuZnVuY3Rpb24gc2V0VGVzdGluZ0Rlc2NyaXB0b3IoZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKTogdm9pZCB7XG4gIGxldCB0ZXN0RnVuY3Rpb246IFRlc3RGdW5jdGlvbiA9IGRlc2NyaXB0b3IudmFsdWUgYXMgVGVzdEZ1bmN0aW9uO1xuICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSB0cnVlO1xuICB0ZXN0RnVuY3Rpb25bJ2lzVGVzdCddID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXN0TWV0YSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbiAgZGVidWc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RGdW5jdGlvbiB7XG4gIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0KG1ldGE6IFRlc3RNZXRhKTogTWV0aG9kRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3QoXG4gIF90YXJnZXQ6IE9iamVjdCB8IFRlc3RNZXRhLFxuICBfbmFtZT86IHN0cmluZyxcbiAgZGVzY3JpcHRvcj86IFByb3BlcnR5RGVzY3JpcHRvclxuKTogUHJvcGVydHlEZXNjcmlwdG9yIHwgdm9pZDtcbmV4cG9ydCBmdW5jdGlvbiB0ZXN0KC4uLmFyZ3M6IGFueVtdKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkge1xuICAgIGxldCBtZXRhOiBUZXN0TWV0YSA9IGFyZ3NbMF07XG4gICAgcmV0dXJuIChfdGFyZ2V0OiBPYmplY3QsIF9uYW1lOiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuICAgICAgbGV0IHRlc3RGdW5jdGlvbjogVGVzdEZ1bmN0aW9uID0gZGVzY3JpcHRvci52YWx1ZSBhcyBUZXN0RnVuY3Rpb247XG4gICAgICBPYmplY3Qua2V5cyhtZXRhKS5mb3JFYWNoKGtleSA9PiAodGVzdEZ1bmN0aW9uW2tleV0gPSBtZXRhW2tleV0pKTtcbiAgICAgIHNldFRlc3RpbmdEZXNjcmlwdG9yKGRlc2NyaXB0b3IpO1xuICAgIH07XG4gIH1cblxuICBsZXQgZGVzY3JpcHRvciA9IGFyZ3NbMl07XG4gIHNldFRlc3RpbmdEZXNjcmlwdG9yKGRlc2NyaXB0b3IpO1xuICByZXR1cm4gZGVzY3JpcHRvcjtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=