diff --git a/red/runtime/nodes/context.js b/red/runtime/nodes/context.js index 014653560..794050dc1 100644 --- a/red/runtime/nodes/context.js +++ b/red/runtime/nodes/context.js @@ -27,6 +27,9 @@ function createContext(id,seed) { obj.set = function set(key, value) { util.setMessageProperty(data,key,value); } + obj.keys = function() { + return Object.keys(data); + } return obj; } diff --git a/test/red/runtime/nodes/context_spec.js b/test/red/runtime/nodes/context_spec.js index 9a1a76a25..3e7c03de4 100644 --- a/test/red/runtime/nodes/context_spec.js +++ b/test/red/runtime/nodes/context_spec.js @@ -119,4 +119,26 @@ describe('context', function() { should.not.exist(context.get("foo")); }) + it('enumerates context keys', function() { + var context = Context.get("1","flowA"); + + var keys = context.keys(); + keys.should.be.an.Array(); + keys.should.be.empty(); + + context.set("foo","bar"); + keys = context.keys(); + keys.should.have.length(1); + keys[0].should.eql("foo"); + + context.set("abc.def","bar"); + keys = context.keys(); + keys.should.have.length(2); + keys[1].should.eql("abc"); + + + + + }) + });