Sha256: 71133450f4c31fc4709f2c503b97ce97af67e90040fd441cc6ddb4cbb6fad7ce

Contents?: true

Size: 1.53 KB

Versions: 33

Compression:

Stored size: 1.53 KB

Contents

require 'lib/spec_helper'

RSpec.describe Opal::Nodes::CallNode::DependencyResolver do
  let(:compiler) { double(:compiler, dynamic_require_severity: :warning) }

  it "resolves simple strings to themselves" do
    expect(resolve s(:str, 'foo')).to eq('foo')
  end

  context "using a dynamic segment not supported" do
    it "raises a compiler error when severity is :error" do
      compiler = double(:compiler, dynamic_require_severity: :error)
      expect(compiler).to     receive(:dynamic_require_severity).once
      expect(compiler).not_to receive(:warning)
      expect(compiler).to     receive(:error).once
      described_class.new(compiler, s(:self)).resolve
    end

    it "produces a compiler warning when severity is :warning" do
      compiler = double(:compiler, dynamic_require_severity: :warning)
      expect(compiler).to     receive(:dynamic_require_severity).once
      expect(compiler).to     receive(:warning).once
      expect(compiler).not_to receive(:error)
      described_class.new(compiler, s(:self)).resolve
    end

    it "does not produce a warning when severity is :ignore" do
      compiler = double(:compiler, dynamic_require_severity: :ignore)
      expect(compiler).to     receive(:dynamic_require_severity).once
      expect(compiler).not_to receive(:warning)
      expect(compiler).not_to receive(:error)
      described_class.new(compiler, s(:self)).resolve
    end
  end

  def s(type, *children)
    ::Opal::AST::Node.new(type, children)
  end

  def resolve(sexp)
    described_class.new(compiler, sexp).resolve
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

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