mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
make $parent access without key return undefined
This commit is contained in:
parent
596fbfb517
commit
723e9b3cba
@ -202,7 +202,7 @@ function getContextStorage(storage) {
|
|||||||
|
|
||||||
function followParentContext(parent, key) {
|
function followParentContext(parent, key) {
|
||||||
if (key === "$parent") {
|
if (key === "$parent") {
|
||||||
return [parent, ""];
|
return [parent, undefined];
|
||||||
}
|
}
|
||||||
else if (key.startsWith("$parent.")) {
|
else if (key.startsWith("$parent.")) {
|
||||||
var len = "$parent.".length;
|
var len = "$parent.".length;
|
||||||
@ -275,24 +275,16 @@ function createContext(id,seed,parent) {
|
|||||||
var result = followParentContext(parent, key);
|
var result = followParentContext(parent, key);
|
||||||
if (result) {
|
if (result) {
|
||||||
var [ctx, new_key] = result;
|
var [ctx, new_key] = result;
|
||||||
if (ctx) {
|
if (ctx && new_key) {
|
||||||
if (new_key === "") {
|
|
||||||
if (callback) {
|
|
||||||
return callback(ctx);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return ctx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ctx.get(new_key, storage, callback);
|
return ctx.get(new_key, storage, callback);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (callback) {
|
if (callback) {
|
||||||
return callback(undefined);
|
return callback(undefined);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -365,7 +357,7 @@ function createContext(id,seed,parent) {
|
|||||||
var result = followParentContext(parent, key);
|
var result = followParentContext(parent, key);
|
||||||
if (result) {
|
if (result) {
|
||||||
var [ctx, new_key] = result;
|
var [ctx, new_key] = result;
|
||||||
if (ctx) {
|
if (ctx && new_key) {
|
||||||
return ctx.set(new_key, value, storage, callback);
|
return ctx.set(new_key, value, storage, callback);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -226,33 +226,31 @@ describe('context', function() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe("$parent", function() {
|
describe("$parent", function() {
|
||||||
it('should access $parent', function() {
|
it('should get undefined for $parent without key', function() {
|
||||||
var context0 = Context.get("0","flowA");
|
var context0 = Context.get("0","flowA");
|
||||||
var context1 = Context.get("1","flowB", context0);
|
var context1 = Context.get("1","flowB", context0);
|
||||||
var parent = context1.get("$parent");
|
var parent = context1.get("$parent");
|
||||||
parent.should.equal(context0);
|
should.equal(parent, undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should get undefined for $parent of root', function() {
|
it('should get undefined for $parent of root', function() {
|
||||||
var context0 = Context.get("0","flowA");
|
var context0 = Context.get("0","flowA");
|
||||||
var context1 = Context.get("1","flowB", context0);
|
var context1 = Context.get("1","flowB", context0);
|
||||||
var parent = context1.get("$parent.$parent");
|
var parent = context1.get("$parent.$parent.K");
|
||||||
should.equal(parent, undefined);
|
should.equal(parent, undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should get $parent', function() {
|
it('should get value in $parent', function() {
|
||||||
var context0 = Context.get("0","flowA");
|
var context0 = Context.get("0","flowA");
|
||||||
var context1 = Context.get("1","flowB", context0);
|
var context1 = Context.get("1","flowB", context0);
|
||||||
var parent = context1.get("$parent");
|
|
||||||
context0.set("K", "v");
|
context0.set("K", "v");
|
||||||
var v = context1.get("$parent.K");
|
var v = context1.get("$parent.K");
|
||||||
should.equal(v, "v");
|
should.equal(v, "v");
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should set $parent', function() {
|
it('should set value in $parent', function() {
|
||||||
var context0 = Context.get("0","flowA");
|
var context0 = Context.get("0","flowA");
|
||||||
var context1 = Context.get("1","flowB", context0);
|
var context1 = Context.get("1","flowB", context0);
|
||||||
var parent = context1.get("$parent");
|
|
||||||
context1.set("$parent.K", "v");
|
context1.set("$parent.K", "v");
|
||||||
var v = context0.get("K");
|
var v = context0.get("K");
|
||||||
should.equal(v, "v");
|
should.equal(v, "v");
|
||||||
@ -270,7 +268,6 @@ describe('context', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('external context storage',function() {
|
describe('external context storage',function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user