{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-markus/src/client/reactive/test/active-expression-convention/disable.spec.js"],"names":["chai","expect","sinon","sinonChai","TickingActiveExpression","check","FrameBasedActiveExpression","use","obj","prop","spy","ae","onChange","disable","disabled","enable","x","setExpression","o1","p","o2","timeout","sleep"],"mappings":"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","file":"disable.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 { TickingActiveExpression, check } from '../../active-expression-convention/active-expression-ticking.js';\n\nimport { FrameBasedActiveExpression } from '../../active-expression-convention/active-expression-frame-based.js';\n\ndescribe('disable (Ticking Active Expressions)', () => {\n\n  it('setter while disabled', () => {\n    var obj = { prop: 42 };\n    const spy = sinon.spy();\n    let ae = new TickingActiveExpression(() => obj.prop).onChange(spy);\n\n    ae.disable();\n\n    obj.prop = 17;\n    check([ae]);\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 = new TickingActiveExpression(() => obj.prop, { disabled: true }).onChange(spy);\n\n    ae.enable();\n\n    obj.prop = 17;\n    check([ae]);\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 = new TickingActiveExpression(() => x, { disabled: true }).onChange(spy);\n\n    x = 17;\n    check([ae]);\n    expect(spy).not.to.be.called;\n\n    ae.enable();\n    expect(spy).to.be.calledOnce;\n  });\n\n  it('not check via .enable', () => {\n    var x = 1;\n    const spy = sinon.spy();\n    let ae = new TickingActiveExpression(() => x, { disabled: true }).onChange(spy);\n\n    x = 2;\n    check([ae]);\n\n    ae.enable({ check: false });\n    expect(spy).not.to.be.called;\n\n    x = 3;\n    check([ae]);\n\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 = new TickingActiveExpression(() => 1, { disabled: true }).onChange(spy);\n\n    ae.setExpression(() => 2);\n    check([ae]);\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 = new TickingActiveExpression(() => o1.p, { disabled: true }).onChange(spy);\n\n    ae.setExpression(() => o2.p);\n    check([ae]);\n    expect(spy).not.to.be.called;\n\n    ae.enable({ check: false });\n\n    o2.p = 3;\n    check([ae]);\n    expect(spy).to.be.calledOnce;\n    expect(spy.firstCall.args[1].lastValue).to.equal(2);\n  });\n\n});\n\ndescribe('disable (Frame-based Active Expressions)', function() {\n\n  this.timeout(10000);\n  \n  it('setter while disabled', async () => {\n    var obj = { prop: 42 };\n    const spy = sinon.spy();\n    let ae = new FrameBasedActiveExpression(() => obj.prop).onChange(spy);\n\n    ae.disable();\n\n    obj.prop = 17;\n    await lively.sleep(500);\n\n    expect(spy).not.to.be.called;\n  });\n\n  it('setter while enabled', async () => {\n    var obj = { prop: 42 };\n    const spy = sinon.spy();\n    let ae = new FrameBasedActiveExpression(() => obj.prop, { disabled: true }).onChange(spy);\n\n    ae.enable();\n    await lively.sleep(500);\n    expect(spy).not.to.be.called;\n\n    obj.prop = 17;\n    await lively.sleep(500);\n\n    expect(spy).to.be.calledOnce;\n  });\n\n  it('check via .enable', async () => {\n    var x = 42;\n    const spy = sinon.spy();\n    let ae = new FrameBasedActiveExpression(() => x, { disabled: true }).onChange(spy);\n\n    x = 17;\n    await lively.sleep(500);\n    expect(spy).not.to.be.called;\n\n    ae.enable();\n    await lively.sleep(500);\n    expect(spy).to.be.calledOnce;\n  });\n\n  it('not check via .enable', async () => {\n    var obj = { prop: 1 };\n    const spy = sinon.spy();\n    let ae = new FrameBasedActiveExpression(() => obj.prop, { disabled: true }).onChange(spy);\n\n    obj = { prop: 2 };\n    ae.enable({ check: false });\n    await lively.sleep(500);\n    expect(spy).not.to.be.called;\n\n    obj = { prop: 3 };\n    await lively.sleep(500);\n    expect(spy).to.be.calledOnce;\n    expect(spy.firstCall.args[1].lastValue).to.equal(2);\n  });\n\n  it('.setExpression while disabled', async () => {\n    const spy = sinon.spy();\n    let ae = new FrameBasedActiveExpression(() => 1, { disabled: true }).onChange(spy);\n\n    ae.setExpression(() => 2);\n    await lively.sleep(500);\n    expect(spy).not.to.be.called;\n\n    ae.enable();\n    await lively.sleep(500);\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', async () => {\n    const spy = sinon.spy();\n    var o1 = { p: 1 };\n    var o2 = { p: 2 };\n    let ae = new FrameBasedActiveExpression(() => o1.p, { disabled: true }).onChange(spy);\n\n    ae.setExpression(() => o2.p);\n    await lively.sleep(500);\n    expect(spy).not.to.be.called;\n\n    ae.enable({ check: false });\n\n    o2.p = 3;\n    await lively.sleep(500);\n    expect(spy).to.be.calledOnce;\n    expect(spy.firstCall.args[1].lastValue).to.equal(2);\n  });\n\n});"]}