-
-
Save mskog/2132e1ea07867ca6aeecc91bef025eff 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