From 0abc42fb40d913413e0663bab85033d0b85944d0 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Wed, 19 Jul 2017 11:23:19 +0900 Subject: [PATCH] Add specs for creating agents with a source/receiver/control target --- spec/features/create_an_agent_spec.rb | 65 +++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/spec/features/create_an_agent_spec.rb b/spec/features/create_an_agent_spec.rb index 7adf6033..a9159719 100644 --- a/spec/features/create_an_agent_spec.rb +++ b/spec/features/create_an_agent_spec.rb @@ -17,6 +17,71 @@ describe "Creating a new agent", js: true do expect(page).to have_text("Test Trigger Agent") end + context "with associated agents" do + let!(:bob_scheduler_agent) { + Agents::SchedulerAgent.create!( + user: users(:bob), + name: 'Example Scheduler', + options: { + 'action' => 'run', + 'schedule' => '0 * * * *' + }, + ) + } + + let!(:bob_weather_agent) { + agents(:bob_weather_agent) + } + + let!(:bob_formatting_agent) { + agents(:bob_formatting_agent).tap { |agent| + # Make this valid + agent.options['instructions']['foo'] = 'bar' + agent.save! + } + } + + it "creates an agent with a source and a receiver" do + visit "/" + page.find("a", text: "Agents").trigger(:mouseover) + click_on("New Agent") + + select_agent_type("Trigger Agent") + fill_in(:agent_name, with: "Test Trigger Agent") + + select2("SF Weather", from: 'Sources') + select2("Formatting Agent", from: 'Receivers') + + click_on "Save" + + expect(page).to have_text("Test Trigger Agent") + + agent = Agent.find_by(name: "Test Trigger Agent") + + expect(agent.sources).to eq([bob_weather_agent]) + expect(agent.receivers).to eq([bob_formatting_agent]) + end + + it "creates an agent with a control target" do + visit "/" + page.find("a", text: "Agents").trigger(:mouseover) + click_on("New Agent") + + select_agent_type("Scheduler Agent") + fill_in(:agent_name, with: "Test Scheduler Agent") + + select2("SF Weather", from: 'Control targets') + + click_on "Save" + + expect(page).to have_text("Test Scheduler Agent") + + agent = Agent.find_by(name: "Test Scheduler Agent") + + expect(agent.control_targets).to eq([bob_weather_agent]) + end + end + it "creates an alert if a new agent with invalid json is submitted" do visit "/" page.find("a", text: "Agents").trigger(:mouseover)