mirror of
https://github.com/we-promise/sure.git
synced 2026-06-02 09:19:02 +00:00
Add tests for SnapTrade error handling and refine unlink behavior (#931)
- Introduced new tests to cover SnapTrade decryption and connection errors in `SnaptradeItemsControllerTest`. - Updated error messages for improved user clarity. - Modified `unlink` functionality to preserve `SnaptradeAccount` records while ensuring proper detachment of associated holdings.
This commit is contained in:
41
test/controllers/snaptrade_items_controller_test.rb
Normal file
41
test/controllers/snaptrade_items_controller_test.rb
Normal file
@@ -0,0 +1,41 @@
|
||||
require "test_helper"
|
||||
|
||||
class SnaptradeItemsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in @user = users(:family_admin)
|
||||
@snaptrade_item = snaptrade_items(:configured_item)
|
||||
end
|
||||
|
||||
test "connect handles decryption error gracefully" do
|
||||
SnaptradeItem.any_instance
|
||||
.stubs(:user_registered?)
|
||||
.raises(ActiveRecord::Encryption::Errors::Decryption.new("cannot decrypt"))
|
||||
|
||||
get connect_snaptrade_item_url(@snaptrade_item)
|
||||
|
||||
assert_redirected_to settings_providers_path
|
||||
assert_match(/Unable to read SnapTrade credentials/, flash[:alert])
|
||||
end
|
||||
|
||||
test "connect handles general error gracefully" do
|
||||
SnaptradeItem.any_instance
|
||||
.stubs(:user_registered?)
|
||||
.raises(StandardError.new("something broke"))
|
||||
|
||||
get connect_snaptrade_item_url(@snaptrade_item)
|
||||
|
||||
assert_redirected_to settings_providers_path
|
||||
assert_match(/Failed to connect/, flash[:alert])
|
||||
end
|
||||
|
||||
test "connect redirects to portal when successful" do
|
||||
portal_url = "https://app.snaptrade.com/portal/test123"
|
||||
|
||||
SnaptradeItem.any_instance.stubs(:user_registered?).returns(true)
|
||||
SnaptradeItem.any_instance.stubs(:connection_portal_url).returns(portal_url)
|
||||
|
||||
get connect_snaptrade_item_url(@snaptrade_item)
|
||||
|
||||
assert_redirected_to portal_url
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user