|
@@ -3,9 +3,9 @@ require 'rails_helper'
|
|
|
describe Agents::JavaScriptAgent do
|
|
|
before do
|
|
|
@valid_params = {
|
|
|
- :name => "somename",
|
|
|
- :options => {
|
|
|
- :code => "Agent.check = function() { this.createEvent({ 'message': 'hi' }); };",
|
|
|
+ name: "somename",
|
|
|
+ options: {
|
|
|
+ code: "Agent.check = function() { this.createEvent({ 'message': 'hi' }); };",
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -42,7 +42,7 @@ describe Agents::JavaScriptAgent do
|
|
|
expect(@agent).to be_valid
|
|
|
@agent.options['code'] = 'credential:foo'
|
|
|
expect(@agent).not_to be_valid
|
|
|
- users(:jane).user_credentials.create! :credential_name => "foo", :credential_value => "bar"
|
|
|
+ users(:jane).user_credentials.create! credential_name: "foo", credential_value: "bar"
|
|
|
expect(@agent.reload).to be_valid
|
|
|
end
|
|
|
end
|
|
@@ -85,13 +85,14 @@ describe Agents::JavaScriptAgent do
|
|
|
expect {
|
|
|
@agent.receive([events(:bob_website_agent_event)])
|
|
|
@agent.check
|
|
|
- }.not_to change { AgentLog.count }
|
|
|
+ }.not_to(change { AgentLog.count })
|
|
|
}.to change { Event.count }.by(2)
|
|
|
end
|
|
|
|
|
|
describe "using credentials as code" do
|
|
|
before do
|
|
|
- @agent.user.user_credentials.create :credential_name => 'code-foo', :credential_value => 'Agent.check = function() { this.log("ran it"); };'
|
|
|
+ @agent.user.user_credentials.create credential_name: 'code-foo',
|
|
|
+ credential_value: 'Agent.check = function() { this.log("ran it"); };'
|
|
|
@agent.options['code'] = "credential:code-foo\n\n"
|
|
|
@agent.save!
|
|
|
end
|
|
@@ -151,7 +152,7 @@ describe Agents::JavaScriptAgent do
|
|
|
};'
|
|
|
@agent.save!
|
|
|
@agent.check
|
|
|
- expect(@agent.memory['foo']).to eq([1,2])
|
|
|
+ expect(@agent.memory['foo']).to eq([1, 2])
|
|
|
@agent.save!
|
|
|
expect { @agent.reload.memory }.not_to raise_error
|
|
|
end
|
|
@@ -165,7 +166,7 @@ describe Agents::JavaScriptAgent do
|
|
|
};'
|
|
|
@agent.save!
|
|
|
@agent.check
|
|
|
- expect(@agent.memory['foo']).to eq({"one"=>1, "two"=> [1,2]})
|
|
|
+ expect(@agent.memory['foo']).to eq({ "one" => 1, "two" => [1, 2] })
|
|
|
@agent.save!
|
|
|
expect { @agent.reload.memory }.not_to raise_error
|
|
|
end
|
|
@@ -182,7 +183,7 @@ describe Agents::JavaScriptAgent do
|
|
|
};'
|
|
|
@agent.save!
|
|
|
@agent.check
|
|
|
- expect(@agent.memory['foo']).to eq({"three"=>3, "four"=>{"one"=>1, "two"=>2}})
|
|
|
+ expect(@agent.memory['foo']).to eq({ "three" => 3, "four" => { "one" => 1, "two" => 2 } })
|
|
|
@agent.save!
|
|
|
expect { @agent.reload.memory }.not_to raise_error
|
|
|
end
|
|
@@ -265,12 +266,13 @@ describe Agents::JavaScriptAgent do
|
|
|
|
|
|
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 } }); };'
|
|
|
+ @agent.options['code'] =
|
|
|
+ 'Agent.check = function() { this.createEvent({ message: "This is an event!", stuff: { foo: 5 } }); };'
|
|
|
@agent.save!
|
|
|
expect {
|
|
|
expect {
|
|
|
@agent.check
|
|
|
- }.not_to change { AgentLog.count }
|
|
|
+ }.not_to(change { AgentLog.count })
|
|
|
}.to change { Event.count }.by(1)
|
|
|
created_event = @agent.events.last
|
|
|
expect(created_event.payload).to eq({ 'message' => "This is an event!", 'stuff' => { 'foo' => 5 } })
|
|
@@ -298,15 +300,17 @@ describe Agents::JavaScriptAgent do
|
|
|
|
|
|
describe "escaping and unescaping HTML" do
|
|
|
it "can escape and unescape html with this.escapeHtml and this.unescapeHtml in the javascript environment" do
|
|
|
- @agent.options['code'] = 'Agent.check = function() { this.createEvent({ escaped: this.escapeHtml(\'test \"escaping\" <characters>\'), unescaped: this.unescapeHtml(\'test "unescaping" <characters>\')}); };'
|
|
|
+ @agent.options['code'] =
|
|
|
+ 'Agent.check = function() { this.createEvent({ escaped: this.escapeHtml(\'test \"escaping\" <characters>\'), unescaped: this.unescapeHtml(\'test "unescaping" <characters>\')}); };'
|
|
|
@agent.save!
|
|
|
expect {
|
|
|
expect {
|
|
|
@agent.check
|
|
|
- }.not_to change { AgentLog.count }
|
|
|
- }.to change { Event.count}.by(1)
|
|
|
+ }.not_to(change { AgentLog.count })
|
|
|
+ }.to change { Event.count }.by(1)
|
|
|
created_event = @agent.events.last
|
|
|
- expect(created_event.payload).to eq({ 'escaped' => 'test "escaping" <characters>', 'unescaped' => 'test "unescaping" <characters>'})
|
|
|
+ expect(created_event.payload).to eq({ 'escaped' => 'test "escaping" <characters>',
|
|
|
+ 'unescaped' => 'test "unescaping" <characters>' })
|
|
|
end
|
|
|
end
|
|
|
|
|
@@ -314,7 +318,7 @@ describe Agents::JavaScriptAgent do
|
|
|
it "can access incoming events in the JavaScript enviroment via this.incomingEvents" do
|
|
|
event = Event.new
|
|
|
event.agent = agents(:bob_rain_notifier_agent)
|
|
|
- event.payload = { :data => "Something you should know about" }
|
|
|
+ event.payload = { data: "Something you should know about" }
|
|
|
event.save!
|
|
|
event.reload
|
|
|
|
|
@@ -331,10 +335,11 @@ describe Agents::JavaScriptAgent do
|
|
|
expect {
|
|
|
expect {
|
|
|
@agent.receive([events(:bob_website_agent_event), event])
|
|
|
- }.not_to change { AgentLog.count }
|
|
|
+ }.not_to(change { AgentLog.count })
|
|
|
}.to change { Event.count }.by(2)
|
|
|
created_event = @agent.events.first
|
|
|
- expect(created_event.payload).to eq({ 'message' => "I got an event!", 'event_was' => { 'data' => "Something you should know about" } })
|
|
|
+ expect(created_event.payload).to eq({ 'message' => "I got an event!",
|
|
|
+ 'event_was' => { 'data' => "Something you should know about" } })
|
|
|
end
|
|
|
end
|
|
|
|
|
@@ -353,7 +358,6 @@ describe Agents::JavaScriptAgent do
|
|
|
|
|
|
expect {
|
|
|
expect {
|
|
|
-
|
|
|
@agent.check
|
|
|
expect(@agent.memory['callCount']).not_to be_present
|
|
|
|
|
@@ -367,9 +371,8 @@ describe Agents::JavaScriptAgent do
|
|
|
@agent.memory['callCount'] = 20
|
|
|
@agent.check
|
|
|
expect(@agent.memory['callCount']).to eq(21)
|
|
|
-
|
|
|
- }.not_to change { AgentLog.count }
|
|
|
- }.not_to change { Event.count }
|
|
|
+ }.not_to(change { AgentLog.count })
|
|
|
+ }.not_to(change { Event.count })
|
|
|
end
|
|
|
end
|
|
|
|