{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-RP19-4/src/client/reactive/test/active-expression-rewriting/update-expression.spec.js"],"names":["chai","expect","sinon","sinonChai","deleteMember","use","outerSpy","spy","i","changeSpy","x","obj","prop"],"mappings":"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","file":"update-expression.spec.js","sourcesContent":["\"enable aexpr\";\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 { deleteMember} from '../../active-expression-rewriting/active-expression-rewriting.js';\n\ndescribe('UpdateOperator', () => {\n  \n  it('x++', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    var x = 42;\n    aexpr(() => x).onChange(changeSpy);\n\n    outerSpy(x++);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(43);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(42); // expression return the previous value\n\n    expect(x).to.equal(43);\n  });\n  \n  it('x--', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    var x = 42;\n    aexpr(() => x).onChange(changeSpy);\n\n    outerSpy(x--);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(41);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(42); // expression return the previous value\n\n    expect(x).to.equal(41);\n  });\n  \n  it('++x', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    var x = 42;\n    aexpr(() => x).onChange(changeSpy);\n\n    outerSpy(++x);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(43);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(43); // expression return the previous value\n\n    expect(x).to.equal(43);\n  });\n  \n  it('--x', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    var x = 42;\n    aexpr(() => x).onChange(changeSpy);\n\n    outerSpy(--x);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(41);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(41); // expression return the previous value\n\n    expect(x).to.equal(41);\n  });\n  \n  it('obj.prop++', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    const obj = { prop: 42 };\n    aexpr(() => obj.prop).onChange(changeSpy);\n\n    outerSpy(obj.prop++);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(43);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(42); // expression return the previous value\n\n    expect(obj.prop).to.equal(43);\n  });\n  \n  it('obj.prop--', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    const obj = { prop: 42 };\n    aexpr(() => obj.prop).onChange(changeSpy);\n\n    outerSpy(obj.prop--);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(41);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(42); // expression return the previous value\n\n    expect(obj.prop).to.equal(41);\n  });\n  \n  it('++obj.prop', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    const obj = { prop: 42 };\n    aexpr(() => obj.prop).onChange(changeSpy);\n\n    outerSpy(++obj.prop);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(43);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(43); // expression return the previous value\n\n    expect(obj.prop).to.equal(43);\n  });\n  \n  it('--obj.prop', () => {\n    const outerSpy = sinon.spy(i => i);\n    const changeSpy = sinon.spy();\n    \n    const obj = { prop: 42 };\n    aexpr(() => obj.prop).onChange(changeSpy);\n\n    outerSpy(--obj.prop);\n\n    expect(changeSpy).to.be.calledOnce;\n    expect(changeSpy).to.be.calledWith(41);\n    expect(changeSpy).to.be.calledBefore(outerSpy);\n    expect(outerSpy).to.be.calledWith(41); // expression return the previous value\n\n    expect(obj.prop).to.equal(41);\n  });\n  \n});\n"]}