relu-core
Version:
53 lines (52 loc) • 1.2 kB
JavaScript
var should = require("should");
var rp = require("../");
var checkRefs = require("./checkRefs");
describe("handled", function() {
it("should not depend on a handled variable", checkRefs(function() {
var x = rp.variable("test");
var y = rp.variable(1);
var z = rp.variable([1, 2, 3]);
var h = rp.computed(function() {
var handled = [];
return {
value:
x() + y.getHandled(function(v) {
handled.push(v);
}) + z.getHandled(function(v) {
handled.push(v);
}, function(idx, item) {
handled.push({added: item});
}, function(idx, item) {
handled.push({removed: item});
}).join(""),
handled: handled
};
});
h().should.be.eql({
value: "test1123",
handled: []
});
y.set(2);
z.push(4);
h().should.be.eql({
value: "test1123",
handled: [2, {added:4}]
});
var oldH = h();
x.set("TEST");
h().should.be.eql({
value: "TEST21234",
handled: []
});
z.pop();
z.set([0, 1, 2]);
h().should.be.eql({
value: "TEST21234",
handled: [{removed:4}, [0, 1, 2]]
});
oldH.should.be.eql({
value: "test1123",
handled: [2, {added:4}]
});
}));
});