Sha256: 3a2d84ef15a698acc44dbc07989d6fdf9dc02beb964a90e5ff143b8c3aa94b1a

Contents?: true

Size: 1.6 KB

Versions: 6

Compression:

Stored size: 1.6 KB

Contents

# backtick_javascript: true

describe 'Opal.is_a' do
  describe 'Numeric/Number special cases' do
    [
      [1, :Numeric, true],
      [1, :Number, true],
      [1, :Fixnum, true],
      [1, :Integer, true],
      [1, :Float, true],

      [1.2, :Numeric, true],
      [1.2, :Number, true],
      [1.2, :Fixnum, true],
      [1.2, :Integer, false],
      [1.2, :Float, true],

      [Numeric.new, :Numeric, true],
      [Numeric.new, :Number, false],
      [Numeric.new, :Fixnum, false],
      [Numeric.new, :Integer, false],
      [Numeric.new, :Float, false],
    ].each do |(value, klass_name, result)|
      klass = Object.const_get(klass_name)
      it "returns #{result} for Opal.is_a(#{value}, #{klass_name})" do
        `Opal.is_a(#{value}, #{klass})`.should == result
      end
    end

    it 'can rely on Number subclasses having $$is_number_class on their prototype' do
      `!!#{Numeric}.$$is_number_class`.should == false
      `!!#{Number}.$$is_number_class`.should == true
      `!!#{Fixnum}.$$is_number_class`.should == true
      `!!#{Integer}.$$is_number_class`.should == true
      `!!#{Float}.$$is_number_class`.should == true
    end

    it 'can rely on Number subclasses having $$is_integer_class on their prototype' do
      `!!#{Numeric}.$$is_integer_class`.should == false
      `!!#{Number}.$$is_integer_class`.should == false
      `!!#{Fixnum}.$$is_integer_class`.should == false
      `!!#{Integer}.$$is_integer_class`.should == true
      `!!#{Float}.$$is_integer_class`.should == false
    end

    it 'works for non-Opal objects' do
      `Opal.is_a({}, Opal.Array)`.should == false
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 spec/opal/core/runtime/is_a_spec.rb
opal-1.8.2 spec/opal/core/runtime/is_a_spec.rb
opal-1.8.1 spec/opal/core/runtime/is_a_spec.rb
opal-1.8.0 spec/opal/core/runtime/is_a_spec.rb
opal-1.8.0.beta1 spec/opal/core/runtime/is_a_spec.rb
opal-1.8.0.alpha1 spec/opal/core/runtime/is_a_spec.rb