mirror of
https://github.com/Fishwaldo/huginn.git
synced 2025-03-15 19:31:26 +00:00
Add deleteKey function to Javascript Agent (#1543)
* Add deleteKey function to Javascript Agent * JSONifying return value of deleteKey
This commit is contained in:
parent
47715c3349
commit
2295875d81
2 changed files with 41 additions and 0 deletions
|
@ -21,6 +21,7 @@ module Agents
|
|||
* `this.memory()`
|
||||
* `this.memory(key)`
|
||||
* `this.memory(keyToSet, valueToSet)`
|
||||
* `this.deleteKey(key)` (deletes a key from memory and returns the value)
|
||||
* `this.credential(name)`
|
||||
* `this.credential(name, valueToSet)`
|
||||
* `this.options()`
|
||||
|
@ -120,6 +121,7 @@ module Agents
|
|||
memory.to_json
|
||||
end
|
||||
end
|
||||
context["deleteKey"] = lambda { |a, x| memory.delete(x).to_json }
|
||||
context["escapeHtml"] = lambda { |a, x| CGI.escapeHTML(x) }
|
||||
context["unescapeHtml"] = lambda { |a, x| CGI.unescapeHTML(x) }
|
||||
context['getCredential'] = lambda { |a, k| credential(k); }
|
||||
|
@ -198,6 +200,10 @@ module Agents
|
|||
doError(message);
|
||||
}
|
||||
|
||||
Agent.deleteKey = function(key) {
|
||||
return JSON.parse(deleteKey(key));
|
||||
}
|
||||
|
||||
Agent.escapeHtml = function(html) {
|
||||
return escapeHtml(html);
|
||||
}
|
||||
|
|
|
@ -188,6 +188,41 @@ describe Agents::JavaScriptAgent do
|
|||
end
|
||||
end
|
||||
|
||||
describe "deleteKey" do
|
||||
it "deletes a memory key" do
|
||||
@agent.memory = { foo: "baz" }
|
||||
@agent.options['code'] = 'Agent.check = function() {
|
||||
this.deleteKey("foo");
|
||||
};'
|
||||
@agent.save!
|
||||
@agent.check
|
||||
expect(@agent.memory['foo']).to be_nil
|
||||
expect { @agent.reload.memory }.not_to raise_error
|
||||
end
|
||||
|
||||
it "returns the string value of the deleted key" do
|
||||
@agent.memory = { foo: "baz" }
|
||||
@agent.options['code'] = 'Agent.check = function() {
|
||||
this.createEvent({ message: this.deleteKey("foo")});
|
||||
};'
|
||||
@agent.save!
|
||||
@agent.check
|
||||
created_event = @agent.events.last
|
||||
expect(created_event.payload).to eq('message' => "baz")
|
||||
end
|
||||
|
||||
it "returns the hash value of the deleted key" do
|
||||
@agent.memory = { foo: { baz: 'test' } }
|
||||
@agent.options['code'] = 'Agent.check = function() {
|
||||
this.createEvent({ message: this.deleteKey("foo")});
|
||||
};'
|
||||
@agent.save!
|
||||
@agent.check
|
||||
created_event = @agent.events.last
|
||||
expect(created_event.payload).to eq('message' => { 'baz' => 'test' })
|
||||
end
|
||||
end
|
||||
|
||||
describe "creating events" do
|
||||
it "creates events with this.createEvent in the JavaScript environment" do
|
||||
@agent.options['code'] = 'Agent.check = function() { this.createEvent({ message: "This is an event!", stuff: { foo: 5 } }); };'
|
||||
|
|
Loading…
Add table
Reference in a new issue