Created
May 23, 2016 07:23
-
-
Save mskog/3906a53df914f768b214de64463d5fde to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/app/business_logic/services/broadband_provider_actions/backends/task.rb b/app/business_logic/services/broadband_provider_actions/backends/task.rb | |
index c6968d9..726e40e 100644 | |
--- a/app/business_logic/services/broadband_provider_actions/backends/task.rb | |
+++ b/app/business_logic/services/broadband_provider_actions/backends/task.rb | |
@@ -26,7 +26,7 @@ module Services | |
def undo | |
original_command = track_back_object.command.sub('Undo', '') | |
original_action = track_back_object.event.actions.find_by(command: original_command) | |
- task = original_action.result | |
+ task = original_action.try(:result) | |
return unless task | |
Interactors::Tasks::Cancel.new(id: task.id, track_back_object: track_back_object).perform | |
end | |
diff --git a/spec/business_logic/services/broadband_provider_actions/backends/task_spec.rb b/spec/business_logic/services/broadband_provider_actions/backends/task_spec.rb | |
index c052789..8f190a7 100644 | |
--- a/spec/business_logic/services/broadband_provider_actions/backends/task_spec.rb | |
+++ b/spec/business_logic/services/broadband_provider_actions/backends/task_spec.rb | |
@@ -46,6 +46,12 @@ describe Services::BroadbandProviderActions::Backends::Task do | |
And{expect(task.task_type).to eq expected_task_type} | |
end | |
+ shared_examples_for "undo action with no result on the event" do | |
+ Given!(:previous_action){nil} | |
+ When{subject.undo} | |
+ Then{expect(task).to be_nil} | |
+ end | |
+ | |
describe "#perform" do | |
Given(:task){Task.last} | |
@@ -76,6 +82,10 @@ describe Services::BroadbandProviderActions::Backends::Task do | |
Then{expect(result).to_not have_failed} | |
And{expect(Task.count).to be_zero} | |
end | |
+ | |
+ context "with an undo action and no previous task is found" do | |
+ include_examples "undo action with no result on the event" | |
+ end | |
end | |
context "cancel" do |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment