{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-bp2019/src/client/reactive/test/utils/annotations.test.js"],"names":["chai","expect","sinon","sinonChai","Annotations","use","describe","it","to","be","defined","respondTo","ann","has","false","add","value","true","prop","attribute","keys","eql","get","undefined","equal","include","getAll","squashed","squash","have","property","not","key","newSquashed"],"mappings":"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","file":"annotations.test.js","sourcesContent":["'use strict';\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 Annotations from 'src/client/reactive/utils/annotations.js';\n\ndescribe('Annotations (AExprs/Vivide)', () => {\n  it(\"Annotations exists\", () => {\n    expect(Annotations).to.be.defined;\n\n  });\n\n  it(\"supports add and has methods\", () => {\n    expect(Annotations).to.respondTo('add');\n    expect(Annotations).to.respondTo('has');\n    expect(Annotations).to.respondTo('keys');\n    expect(Annotations).to.respondTo('get');\n    expect(Annotations).to.respondTo('getAll');\n    expect(Annotations).to.respondTo('squash');\n  });\n\n  it(\"adds annotations\", () => {\n    const ann = new Annotations();\n    expect(ann.has('value')).to.be.false;\n\n    ann.add({ value: 42 });\n\n    expect(ann.has('value')).to.be.true;\n    expect(ann.has('prop')).to.be.false;\n\n    ann.add({ prop: 17, attribute: 33 });\n\n    expect(ann.has('value')).to.be.true;\n    expect(ann.has('prop')).to.be.true;\n    expect(ann.has('attribute')).to.be.true;\n    expect(ann.has('non-existent')).to.be.false;\n  });\n\n  it(\"keys properties\", () => {\n    const ann = new Annotations();\n    expect(ann.keys()).to.eql([]);\n\n    ann.add({ value: 42 });\n    expect(ann.keys()).to.eql(['value']);\n\n    ann.add({ prop: 17, attribute: 33 });\n    expect(ann.keys()).to.eql(['value', 'prop', 'attribute']);\n  });\n\n  it(\"gets properties\", () => {\n    const ann = new Annotations();\n    expect(ann.get('value')).to.be.undefined;\n\n    ann.add({ value: 42 });\n    expect(ann.get('value')).to.equal(42);\n\n    ann.add({ value: 17, prop: 33 });\n    expect([42, 17]).to.include(ann.get('value'));\n    expect(ann.get('prop')).to.equal(33);\n  });\n\n  it(\"getAll properties\", () => {\n    const ann = new Annotations();\n    expect(ann.getAll('value')).to.eql([]);\n\n    ann.add({ value: 42 });\n    expect(ann.getAll('value')).to.eql([42]);\n\n    ann.add({ value: 17, prop: 33 });\n    expect(ann.getAll('value')).to.eql([42, 17]);\n    expect(ann.getAll('prop')).to.eql([33]);\n  });\n\n  it(\"squash into a single config object\", () => {\n    const ann = new Annotations();\n    ann.add({ value: 17, prop: 33 });\n    ann.add({ value: 42 });\n\n    const squashed = ann.squash();\n    expect(squashed).to.have.property('value', 42);\n    expect(squashed).to.have.property('prop', 33);\n    expect(squashed).not.to.have.key('attribute');\n\n    ann.add({ value: 50, attribute: 12 });\n    const newSquashed = ann.squash();\n    expect(newSquashed).to.have.property('value', 50);\n    expect(newSquashed).to.have.property('prop', 33);\n    expect(newSquashed).to.have.property('attribute', 12);\n  });\n});\n"]}