Skip to content

Commit

Permalink
Create Actions module and test all rules' hepler methods
Browse files Browse the repository at this point in the history
  • Loading branch information
shanitang committed Dec 5, 2014
1 parent 088d1f7 commit 0bb6c58
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 39 deletions.
3 changes: 1 addition & 2 deletions lib/zendesk_api/resources.rb
Expand Up @@ -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
Expand Down
35 changes: 22 additions & 13 deletions spec/unit/automation_spec.rb
Expand Up @@ -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

Expand All @@ -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

Expand All @@ -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
23 changes: 23 additions & 0 deletions 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
23 changes: 9 additions & 14 deletions spec/unit/trigger_spec.rb
Expand Up @@ -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

Expand All @@ -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

Expand All @@ -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


18 changes: 8 additions & 10 deletions spec/unit/view_spec.rb
Expand Up @@ -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

Expand All @@ -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


0 comments on commit 0bb6c58

Please sign in to comment.