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) {
|
||||
if (key === "$parent") {
|
||||
return [parent, ""];
|
||||
return [parent, undefined];
|
||||
}
|
||||
else if (key.startsWith("$parent.")) {
|
||||
var len = "$parent.".length;
|
||||
@ -275,15 +275,7 @@ function createContext(id,seed,parent) {
|
||||
var result = followParentContext(parent, key);
|
||||
if (result) {
|
||||
var [ctx, new_key] = result;
|
||||
if (ctx) {
|
||||
if (new_key === "") {
|
||||
if (callback) {
|
||||
return callback(ctx);
|
||||
}
|
||||
else {
|
||||
return ctx;
|
||||
}
|
||||
}
|
||||
if (ctx && new_key) {
|
||||
return ctx.get(new_key, storage, callback);
|
||||
}
|
||||
else {
|
||||
@ -365,7 +357,7 @@ function createContext(id,seed,parent) {
|
||||
var result = followParentContext(parent, key);
|
||||
if (result) {
|
||||
var [ctx, new_key] = result;
|
||||
if (ctx) {
|
||||
if (ctx && new_key) {
|
||||
return ctx.set(new_key, value, storage, callback);
|
||||
}
|
||||
else {
|
||||
|
@ -226,33 +226,31 @@ describe('context', 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 context1 = Context.get("1","flowB", context0);
|
||||
var parent = context1.get("$parent");
|
||||
parent.should.equal(context0);
|
||||
should.equal(parent, undefined);
|
||||
});
|
||||
|
||||
it('should get undefined for $parent of root', function() {
|
||||
var context0 = Context.get("0","flowA");
|
||||
var context1 = Context.get("1","flowB", context0);
|
||||
var parent = context1.get("$parent.$parent");
|
||||
var parent = context1.get("$parent.$parent.K");
|
||||
should.equal(parent, undefined);
|
||||
});
|
||||
|
||||
it('should get $parent', function() {
|
||||
it('should get value in $parent', function() {
|
||||
var context0 = Context.get("0","flowA");
|
||||
var context1 = Context.get("1","flowB", context0);
|
||||
var parent = context1.get("$parent");
|
||||
context0.set("K", "v");
|
||||
var v = context1.get("$parent.K");
|
||||
should.equal(v, "v");
|
||||
});
|
||||
|
||||
it('should set $parent', function() {
|
||||
it('should set value in $parent', function() {
|
||||
var context0 = Context.get("0","flowA");
|
||||
var context1 = Context.get("1","flowB", context0);
|
||||
var parent = context1.get("$parent");
|
||||
context1.set("$parent.K", "v");
|
||||
var v = context0.get("K");
|
||||
should.equal(v, "v");
|
||||
@ -270,7 +268,6 @@ describe('context', function() {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
describe('external context storage',function() {
|
||||
|
Loading…
Reference in New Issue
Block a user