{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-core/src/client/reactive/test/active-groups/reduce.spec.js"],"names":["chai","expect","sinon","sinonChai","select","getValueClass","use","AValueClass","timeout","spy","threshold","min","initialValue","data","acc","instance","onChange","instance1","instance2"],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAEOA,U;AAAOC,Y,sBAAAA,M;;AACPC,W;;AACAC,e;;AAGAC,Y;;AACEC,mB,mBAAAA,a;;;;;;;;;;;;;;AANKJ,iS;;;;;;;;;;;;;;;;;;;;;;;;;;AAAPD,+R;;;;;;;;;;;;;;;;;;;;;;;;;;AACAE,gS;;;;;;;;;;;;;;;;;;;;;;;;;;AACAC,oS;;;;;;;;;;;;;;;;;;;;AACP,yFAAKG,GAAL,wFAASH,SAAT;;;;;;;;;;AAEOC,iS;;;;;;;;;;;;;;;;;;;;;;;;;;AACEC,wS;;;;;;;;;;;;;;;;;;;AACT,YAAME,cAAc,+GAApB;;;;;;;;;;AAAMA,sS;;;;;;;;;;;;;;;;;;AAEN,oFAAS,kBAAT,EAA6B,YAAW;;AAEtC,0EAAG,mBAAH,EAAwB,YAAW;AAAA;AAAA;;AACjC,eAAKC,OAAL,CAAa,KAAb;AACA,cAAIC,8EAAM,sFAAMA,GAAN,EAAN,CAAJ;;AAEA,cAAIC,YAAY,EAAEC,KAAK,CAAP,EAAhB;AAAA,cACIC,eAAe,CADnB;AAEA,kOAAOL,WAAP,eAA2BM;AAAA;AAAQ,yKAAaH,SAAb,YAAaA,SAAb,6FAAaA,SAAb,EAAaA,SAAb;AAAR,WAA3B,eACU,CAACI,GAAD,EAAMC,QAAN;AAAA;AAAmB,+IAAMA,QAAN,YAAMA,QAAN,2FAAMA,QAAN,EAAMA,QAAN;AAAnB,WADV,GACmDH,YADnD,YACmDA,YADnD,mGACmDA,YADnD,EACmDA,YADnD,IAEGI,QAFH,EAEYP,GAFZ,YAEYA,GAFZ,iFAEYA,GAFZ,EAEYA,GAFZ;AAAA;AAAA;AAGA,2JAAOA,GAAP,YAAOA,GAAP,iFAAOA,GAAP,EAAOA,GAAP;;AAEA,cAAIQ,YAAY,+FAAIV,WAAJ,EAAgB,EAAhB,CAAhB;AACA,gJAAOE,GAAP,YAAOA,GAAP,iFAAOA,GAAP,EAAOA,GAAP;AACA,uJAAOA,GAAP,YAAOA,GAAP,iFAAOA,GAAP,EAAOA,GAAP,iDACE,kLAAeQ,SAAf,YAAeA,SAAf,6FAAeA,SAAf,EAAeA,SAAf,WADF;;AAIA,cAAIC,YAAY,+FAAIX,WAAJ,EAAgB,CAAhB,CAAhB;AACA,gJAAOE,GAAP,YAAOA,GAAP,iFAAOA,GAAP,EAAOA,GAAP;AACA,uJAAOA,GAAP,YAAOA,GAAP,iFAAOA,GAAP,EAAOA,GAAP,iDACE,kLAAeQ,SAAf,YAAeA,SAAf,6FAAeA,SAAf,EAAeA,SAAf,0BAAiCC,SAAjC,YAAiCA,SAAjC,6FAAiCA,SAAjC,EAAiCA,SAAjC,WADF;;AAIA,+KAAgB,EAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,4IAAOT,GAAP,YAAOA,GAAP,iFAAOA,GAAP,EAAOA,GAAP,kCAA8B,CAA9B;AACA,kKAAOA,GAAP,YAAOA,GAAP,iFAAOA,GAAP,EAAOA,GAAP,yBAAyB,CAAzB,sBAAsCG,YAAtC,YAAsCA,YAAtC,mGAAsCA,YAAtC,EAAsCA,YAAtC;AACD,SA1BD;AA2BD,OA7BD","file":"reduce.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 from 'active-group';\nimport { getValueClass } from './class-factory.js';\nconst AValueClass = getValueClass();\n\ndescribe('.reduce operator', function() {\n\n  it('Example for aexpr', function() {\n    this.timeout(10000);\n    let spy = sinon.spy();\n\n    var threshold = { min: 0 },\n        initialValue = 3;\n    select(AValueClass).filter(data => data.value > threshold.min)\n      .reduce((acc, instance) => acc + instance.value, initialValue)\n      .onChange(spy);\n    expect(spy).to.not.have.been.called;\n\n    var instance1 = new AValueClass(42);\n    expect(spy).to.have.been.calledOnce;\n    expect(spy).to.have.been.calledWithMatch(\n      initialValue + instance1.value\n    );\n\n    var instance2 = new AValueClass(5);\n    expect(spy).to.have.been.calledTwice;\n    expect(spy).to.have.been.calledWithMatch(\n      initialValue + instance1.value + instance2.value\n    );\n\n    threshold.min = 50;\n    expect(spy).to.have.callCount(4);\n    expect(spy.lastCall.args[0]).to.equal(initialValue);\n  });\n});\n"]}