{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-core/src/client/reactive/test/active-groups/union.spec.js"],"names":["chai","expect","sinon","sinonChai","select","getValueClass","use","ValueHolder","timeout","range1","min","max","range2","view1","data","view2","v1","v2","v3","union","now","v4"],"mappings":"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","file":"union.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 select from 'active-group';\nimport { getValueClass } from './class-factory.js';\nvar ValueHolder = getValueClass();\n\ndescribe('.union operator', function() {\n    it('ValueHolder example', function() {\n        this.timeout(10000);\n\n        var range1 = {\n            min: 0,\n            max: 25\n        };\n        var range2 = {\n            min: 15,\n            max: 50\n        };\n        var view1 = select(ValueHolder).filter(function(data) {\n            return range1.min <= data.value && data.value <= range1.max;\n        });\n        var view2 = select(ValueHolder).filter(function(data) {\n            return range2.min <= data.value && data.value <= range2.max;\n        });\n        var v1 = new ValueHolder(10);\n        var v2 = new ValueHolder(20);\n        var v3 = new ValueHolder(30);\n        var union = view1.union(view2);\n        expect(union.now()).to.have.lengthOf(3);\n        expect(union.now()).to.include(v1);\n        expect(union.now()).to.include(v2);\n        expect(union.now()).to.include(v3);\n\n        // remove a value that is contained in only one upstream\n        v1.value = -1;\n        expect(union.now()).to.have.lengthOf(2);\n        expect(union.now()).to.include(v2);\n        expect(union.now()).to.include(v3);\n\n        // remove a value from both upstreams\n        v2.value = -1;\n        expect(union.now()).to.have.lengthOf(1);\n        expect(union.now()).to.include(v3);\n\n        // add a value to one upstream\n        v1.value = 10;\n        expect(union.now()).to.have.lengthOf(2);\n        expect(union.now()).to.include(v1);\n        expect(union.now()).to.include(v3);\n\n        // add a value to both upstreams\n        var v4 = new ValueHolder(20);\n        expect(union.now()).to.have.lengthOf(3);\n        expect(union.now()).to.include(v1);\n        expect(union.now()).to.include(v3);\n        expect(union.now()).to.include(v4);\n\n        // remove multiple values at once\n        range1.max = 15;\n        range2.min = 35;\n\n        expect(union.now()).to.have.lengthOf(1);\n        expect(union.now()).to.include(v1);\n    });\n});\n"]}