Sha256: 3f165d2e4e313f513d022e9499d57a54a9eda89edd677008c9d3dd779ec14d8d

Contents?: true

Size: 1.26 KB

Versions: 28

Compression:

Stored size: 1.26 KB

Contents

require 'test/unit'
require 'promise/v2'

class TestPromiseRescue < Test::Unit::TestCase
  def test_calls_the_block_when_the_promise_has_already_been_rejected
    x = 42
    PromiseV2.error(23)
      .rescue { |v| x = v }
      .always { assert_equal(x, 23) }
  end

  def test_calls_the_block_when_the_promise_is_rejected
    a = PromiseV2.new
    x = 42

    pr = a.rescue { |v| x = v }
    a.reject(23)

    pr.always { assert_equal(x, 23) }
  end

  def test_does_not_call_then_blocks_when_the_promise_is_rejected
    x = 42
    y = 23

    PromiseV2.error(23).then { y = 42 }.rescue { |v| x = v }.always do
      assert_equal(x, 23)
      assert_equal(y, 23)
    end
  end

  def test_does_not_call_subsequent_rescue_blocks
    x = 42
    PromiseV2.error(23).rescue { |v| x = v }.rescue { x = 42 }.always do
      assert_equal(x, 23)
    end
  end

  def test_can_be_called_multiple_times_on_the_same_promise
    p = PromiseV2.error(2)
    x = 1

    ps = []

    ps << p.then { x += 1 }.rescue{}
    ps << p.rescue { x += 3 }
    ps << p.rescue { x += 3 }

    PromiseV2.when(ps).always { assert_equal(x, 7) }
  end

  def test_raises_with_rescueB_if_a_promise_has_already_been_chained
    p = PromiseV2.new

    p.then! {}

    assert_raise(ArgumentError) { p.rescue! {} }
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 test/opal/promisev2/test_rescue.rb
opal-1.8.2 test/opal/promisev2/test_rescue.rb
opal-1.8.1 test/opal/promisev2/test_rescue.rb
opal-1.8.0 test/opal/promisev2/test_rescue.rb
opal-1.8.0.beta1 test/opal/promisev2/test_rescue.rb
opal-1.7.4 test/opal/promisev2/test_rescue.rb
opal-1.8.0.alpha1 test/opal/promisev2/test_rescue.rb
opal-1.7.3 test/opal/promisev2/test_rescue.rb
opal-1.7.2 test/opal/promisev2/test_rescue.rb
opal-1.7.1 test/opal/promisev2/test_rescue.rb
opal-1.7.0 test/opal/promisev2/test_rescue.rb
opal-1.7.0.rc1 test/opal/promisev2/test_rescue.rb
opal-1.6.1 test/opal/promisev2/test_rescue.rb
opal-1.6.0 test/opal/promisev2/test_rescue.rb
opal-1.6.0.rc1 test/opal/promisev2/test_rescue.rb
opal-1.6.0.alpha1 test/opal/promisev2/test_rescue.rb
opal-1.5.1 test/opal/promisev2/test_rescue.rb
opal-1.5.0 test/opal/promisev2/test_rescue.rb
opal-1.5.0.rc1 test/opal/promisev2/test_rescue.rb
opal-1.4.1 test/opal/promisev2/test_rescue.rb