{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-pipes-and-filters/src/components/widgets/lively-mle-test-case.js"],"names":["Morph","SocketSingleton","LivelyMleTestCase","initialize","registerButtons","getAttribute","get","deleteTest","id","tests","test","removeChild","onAddButton","appendChild","onExecuteButton","cases","push","func","params","socket","v","m","r","status","find","res","loading","add","exec","livelyPrepareSave","livelyPreMigrate","livelyMigrate","other","livelyInspect","contentNode","inspector","livelyExample"],"mappings":"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","file":"lively-mle-test-case.js","sourcesContent":["\"enable aexpr\";\n\nimport Morph from 'src/components/widgets/lively-morph.js';\nimport {SocketSingleton} from 'src/components/mle/socket.js';\n\nexport default class LivelyMleTestCase extends Morph {\n  async initialize() {\n    this.windowTitle = \"MLE Test Case Editor\";\n    this.registerButtons();\n    if(!(this.getAttribute(\"initSocket\") === \"false\")) this.socket = await SocketSingleton.get();\n  }\n  \n  deleteTest(id){\n    const tests = this.shadowRoot.getElementById(\"tests\");\n    for(const test of tests.childNodes){\n      if (test.id == id){\n        tests.removeChild(test)\n      }\n    }\n  }\n  \n  onAddButton(){\n    this.loading = true;\n    const tests = this.shadowRoot.getElementById(\"tests\");\n    const id = tests.childElementCount;\n    <lively-mle-function-executor id={id} />.then(test => {\n      test.onDeleteButton = () => this.deleteTest(id);\n      tests.appendChild(test)\n    });\n  }\n  \n  onExecuteButton(){\n    this.loading = true;\n    const tests = this.shadowRoot.getElementById(\"tests\").childNodes;\n    let cases = [];\n    for(const test of tests){\n      cases.push({\n        id: test.id,\n        func: test.func,\n        params: test.params\n      })\n    }\n    this.socket.emit(\"multipleTests\", cases);    \n  }\n  \n  set socket(v){\n    this.socket = v;\n    this.shadowRoot.getElementById(\"tests\").innerHTML = \"\";\n    this.socket.on('failure', () => {\n      this.loading = false;\n    });\n    this.socket.on('busy', m => {\n      this.loading = false;\n    });\n    this.socket.on(\"result\", (r, status) => {\n      if(status === \"multipleTests\"){\n        this.loading = false;\n        const tests = this.shadowRoot.getElementById(\"tests\").childNodes;\n        for(const test of tests){\n          test.result = r.find(res => res.id == test.id).result\n        }\n      }\n      if(status === \"gotTypes\"){\n        this.loading = false;\n      }\n      if(status===\"deployed\"){\n        this.onExecuteButton()\n      }\n    });\n  }\n  \n  set loading(v) {\n    const add = this.shadowRoot.getElementById(\"addButton\");\n    add.disabled = v;\n    add.className= `button is-link ${v ? \"is-loading\" : \"\"}`;\n    const exec = this.shadowRoot.getElementById(\"executeButton\");\n    exec.disabled = v;\n    exec.className= `button is-pulled-right is-primary ${v ? \"is-loading\" : \"\"}`;\n    const tests = this.shadowRoot.getElementById(\"tests\").childNodes;\n    for(const test of tests){\n      test.loading = v;\n    }\n  }\n  \n  /* Lively-specific API */\n\n  // store something that would be lost\n  livelyPrepareSave() {\n  }\n  \n  livelyPreMigrate() {\n    // is called on the old object before the migration\n  }\n  \n  livelyMigrate(other) {\n    // whenever a component is replaced with a newer version during development\n    // this method is called on the new object during migration, but before initialization\n  }\n  \n  livelyInspect(contentNode, inspector) {\n    // do nothing\n  }\n  \n  async livelyExample() {\n    // this customizes a default instance to a pretty example\n    // this is used by the \n  }\n  \n  \n}"]}