{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-active-expression-proxies/test/templates/lively-script-test.js"],"names":["expect","MockEvent","createHTML","testWorld","loadComponent","pt","rect","components","describe","that","before","timeout","templateName","it","self","thisScriptWasHere","undefined","root","appendChild","source","innerHTML","loadUnresolved","lively","sleep","not","be","testScriptExecOrder","secondScriptWasHere","equal","deep","JSON","stringify","after"],"mappings":"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","file":"lively-script-test.js","sourcesContent":["import {expect} from 'src/external/chai.js';\nimport {MockEvent, createHTML, testWorld, loadComponent} from './templates-fixture.js';\nimport {pt,rect} from 'src/client/graphics.js';\nimport components from 'src/client/morphic/component-loader.js'\n\n\ndescribe(\"LivelyScriptTest\",  function() {\n\n  var that;\n  before(\"load\", async function() {\n    this.timeout(35000);\n    var templateName = \"lively-script\";\n    await loadComponent(templateName)\n  });\n\n  it(\"should load\", async function() {\n    \n  });\n\n  it(\"should exec script\", async function() {\n    self.thisScriptWasHere = undefined\n    var root = <div></div>\n    testWorld().appendChild(root)\n    var source = `<lively-script><script>\n        self.thisScriptWasHere = this\n      </script></lively-script>`\n    root.innerHTML = source\n    await components.loadUnresolved(root);\n    await lively.sleep(10); // ok, there is aysnc behavior here... give it a chance to run\n    expect(self.thisScriptWasHere, \"script not run\").not.be.undefined   \n  });\n  \n  it(\"should exec two scripts after each other\", async function() {\n    self.thisScriptWasHere = undefined\n    self.testScriptExecOrder = []\n    var root = <div></div>\n    testWorld().appendChild(root)\n    var source = `<lively-script id=\"a\">\n        self.thisScriptWasHere = this;\n        self.testScriptExecOrder.push(this.id)\n      </lively-script>\n      <lively-script id=\"b\">\n        self.secondScriptWasHere = this\n        self.testScriptExecOrder.push(this.id)\n      </lively-script>`\n    root.innerHTML = source\n    await components.loadUnresolved(root);\n    await lively.sleep(50); // ok, there is aysnc behavior here... give it a chance to run\n    expect(self.thisScriptWasHere, \"script not run\").not.be.undefined   \n    expect(self.secondScriptWasHere, \"second script not run\").not.be.undefined   \n    expect(self.secondScriptWasHere, \"first is second?\").not.equal(self.thisScriptWasHere)  \n    expect(self.testScriptExecOrder, \"script exec order\").deep.equal([\"a\", \"b\"])  \n  });\n   \n  it(\"should exec in order\", async function() {\n    this.timeout(35000);\n    self.thisScriptWasHere = undefined\n    self.testScriptExecOrder = []\n    var root = <div></div>\n    testWorld().appendChild(root)\n    var source = `\n      <lively-script id=\"a\">\n        self.testScriptExecOrder.push(this.id)\n      </lively-script>\n      <lively-script id=\"b\">\n        self.testScriptExecOrder.push(this.id)\n      </lively-script>\n      <lively-script id=\"c\">\n        self.testScriptExecOrder.push(this.id)\n      </lively-script>\n      <lively-script id=\"d\">\n        self.testScriptExecOrder.push(this.id)\n      </lively-script>\n      <lively-script id=\"e\">\n        self.testScriptExecOrder.push(this.id)\n      </lively-script>`\n    root.innerHTML = source\n    await components.loadUnresolved(root);\n    await lively.sleep(150); // ok, there is aysnc behavior here... give it a chance to run\n    expect(self.testScriptExecOrder, \"script exec order\" + JSON.stringify(self.testScriptExecOrder)).deep.equal(\n      [\"a\", \"b\", \"c\", \"d\", \"e\"])  \n  });\n  \n  after(\"cleanup\", function() {\n    testWorld().innerHTML = \"\";\n  });\n\n});\n"]}