{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-core/src/client/reactive/test/active-expression-rewriting/general.spec.js"],"names":["chai","expect","sinon","sinonChai","use","val","spy","onChange","expr","asAExpr","fn","ae","fnSpy","aeSpy"],"mappings":"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","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"]}