Sha256: 942f227b2117b532b8c7c4e55814467fb00e205de74fbfc9f46601b8f6a2c4ee

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require 'test_helper'

module Spyke
  class FallbacksTest < Minitest::Test
    def setup
      stub_request(:get, "http://sushi.com/recipes/1").to_timeout
      stub_request(:get, "http://sushi.com/recipes?published=true").to_timeout
    end

    def test_find_without_fallback
      assert_raises ConnectionError do
        Recipe.find(1)
      end
    end

    def test_find_with_default_fallback
      assert_raises ResourceNotFound do
        Recipe.with_fallback.find(1)
      end
    end

    def test_find_with_custom_fallback
      dummy_recipe = Recipe.new(title: "Dummy Recipe")

      result = Recipe.with_fallback(dummy_recipe).find(1)

      assert_equal "Dummy Recipe", result.title
    end

    def test_find_one_with_default_fallback
      recipe = Recipe.with_fallback.where(id: 1).find_one

      assert_nil recipe
    end

    def test_find_some_with_default_fallback
      assert_equal [], Recipe.where(published: true).with_fallback.all.to_a
    end

    def test_find_some_with_custom_fallback
      dummy_result = [Recipe.new(title: "Dummy Recipe")]

      result = Recipe.where(published: true).with_fallback(dummy_result).all

      assert_equal "Dummy Recipe", result.first.title
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spyke-7.2.2 test/fallbacks_test.rb