UNPKG

piral-base

Version:

The base library for creating a Piral instance.

89 lines (82 loc) 5.49 kB
import 'systemjs/dist/system.js'; import 'systemjs/dist/extras/named-register.js'; import { describe, it, expect, vitest } from 'vitest'; import { evalDependency } from './dependency'; describe('v0 dependency module', () => { it('handles a directly exported module without sub-dependencies', () => { console.log = vitest.fn(); console.error = vitest.fn(); const result = evalDependency( 'my-dependency', 'module.exports = { setup: function(api) { console.log(api, "Module A"); } }', undefined, ); result.setup(undefined); expect(console.log).toHaveBeenCalledWith(undefined, 'Module A'); expect(console.log).toHaveBeenCalledTimes(1); expect(console.error).toHaveBeenCalledTimes(0); }); it('handles a directly exported module with a resolved sub-dependency', () => { const log = vitest.fn(); console.error = vitest.fn(); const deps = { test: log, }; (global as any).System = { resolve(url) { return url; }, get(depName) { return deps[depName]; }, }; const result = evalDependency( 'my-dependency', 'var log = require("test"); module.exports = { setup: function(api) { log(api, "Module A"); } }', undefined, ); result.setup(undefined); expect(log).toHaveBeenCalledWith(undefined, 'Module A'); expect(log).toHaveBeenCalledTimes(1); expect(console.error).toHaveBeenCalledTimes(0); }); it('handles a directly exported module with an unresolved sub-dependency crashing in setup', () => { console.error = vitest.fn(); const deps = {}; (global as any).System = { resolve(url) { return url; }, get(depName) { return deps[depName]; }, }; const result = evalDependency( 'my-dependency', 'var log = require("test"); module.exports = { setup: function(api) { log(api, "Module A"); } }', undefined, ); expect(result.setup).toBeUndefined(); expect(() => result.setup(undefined)).toThrow(); }); it('handles a proper UMD module with no sub-dependencies', () => { console.error = vitest.fn(); const result = evalDependency( 'my-dependency', '!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.weather=t():e.weather=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){console.log("Hi from weather"),e.data.temperature=void 0,e.registerTile("weather",function(t){t.innerHTML="<h3>Weather</h3><div>Loading Weather ...</div>",fetch("http://api.openweathermap.org/data/2.5/weather?q=Munich&appid=bd5e378503939ddaee76f12ad7a97608").then(function(e){return e.json()}).then(function(n){var r=n.main.temp-273.15;e.data.temperature=r,e.emit("temperature-changed",{value:r}),t.innerHTML="<h3>Weather</h3><div><b>".concat(n.weather[0].main,"</b> in ").concat(n.name,"</div><div>").concat(r," °C</div><div>").concat(n.wind.speed," m/s</div>")})})}Object.defineProperty(t,"__esModule",{value:!0}),t.setup=r}])});', undefined, ); expect(result.setup).not.toBeUndefined(); expect(console.error).toHaveBeenCalledTimes(0); }); it('handles a proper UMD module with no sub-dependencies', () => { console.error = vitest.fn(); const result = evalDependency( 'my-dependency', '!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.weather=t():e.weather=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){console.log("Hi from weather"),e.data.temperature=void 0,e.registerTile("weather",function(t){t.innerHTML="<h3>Weather</h3><div>Loading Weather ...</div>",fetch("http://api.openweathermap.org/data/2.5/weather?q=Munich&appid=bd5e378503939ddaee76f12ad7a97608").then(function(e){return e.json()}).then(function(n){var r=n.main.temp-273.15;e.data.temperature=r,e.emit("temperature-changed",{value:r}),t.innerHTML="<h3>Weather</h3><div><b>".concat(n.weather[0].main,"</b> in ").concat(n.name,"</div><div>").concat(r," °C</div><div>").concat(n.wind.speed," m/s</div>")})})}Object.defineProperty(t,"__esModule",{value:!0}),t.setup=r}])});', 'my-link', ); expect(result.setup).not.toBeUndefined(); expect(console.error).toHaveBeenCalledTimes(0); }); });