Skip to content

Commit

Permalink
Merge pull request activemerchant#129 from Shopify/direc_pay_stops_tr…
Browse files Browse the repository at this point in the history
…eating_failed_payments_as_pending

DirecPay stops treating failed payments as pending
  • Loading branch information
j-mutter committed Mar 31, 2015
2 parents 645b152 + 3b97614 commit 887d54e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 21 deletions.
9 changes: 1 addition & 8 deletions lib/offsite_payments/integrations/direc_pay.rb
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ def parse(post)

class Return < OffsitePayments::Return
def initialize(post_data, options = {})
@notification = Notification.new(treat_failure_as_pending(post_data), options)
@notification = Notification.new(post_data, options)
end

def success?
Expand All @@ -299,13 +299,6 @@ def success?
def message
notification.status
end

private

# Work around the issue that the initial return from DirecPay is always either SUCCESS or FAIL, there is no PENDING
def treat_failure_as_pending(post_data)
post_data.sub(/FAIL/, 'PENDING')
end
end

class Status
Expand Down
19 changes: 6 additions & 13 deletions test/unit/integrations/direc_pay/direc_pay_return_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,16 @@ class DirecPayReturnTest < Test::Unit::TestCase
def test_success
direc_pay = DirecPay::Return.new(http_raw_data_success)
assert direc_pay.success?
assert direc_pay.notification.complete?
assert_equal 'Completed', direc_pay.message
end

def test_failure_is_successful
direc_pay = DirecPay::Return.new(http_raw_data_failure)
assert direc_pay.success?
assert_equal 'Pending', direc_pay.message
end

def test_treat_initial_failures_as_pending
def test_failure
direc_pay = DirecPay::Return.new(http_raw_data_failure)
assert_equal 'Pending', direc_pay.notification.status
refute direc_pay.success?
refute direc_pay.notification.complete?
assert_equal 'Failed', direc_pay.message
assert_equal 'Failed', direc_pay.notification.status
end

def test_return_has_notification
Expand All @@ -36,11 +34,6 @@ def test_return_has_notification
assert_equal 'NULL', notification.other_details
end

def test_treat_failed_return_as_complete
direc_pay = DirecPay::Return.new(http_raw_data_failure)
assert direc_pay.notification.complete?
end

private

def http_raw_data_success
Expand Down

0 comments on commit 887d54e

Please sign in to comment.