From 0bb6c583ea2ec1d801ade40dc08076324ea8fdc1 Mon Sep 17 00:00:00 2001 From: Yeu-Shuan Tang Date: Thu, 4 Dec 2014 16:44:18 -0800 Subject: [PATCH] Create Actions module and test all rules' hepler methods --- lib/zendesk_api/resources.rb | 3 +-- spec/unit/automation_spec.rb | 35 ++++++++++++++++++++++------------- spec/unit/macro_spec.rb | 23 +++++++++++++++++++++++ spec/unit/trigger_spec.rb | 23 +++++++++-------------- spec/unit/view_spec.rb | 18 ++++++++---------- 5 files changed, 63 insertions(+), 39 deletions(-) create mode 100644 spec/unit/macro_spec.rb diff --git a/lib/zendesk_api/resources.rb b/lib/zendesk_api/resources.rb index 5665eb6c..6bda2237 100644 --- a/lib/zendesk_api/resources.rb +++ b/lib/zendesk_api/resources.rb @@ -506,9 +506,8 @@ class View < Rule has :execution, :class => RuleExecution has ViewCount, :path => "count" - # View class configuration helpers def add_column(column) - columns = execution.columns.map {|c| c["id"]} + columns = execution.columns.map {|c| c[:id]} columns << column self.columns = columns end diff --git a/spec/unit/automation_spec.rb b/spec/unit/automation_spec.rb index 6cf33508..69f2513e 100644 --- a/spec/unit/automation_spec.rb +++ b/spec/unit/automation_spec.rb @@ -3,14 +3,12 @@ describe ZendeskAPI::Automation do subject do described_class.new(double, { - :title => "my test view", + :title => "my test automation", :conditions => { :any => [{ :field => "assignee_id", :operator => "is", :value => 1}], :all => [{ :field => "status", :operator => "is", :value => "open" }] }, - :execution => { - :columns => [:id => "status", :title=> "Status"] - } + :actions => [{ :field => "priority", :value => "urgent" }], }) end @@ -22,7 +20,7 @@ ] subject.all_conditions = new_conditions - expect(subject.conditions.to_hash["all"]).to eq(new_conditions) + expect(subject.conditions[:all]).to eq(new_conditions) end end @@ -34,35 +32,46 @@ ] subject.any_conditions = new_conditions - expect(subject.conditions.to_hash["any"]).to eq(new_conditions) + expect(subject.conditions[:any]).to eq(new_conditions) end end describe "#add_all_condition" do it "should add a condition to all condition" do new_condition = { :field => "type", :operator => "is", :value => "problem" } - existing_conditions = subject.conditions.to_hash["all"] + existing_conditions = subject.conditions[:all] - expect(existing_conditions.include?(new_condition)).to eq(false) + expect(existing_conditions).not_to include(new_condition) subject.add_all_condition("type", "is", "problem") - expect(subject.conditions.to_hash["all"]).to eq(existing_conditions << new_condition) + expect(subject.conditions[:all]).to eq(existing_conditions << new_condition) end end describe "#add_any_condition" do it "should add a condition to any condition" do new_condition = { :field => "type", :operator => "is", :value => "task" } - existing_conditions = subject.conditions.to_hash["any"] + existing_conditions = subject.conditions[:any] - expect(existing_conditions.include?(new_condition)).to eq(false) + expect(existing_conditions).not_to include(new_condition) subject.add_any_condition("type", "is", "task") - expect(subject.conditions.to_hash["any"]).to eq(existing_conditions << new_condition) + expect(subject.conditions[:any]).to eq(existing_conditions << new_condition) end end -end + describe "#add_action" do + it "should add an action to the current actions" do + new_action = { :field => "status", :value => "solved" } + existing_actions = subject.actions + + expect(existing_actions).not_to include(new_action) + + subject.add_action("status", "solved") + expect(subject.actions).to eq(existing_actions << new_action) + end + end +end diff --git a/spec/unit/macro_spec.rb b/spec/unit/macro_spec.rb new file mode 100644 index 00000000..9a2d86fd --- /dev/null +++ b/spec/unit/macro_spec.rb @@ -0,0 +1,23 @@ +require 'core/spec_helper' + +describe ZendeskAPI::Macro do + subject do + described_class.new(double, { + :title => "my test macro", + :actions => [{ :field => "priority", :value => "urgent" }], + }) + end + + describe "#add_action" do + it "should add an action to the current actions" do + new_action = { :field => "status", :value => "solved" } + existing_actions = subject.actions + + expect(existing_actions).not_to include(new_action) + + subject.add_action("status", "solved") + + expect(subject.actions).to eq(existing_actions << new_action) + end + end +end diff --git a/spec/unit/trigger_spec.rb b/spec/unit/trigger_spec.rb index 2f00127b..db5098a5 100644 --- a/spec/unit/trigger_spec.rb +++ b/spec/unit/trigger_spec.rb @@ -3,14 +3,11 @@ describe ZendeskAPI::Trigger do subject do described_class.new(double, { - :title => "my test view", + :title => "my test trigger", :conditions => { :any => [{ :field => "assignee_id", :operator => "is", :value => 1}], :all => [{ :field => "status", :operator => "is", :value => "open" }] }, - :execution => { - :columns => [:id => "status", :title=> "Status"] - } }) end @@ -22,7 +19,7 @@ ] subject.all_conditions = new_conditions - expect(subject.conditions.to_hash["all"]).to eq(new_conditions) + expect(subject.conditions[:all]).to eq(new_conditions) end end @@ -34,35 +31,33 @@ ] subject.any_conditions = new_conditions - expect(subject.conditions.to_hash["any"]).to eq(new_conditions) + expect(subject.conditions[:any]).to eq(new_conditions) end end describe "#add_all_condition" do it "should add a condition to all condition" do new_condition = { :field => "type", :operator => "is", :value => "problem" } - existing_conditions = subject.conditions.to_hash["all"] + existing_conditions = subject.conditions[:all] - expect(existing_conditions.include?(new_condition)).to eq(false) + expect(existing_conditions).not_to include(new_condition) subject.add_all_condition("type", "is", "problem") - expect(subject.conditions.to_hash["all"]).to eq(existing_conditions << new_condition) + expect(subject.conditions[:all]).to eq(existing_conditions << new_condition) end end describe "#add_any_condition" do it "should add a condition to any condition" do new_condition = { :field => "type", :operator => "is", :value => "task" } - existing_conditions = subject.conditions.to_hash["any"] + existing_conditions = subject.conditions[:any] - expect(existing_conditions.include?(new_condition)).to eq(false) + expect(existing_conditions).not_to include(new_condition) subject.add_any_condition("type", "is", "task") - expect(subject.conditions.to_hash["any"]).to eq(existing_conditions << new_condition) + expect(subject.conditions[:any]).to eq(existing_conditions << new_condition) end end end - - diff --git a/spec/unit/view_spec.rb b/spec/unit/view_spec.rb index 658d9522..c033cd26 100644 --- a/spec/unit/view_spec.rb +++ b/spec/unit/view_spec.rb @@ -49,7 +49,7 @@ ] subject.all_conditions = new_conditions - expect(subject.conditions.to_hash["all"]).to eq(new_conditions) + expect(subject.conditions[:all]).to eq(new_conditions) end end @@ -61,35 +61,33 @@ ] subject.any_conditions = new_conditions - expect(subject.conditions.to_hash["any"]).to eq(new_conditions) + expect(subject.conditions[:any]).to eq(new_conditions) end end describe "#add_all_condition" do it "should add a condition to all condition" do new_condition = { :field => "type", :operator => "is", :value => "problem" } - existing_conditions = subject.conditions.to_hash["all"] + existing_conditions = subject.conditions[:all] - expect(existing_conditions.include?(new_condition)).to eq(false) + expect(existing_conditions).not_to include(new_condition) subject.add_all_condition("type", "is", "problem") - expect(subject.conditions.to_hash["all"]).to eq(existing_conditions << new_condition) + expect(subject.conditions[:all]).to eq(existing_conditions << new_condition) end end describe "#add_any_condition" do it "should add a condition to any condition" do new_condition = { :field => "type", :operator => "is", :value => "task" } - existing_conditions = subject.conditions.to_hash["any"] + existing_conditions = subject.conditions[:any] - expect(existing_conditions.include?(new_condition)).to eq(false) + expect(existing_conditions).not_to include(new_condition) subject.add_any_condition("type", "is", "task") - expect(subject.conditions.to_hash["any"]).to eq(existing_conditions << new_condition) + expect(subject.conditions[:any]).to eq(existing_conditions << new_condition) end end end - -