mirror of
https://github.com/we-promise/sure.git
synced 2026-04-12 16:47:22 +00:00
* Feat(CoinStats): Scaffold implementation, not yet functional * Feat(CoinStats): Implement crypto wallet balance and transactions * Feat(CoinStats): Add tests, Minor improvements * Feat(CoinStats): Utilize bulk fetch API endpoints * Feat(CoinStats): Migrate strings to i8n * Feat(CoinStats): Fix error handling in wallet link modal * Feat(CoinStats): Implement hourly provider sync job * Feat(CoinStats): Generate docstrings * Fix(CoinStats): Validate API Key on provider update * Fix(Providers): Safely handle race condition in merchance creation * Fix(CoinStats): Don't catch system signals in account processor * Fix(CoinStats): Preload before iterating accounts * Fix(CoinStats): Add no opener / referrer to API dashboard link * Fix(CoinStats): Use strict matching for symbols * Fix(CoinStats): Remove dead code in transactions importer * Fix(CoinStats): Avoid transaction fallback ID collisions * Fix(CoinStats): Improve Blockchains fetch error handling * Fix(CoinStats): Enforce NOT NULL constraint for API Key schema * Fix(CoinStats): Migrate sync status strings to i8n * Fix(CoinStats): Use class name rather than hardcoded string * Fix(CoinStats): Use account currency rather than hardcoded USD * Fix(CoinStats): Migrate from standalone to Provider class * Fix(CoinStats): Fix test failures due to string changes
34 lines
980 B
Ruby
34 lines
980 B
Ruby
require "test_helper"
|
|
|
|
class SyncHourlyJobTest < ActiveJob::TestCase
|
|
test "syncs all active items for each hourly syncable class" do
|
|
mock_item = mock("coinstats_item")
|
|
mock_item.expects(:sync_later).once
|
|
|
|
mock_relation = mock("active_relation")
|
|
mock_relation.stubs(:find_each).yields(mock_item)
|
|
|
|
CoinstatsItem.expects(:active).returns(mock_relation)
|
|
|
|
SyncHourlyJob.perform_now
|
|
end
|
|
|
|
test "continues syncing other items when one fails" do
|
|
failing_item = mock("failing_item")
|
|
failing_item.expects(:sync_later).raises(StandardError.new("Test error"))
|
|
failing_item.stubs(:id).returns(1)
|
|
|
|
success_item = mock("success_item")
|
|
success_item.expects(:sync_later).once
|
|
|
|
mock_relation = mock("active_relation")
|
|
mock_relation.stubs(:find_each).multiple_yields([ failing_item ], [ success_item ])
|
|
|
|
CoinstatsItem.expects(:active).returns(mock_relation)
|
|
|
|
assert_nothing_raised do
|
|
SyncHourlyJob.perform_now
|
|
end
|
|
end
|
|
end
|