{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-active-expression-proxies/src/client/reactive/test/active-groups/activegroups-in-jsx.spec.js"],"names":["chai","expect","sinon","sinonChai","select","trackInstance","use","Person","constructor","name","call","toString","alex","adam","bernd","startLetter","personList","p","list","labels","from","querySelectorAll","i"],"mappings":"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","file":"activegroups-in-jsx.spec.js","sourcesContent":["\"enable aexpr\";\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\nimport select, { trackInstance } from 'active-group';\n\ndescribe('Active Groups in JSX support', function() {\n  it('list example', function() {\n    class Person {\n      constructor(name) {\n        this.name = name;\n        trackInstance.call(Person, this);\n      }\n      toString() { return this.name; }\n    }\n\n    let alex = new Person(\"Alex\"),\n        adam = new Person(\"Adam\"),\n        bernd = new Person(\"Bernd\");\n    let startLetter = \"A\";\n\n    let personList = select(Person)\n      .filter(p => p.name.startsWith(startLetter))\n      .map(p => <li>{p.name}</li>);\n\n    let list = <ul>\n      <li>First Element</li>\n      {...personList}\n      <li>Last Element</li>\n     </ul>;\n           \n    function labels() {\n      return Array.from(list.querySelectorAll(\"li\"))\n        .map(i => i.innerHTML);\n    }\n\n    expect(labels()).to.have.length(4);\n    expect(labels()[0]).to.equal(\"First Element\");\n    expect(labels()[1]).to.equal(\"Alex\");\n    expect(labels()[2]).to.equal(\"Adam\");\n    expect(labels()[3]).to.equal(\"Last Element\");\n\n    new Person(\"Alister\");\n    expect(labels()).to.have.length(5);\n    expect(labels()[0]).to.equal(\"First Element\");\n    expect(labels()[1]).to.equal(\"Alex\");\n    expect(labels()[2]).to.equal(\"Adam\");\n    expect(labels()[3]).to.equal(\"Alister\");\n    expect(labels()[4]).to.equal(\"Last Element\");\n\n    \n    adam.name = \"Brian\";\n    expect(labels()).to.have.length(4);\n    expect(labels()[0]).to.equal(\"First Element\");\n    expect(labels()[1]).to.equal(\"Alex\");\n    expect(labels()[2]).to.equal(\"Alister\");\n    expect(labels()[3]).to.equal(\"Last Element\");\n\n    startLetter = \"B\";\n    // #TODO: this test assumes certain ordering for list items\n    // However, this ordering depends on the iteration algorithm of aexpr sets per dependency\n    expect(labels()).to.have.length(4);\n    expect(labels()[0]).to.equal(\"First Element\");\n    expect(labels()[1]).to.equal(\"Bernd\");\n    expect(labels()[2]).to.equal(\"Brian\");\n    expect(labels()[3]).to.equal(\"Last Element\");\n  });\n});\n"]}