{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-tom/src/client/reactive/test/active-expression/events.spec.js"],"names":["chai","expect","sinon","sinonChai","use","ae","spy","dispose","reset","spy1","spy2","spy3","callback1","callback2","listeners","getEventListeners","on","listeners2"],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAEOA,U;AAAOC,Y,sBAAAA,M;;AACPC,W;;AACAC,e;;;;;;;;;;;;;;AAFOF,oL;;;;;;;;;;;;;;;;;;;;;;;;;;AAAPD,kL;;;;;;;;;;;;;;;;;;;;;;;;;;AACAE,mL;;;;;;;;;;;;;;;;;;;;;;;;;;AACAC,uL;;;;;;;;;;;;;;;;;;;;AACP,yFAAKC,GAAL,wFAASD,SAAT;;AAEA,oFAAS,qCAAT,EAAgD,MAAM;;AAEpD,0EAAG,WAAH,EAAgB,MAAM;AAAA;;AACpB,gBAAME,KAAK,OAAM,MAAM,CAAE,CAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAX;;AAEA,0MAAOA,EAAP,yBAAwB,IAAxB;AACA,0MAAOA,EAAP,yBAAwB,KAAxB;AACA,0MAAOA,EAAP,yBAAwB,MAAxB;AACA,0MAAOA,EAAP,yBAAwB,mBAAxB;AACD,SAPD;;AASA,0EAAG,eAAH,EAAoB,MAAM;AAAA;;AACxB,gBAAMC,8EAAM,sFAAMA,GAAN,EAAN,CAAN;AACA,gBAAMD,uBAAK,OAAM,MAAM,CAAE,CAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAL,SAAwB,SAAxB,8EAAmCC,GAAnC,GAAN;;AAFwB;AAIxB,wFAAGC,OAAH;AACA,gNAAOD,GAAP;AACA,uNAAOA,GAAP;AANwB;AAOxB,2FAAIE,KAAJ;;AAPwB;AASxB,wFAAGD,OAAH;AACA,2NAAOD,GAAP;AACD,SAXD;;AAaA,0EAAG,kBAAH,EAAuB,MAAM;AAAA;;AAC3B,gBAAMG,+EAAO,sFAAMH,GAAN,EAAP,CAAN;AACA,gBAAMI,+EAAO,sFAAMJ,GAAN,EAAP,CAAN;AACA,gBAAMK,+EAAO,sFAAML,GAAN,EAAP,CAAN;AACA,gBAAMD,iHAAK,OAAM,MAAM,CAAE,CAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAL,SACA,SADA,gFACWI,IADX,aAEC,SAFD,gFAEYA,IAFZ,YAGA,SAHA,gFAGWC,IAHX,YAIA,SAJA,gFAIWC,IAJX,aAKC,SALD,gFAKYA,IALZ,YAMA,SANA,gFAMWA,IANX,GAAN;;AAJ2B;AAY3B,wFAAGJ,OAAH;;AAEA,6NAAOE,IAAP;AACA,kNAAOC,IAAP;AACA,kNAAOC,IAAP;AACD,SAjBD;;AAmBA,0EAAG,eAAH,EAAoB,MAAM;AAAA;;AACxB,gBAAMC,YAAY,MAAM,CAAE,CAA1B;AACA,gBAAMC,YAAY,MAAM,CAAE,CAA1B;AACA,gBAAMR,uBAAK,OAAM,MAAM,CAAE,CAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAL,SACA,SADA,0FACWO,SADX,GAAN;;AAGA,gBAAME,+FAAY,8EAAGC,iBAAH,CAAqB,SAArB,CAAZ,CAAN;;AAEA,wNAAOD,SAAP,+GAA6BF,SAA7B;AACA,mOAAOE,SAAP,uHAAiCD,SAAjC;;AATwB;AAWxB,wFAAGG,EAAH,CAAM,SAAN,0FAAiBH,SAAjB;AACA,gBAAMI,gGAAa,8EAAGF,iBAAH,CAAqB,SAArB,CAAb,CAAN;;AAEA,0NAAOE,UAAP,+GAA8BL,SAA9B;AACA,0NAAOK,UAAP,+GAA8BJ,SAA9B;AAED,SAjBD;AAmBD,OA9DD","file":"events.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('Active Expressions as Event Targets', () => {\n\n  it(\"supported\", () => {\n    const ae = aexpr(() => {});\n\n    expect(ae).to.respondTo('on');\n    expect(ae).to.respondTo('off');\n    expect(ae).to.respondTo('emit');\n    expect(ae).to.respondTo('getEventListeners');\n  });\n\n  it('dispose event', () => {\n    const spy = sinon.spy();\n    const ae = aexpr(() => {}).on('dispose', spy);\n\n    ae.dispose();\n    expect(spy).to.be.calledOnce;\n    expect(spy).to.be.calledWith();\n    spy.reset();\n\n    ae.dispose();\n    expect(spy).not.to.be.called;\n  });\n\n  it('remove listeners', () => {\n    const spy1 = sinon.spy();\n    const spy2 = sinon.spy();\n    const spy3 = sinon.spy();\n    const ae = aexpr(() => {})\n      .on('dispose', spy1)\n      .off('dispose', spy1)\n      .on('dispose', spy2)\n      .on('dispose', spy3)\n      .off('dispose', spy3)\n      .on('dispose', spy3)\n\n    ae.dispose();\n\n    expect(spy1).not.to.be.called;\n    expect(spy2).to.be.calledOnce;\n    expect(spy3).to.be.calledOnce;\n  });\n\n  it('get listeners', () => {\n    const callback1 = () => {};\n    const callback2 = () => {};\n    const ae = aexpr(() => {})\n      .on('dispose', callback1)\n\n    const listeners = ae.getEventListeners('dispose');\n\n    expect(listeners).to.include(callback1);\n    expect(listeners).not.to.include(callback2);\n\n    ae.on('dispose', callback2);\n    const listeners2 = ae.getEventListeners('dispose');\n\n    expect(listeners2).to.include(callback1);\n    expect(listeners2).to.include(callback2);\n\n  });\n\n});\n"]}