{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-active-expression-proxies/src/client/reactive/test/active-expression-rewriting/general.spec.js"],"names":["chai","expect","sinon","sinonChai","use","val","spy","expr","asAExpr","fn","ae","fnSpy","aeSpy"],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAEOA,U;AAAOC,Y,sBAAAA,M;;AACPC,W;;AACAC,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACP,yFAAKC,GAAL,wFAASD,SAAT;;AAEA,oFAAS,kBAAT,EAA6B,MAAM;;AAEjC,0EAAG,4BAAH,EAAiC,MAAM;AAAA;;AACnC,cAAIE,MAAM,EAAV;AAAA,cACIC,8EAAM,sFAAMA,GAAN,EAAN,CADJ;;AAGA,mCAAM;AAAMD;AAAN,WAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uGACcC,GADd;;AAGAD,gBAAM,EAAN;;AAEA,2NAAOC,GAAP;AACH,SAVD;AAYD,OAdD;;AAgBA,oFAAS,SAAT,EAAoB,MAAM;;AAExB,0EAAG,mCAAH,EAAwC,MAAM;AAAA;;AAC5C,gBAAMC,OAAO,OAAM;AAAM;AAAN,WAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAb;;AAEA,6NAAOA,IAAP;AACA,oOAAOA,IAAP,oCAA6B,UAA7B;AACD,SALD;;AAOA,0EAAG,8BAAH,EAAmC,MAAM;AAAA;;AACvC,gBAAMA,OAAO,OAAM;AAAM;AAAN,WAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAb;;AAEA,2MAAO,oFAAKC,OAAL,EAAP,mGAAgCD,IAAhC;AACD,SAJD;;AAMA,0EAAG,mCAAH,EAAwC,MAAM;AAAA;;AAC5C,cAAIF,MAAM,CAAV;AACA,gBAAMI,KAAK;AAAMJ;AAAN,WAAX;AACA,gBAAMK,KAAK,iFAAMD,EAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAX;;AAEA,gBAAME,gFAAQ,sFAAML,GAAN,EAAR,CAAN;AACA,gBAAMM,gFAAQ,sFAAMN,GAAN,EAAR,CAAN;;AAEA,mLAAGE,OAAH,kGAAsBG,KAAtB;AACA,mLAAGH,OAAH,kGAAsBI,KAAtB;;AAEA;;AAEA,oNAAOD,KAAP;AACA,oNAAOC,KAAP;AACA,2NAAOD,KAAP,iCAA+B,CAA/B;AACA,2NAAOC,KAAP,iCAA+B,CAA/B;AACA,2NAAOA,KAAP,mHAAiCD,KAAjC;AACD,SAlBD;AAoBD,OAnCD","file":"general.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('simple listeners', () => {\n\n  it(\"listen on a local variable\", () => {\n      let val = 17,\n          spy = sinon.spy();\n\n      aexpr(() => val)\n          .onChange(spy);\n\n      val = 33;\n\n      expect(spy.called).to.be.true;\n  });\n\n});\n\ndescribe('asAExpr', () => {\n  \n  it('rewriting aexprs support asAExprs', () => {\n    const expr = aexpr(() => 1);\n    \n    expect(expr.asAExpr).to.be.ok;\n    expect(expr.asAExpr).to.be.a('function');\n  });\n  \n  it('aexpr.asAExpr returns itself', () => {\n    const expr = aexpr(() => 1);\n    \n    expect(expr.asAExpr()).to.equal(expr);\n  });\n  \n  it('rewriting aexprs support asAExprs', () => {\n    var val = 1;\n    const fn = () => val;\n    const ae = aexpr(fn);\n    \n    const fnSpy = sinon.spy();\n    const aeSpy = sinon.spy();\n\n    fn.asAExpr().onChange(fnSpy);\n    ae.asAExpr().onChange(aeSpy);\n    \n    val++;\n\n    expect(fnSpy).to.be.calledOnce;\n    expect(aeSpy).to.be.calledOnce;\n    expect(fnSpy).to.be.calledWith(2);\n    expect(aeSpy).to.be.calledWith(2);\n    expect(aeSpy).to.be.calledBefore(fnSpy);\n  });\n  \n});\n"]}