Sha256: 67d3eb956c6b63bb40e26a1a0324535aa39cf1cf06ea63a819a7db650bb803b4

Contents?: true

Size: 1.06 KB

Versions: 28

Compression:

Stored size: 1.06 KB

Contents

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

class TestPromiseTrace < Test::Unit::TestCase
  def test_calls_the_block_with_all_the_previous_results
    x = 42

    PromiseV2.value(1)
      .then { 2 }
      .then { 3 }
      .trace {|a, b, c| x = a + b + c }
      .always { assert_equal(x, 6) }
  end

  def test_calls_the_then_after_the_trace
    x = 42

    PromiseV2.value(1)
      .then { 2 }
      .then { 3 }
      .trace { |a, b, c| a + b + c }
      .then { |v| x = v }
      .always { assert_equal(x, 6) }
  end

  def test_includes_the_first_value
    x = 42

    PromiseV2.value(1)
      .trace { |a| x = a }
      .always { assert_equal(x, 1) }
  end

  def test_works_after_a_when
    x = 42

    PromiseV2.value(1).then {
      PromiseV2.when PromiseV2.value(2), PromiseV2.value(3)
    }.trace {|a, b|
      #x = a + b[0] + b[1]
      x = "#{a},#{b}"
    }.always { assert_equal(x, "1,native") } # 6
  end

  def test_raises_with_traceB_if_a_promise_has_already_been_chained
    p = PromiseV2.new

    p.then! {}

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

Version data entries

28 entries across 28 versions & 1 rubygems

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