{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-markus/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,oL;;;;;;;;;;;;;;;;;;;;;;;;;;AAAPD,kL;;;;;;;;;;;;;;;;;;;;;;;;;;AACAE,mL;;;;;;;;;;;;;;;;;;;;;;;;;;AACAC,uL;;;;;;;;;;;;;;;;;;;;AACP,yFAAKG,GAAL,wFAASH,SAAT;;;;;;;;;;AAEOC,oL;;;;;;;;;;;;;;;;;;;;;;;;;;AACEC,2L;;;;;;;;;;;;;;;;;;;AACT,YAAME,cAAc,+GAApB;;;;;;;;;;AAAMA,yL;;;;;;;;;;;;;;;;;;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,kOAAaH,SAAb;AAAR,WAA3B,eACU,CAACI,GAAD,EAAMC,QAAN;AAAA;AAAmB,yMAAMA,QAAN;AAAnB,WADV,iGACmDH,YADnD,IAEGI,QAFH,8EAEYP,GAFZ;AAAA;AAAA;AAGA,uOAAOA,GAAP;;AAEA,cAAIQ,YAAY,+FAAIV,WAAJ,EAAgB,EAAhB,CAAhB;AACA,4NAAOE,GAAP;AACA,mOAAOA,GAAP,iDACE,mNAAeQ,SAAf,WADF;;AAIA,cAAIC,YAAY,+FAAIX,WAAJ,EAAgB,CAAhB,CAAhB;AACA,4NAAOE,GAAP;AACA,mOAAOA,GAAP,iDACE,mNAAeQ,SAAf,kHAAiCC,SAAjC,WADF;;AAIA,iIAAgB,EAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wNAAOT,GAAP,kCAA8B,CAA9B;AACA,8OAAOA,GAAP,yBAAyB,CAAzB,oHAAsCG,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"]}