{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-core/src/client/reactive/test/active-expression-proxies/disable.spec.js"],"names":["chai","expect","sinon","sinonChai","use","describe","it","obj","prop","spy","ae","onChange","disable","not","to","be","called","disabled","enable","calledOnce","x","check","firstCall","args","lastValue","equal","setExpression","o1","p","o2"],"mappings":"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","file":"disable.spec.js","sourcesContent":["\"use proxies for aexprs\";\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('disable (Proxy Active Expressions)', () => {\n\n  it('setter while disabled', () => {\n    var obj = { prop: 42 };\n    const spy = sinon.spy();\n    let ae = aexpr(() => obj.prop).onChange(spy)\n\n    ae.disable();\n\n    obj.prop = 17;\n\n    expect(spy).not.to.be.called;\n  });\n\n  it('setter while enabled', () => {\n    var obj = { prop: 42 };\n    const spy = sinon.spy();\n    let ae = aexpr(() => obj.prop, { disabled: true }).onChange(spy)\n\n    ae.enable();\n\n    obj.prop = 17;\n\n    expect(spy).to.be.calledOnce;\n  });\n\n  it('check via .enable', () => {\n    var x = 42;\n    const spy = sinon.spy();\n    let ae = aexpr(() => x, { disabled: true }).onChange(spy)\n\n    x = 17;\n    ae.enable();\n\n    expect(spy).to.be.calledOnce;\n  });\n\n  it('not check via .enable', () => {\n    var obj = { prop: 1 };\n    const spy = sinon.spy();\n    let ae = aexpr(() => obj.prop, { disabled: true }).onChange(spy)\n\n    obj.prop = 2;\n    ae.enable({ check: false });\n    expect(spy).not.to.be.called;\n\n    obj.prop = 3;\n    expect(spy).to.be.calledOnce;\n    expect(spy.firstCall.args[1].lastValue).to.equal(2)\n  });\n\n  it('.setExpression while disabled', () => {\n    const spy = sinon.spy();\n    let ae = aexpr(() => 1, { disabled: true }).onChange(spy)\n\n    ae.setExpression(() => 2);\n    expect(spy).not.to.be.called;\n\n    ae.enable();\n    expect(spy).to.be.calledOnce;\n    expect(spy.firstCall.args[1].lastValue).to.equal(1)\n  });\n\n  it('.setExpression while disabled, then no check on re-enabling', () => {\n    const spy = sinon.spy();\n    var o1 = { p: 1 }\n    var o2 = { p: 2 }\n    let ae = aexpr(() => o1.p, { disabled: true }).onChange(spy)\n\n    ae.setExpression(() => o2.p);\n    expect(spy).not.to.be.called;\n\n    ae.enable({ check: false });\n\n    o2.p = 3\n    expect(spy).to.be.calledOnce;\n    expect(spy.firstCall.args[1].lastValue).to.equal(2)\n  });\n\n});\n"]}