{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-markus/src/client/reactive/test/active-groups/enterexit.spec.js"],"names":["chai","expect","sinon","sinonChai","select","trackInstance","use","Value","constructor","val","call","enterSpy","spy","exitSpy","v","reset","v2"],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAEOA,U;AAAOC,Y,sBAAAA,M;;AACPC,W;;AACAC,e;;AAGAC,Y;AAAUC,mB,gBAAAA,a;;;;;;;;;;;;;;AALHJ,oL;;;;;;;;;;;;;;;;;;;;;;;;;;AAAPD,kL;;;;;;;;;;;;;;;;;;;;;;;;;;AACAE,mL;;;;;;;;;;;;;;;;;;;;;;;;;;AACAC,uL;;;;;;;;;;;;;;;;;;;;AACP,yFAAKG,GAAL,wFAASH,SAAT;;;;;;;;;;AAEiBE,2L;;;;;;;;;;;;;;;;;;;;;;;;;;AAAVD,oL;;;;;;;;;;;;;;;;;;;;AAEP,oFAAS,aAAT,EAAwB,MAAM;AAAA;AAAA;;AAC5B,cAAMG,KAAN,CAAY;AACVC,sBAAYC,GAAZ,EAAiB;AAAA;;AACf,gHAAWA,GAAX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADe;AAEf,0HAAcC,IAAd,iFAAmBH,KAAnB,GAA0B,IAA1B;;AAFe;AAGhB;AAJS;;AAOZ,0EAAG,oBAAH,EAAyB,MAAM;AAAA;;AAC7B,gBAAMI,mFAAW,sFAAMC,GAAN,EAAX,CAAN;AACA,gBAAMC,kFAAU,sFAAMD,GAAN,EAAV,CAAN;;AAEA,0OAAOL,KAAP,eAAqBO;AAAA;AAAK,oHAAQ,CAAR;AAAL,WAArB,qGACSH,QADT,mGAEQE,OAFR;;AAIA,cAAIC,IAAI,qFAAIP,KAAJ,EAAU,CAAV,CAAR;AACA,sOAAOI,QAAP;AACA,6OAAOA,QAAP,0HAA8CG,CAA9C;AAV6B;AAW7B,2GAASC,KAAT;AACA,+OAAOF,OAAP;;AAEA,yGAAQ,CAAR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iPAAOF,QAAP;AACA,oOAAOE,OAAP;AACA,2OAAOA,OAAP,0HAA6CC,CAA7C;AAjB6B;AAkB7B,wGAAQC,KAAR;;AAEA,cAAIC,KAAK,qFAAIT,KAAJ,EAAU,CAAV,CAAT;AACA,iPAAOI,QAAP;AACA,+OAAOE,OAAP;;AAEA,4GAAS,GAAT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sOAAOF,QAAP;AACA,6OAAOA,QAAP,4HAA8CK,EAA9C;AACA,+OAAOH,OAAP;AACD,SA5BD;AA6BD,OArCD","file":"enterexit.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\nimport select, { trackInstance } from 'active-group';\n\ndescribe(\"Enter, Exit\", () => {\n  class Value {\n    constructor(val) {\n      this.val = val;\n      trackInstance.call(Value, this);\n    }\n  }\n  \n  it(\"fine-graned events\", () => {\n    const enterSpy = sinon.spy();\n    const exitSpy = sinon.spy();\n    \n    select(Value).filter(v => v.val > 5)\n      .enter(enterSpy)\n      .exit(exitSpy);\n\n    let v = new Value(6);\n    expect(enterSpy).to.have.been.calledOnce;\n    expect(enterSpy).to.have.been.calledWithMatch(v);\n    enterSpy.reset();\n    expect(exitSpy).to.not.have.been.called;\n\n    v.val = 4;\n    expect(enterSpy).to.not.have.been.called;\n    expect(exitSpy).to.have.been.calledOnce;\n    expect(exitSpy).to.have.been.calledWithMatch(v);\n    exitSpy.reset();\n\n    let v2 = new Value(0);\n    expect(enterSpy).to.not.have.been.called;\n    expect(exitSpy).to.not.have.been.called;\n    \n    v2.val = 100;\n    expect(enterSpy).to.have.been.calledOnce;\n    expect(enterSpy).to.have.been.calledWithMatch(v2);\n    expect(exitSpy).to.not.have.been.called;\n  });\n});\n"]}