mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-18 20:59:39 +02:00
* PlaidConnectable concern * Remove bad abstraction * Put sync implementations in own concerns * Sync strategies * Move sync orchestration to Sync class * Clean up sync class, add state machine * Basic market data sync cron * Fix price sync * Improve sync window column names, add timestamps * 30 day syncs by default * Clean up market data methods * Report high duplicate sync counts to Sentry * Add sync states throughout app * account tab session * Persistent account tab selections * Remove manual sleep * Add migration to clear stale syncs on self hosted apps * Tweak sync states * Sync completion event broadcasts * Fix timezones in tests * Cleanup * More cleanup * Plaid item UI broadcasts for sync * Fix account ID namespace conflict * Sync broadcasters * Smoother account sync refreshes * Remove test sync delay
30 lines
839 B
Ruby
30 lines
839 B
Ruby
require "test_helper"
|
|
|
|
class Family::SyncerTest < ActiveSupport::TestCase
|
|
setup do
|
|
@family = families(:dylan_family)
|
|
end
|
|
|
|
test "syncs plaid items and manual accounts" do
|
|
family_sync = syncs(:family)
|
|
|
|
manual_accounts_count = @family.accounts.manual.count
|
|
items_count = @family.plaid_items.count
|
|
|
|
syncer = Family::Syncer.new(@family)
|
|
|
|
Account.any_instance
|
|
.expects(:sync_later)
|
|
.with(parent_sync: family_sync, window_start_date: nil, window_end_date: nil)
|
|
.times(manual_accounts_count)
|
|
|
|
PlaidItem.any_instance
|
|
.expects(:sync_later)
|
|
.with(parent_sync: family_sync, window_start_date: nil, window_end_date: nil)
|
|
.times(items_count)
|
|
|
|
syncer.perform_sync(family_sync)
|
|
|
|
assert_equal "completed", family_sync.reload.status
|
|
end
|
|
end
|