{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-markus/src/client/reactive/test/active-expression-rewriting/html.spec.js"],"names":["chai","expect","sinon","sinonChai","use","spy","p","getAttribute","onChange","setAttribute","sleep","getCall","eval","timeout","editor","create","editorLoaded","line","ch","input","addEventListener","dispatchEvent","Event"],"mappings":"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","file":"html.spec.js","sourcesContent":["'enable aexpr';\n\nimport chai, {expect} from 'src/external/chai.js';\nimport sinon from 'src/external/sinon-3.2.1.js';\nimport sinonChai from 'src/external/sinon-chai.js';\nchai.use(sinonChai);\n\ndescribe('HTML Elements and Web Components', () => {\n\n  describe('html elements', () => {\n\n    it('setAttribute', async () => {\n      const spy = sinon.spy();\n      const p = <p testAttr=\"5\"></p>;\n\n      aexpr(() => p.getAttribute('testAttr')).onChange(spy);\n\n      expect(p.getAttribute('testAttr')).to.equal(\"5\");\n\n      p.setAttribute('testAttr', 42)\n      expect(p.getAttribute('testAttr')).to.equal('42');\n\n      // need to wait for Mutation Observer to detect the change\n      await lively.sleep(10)\n\n      expect(spy).to.be.calledOnce;\n      expect(spy.getCall(0).args[0]).to.equal('42');\n    });\n\n    it('id', async () => {\n      const spy = sinon.spy();\n      const p = <p id=\"my_old_id\"></p>;\n      expect(p.id).to.equal('my_old_id');\n\n      aexpr(() => p.id).onChange(spy);\n\n      eval(\"p.id = 'my_new_id';\");\n\n      await lively.sleep(10)\n\n      expect(spy).to.be.calledOnce;\n      expect(spy.getCall(0).args[0]).to.equal('my_new_id');\n    });\n    xit('classList', () => {\n    });\n    xit('style', () => {\n    });\n    xit('querySelector', () => {\n    });\n    xit('querySelectorAll', () => {\n    });\n\n  });\n\n  describe('Morphs', () => {\n\n    xit('get', () => {\n    });\n\n    xit('getAllSubMorphs', () => {\n    });\n\n  });\n\n  describe('lively modifications', () => {\n\n    xit('lively.setGlobalPosition', () => {\n    });\n\n    xit('lively.setExtent', () => {\n    });\n\n    xit('lively.setPosition', () => {\n    });\n\n  });\n\n  describe('CodeMirror', () => {\n\n    it('value', async function() {\n      // code mirror takes longer to load\n      this.timeout(30000);\n      \n      const editor = await lively.create('lively-code-mirror');\n      await editor.editorLoaded();\n\n      editor.value = `some string`;\n\n      const spy = sinon.spy();\n      aexpr(() => editor.value).onChange(spy);\n\n      editor.editor.replaceRange(\"added \", {line:0, ch:0}, {line:0, ch:0})\n\n      expect(spy).to.be.calledOnce;\n      expect(spy.getCall(0).args[0]).to.equal(\"added some string\");\n    });\n\n  });\n\n  describe('input element', () => {\n\n    // this is a meta test to check whether we can invoke an InputEvent programmatically (needed to test further functionality)\n    it('programmatically invoke a user event', () => {\n      const input = <input value=\"hello\"></input>;\n      const spy = sinon.spy();\n      input.addEventListener('input', spy);\n      \n      eval('input.value = \"world\";');\n      input.dispatchEvent(new Event('input'));\n      \n      expect(spy).to.be.calledOnce;\n    });\n\n    it('detects a change in text input', () => {\n      const input = <input value=\"hello\"></input>;\n      const spy = sinon.spy();\n      aexpr(() => input.value).onChange(spy);\n      \n      eval('input.value = \"world\";');\n      input.dispatchEvent(new Event('input'));\n      \n      expect(spy).to.be.calledOnce;\n      expect(spy.getCall(0).args[0]).to.equal(\"world\");\n    });\n\n    it('detects a change in checkbox', () => {\n      const input = <input type=\"checkbox\" checked></input>;\n      const spy = sinon.spy();\n      aexpr(() => input.checked).onChange(spy);\n\n      eval('input.checked = false;');\n      input.dispatchEvent(new Event('input'));\n\n      expect(spy).to.be.calledOnce;\n      expect(spy.getCall(0).args[0]).to.equal(false);\n    });\n\n  });\n\n});"]}