Sha256: 0fd6c201bc41377338ea78ad445a7d5e29b680acbf9ccc996d1cc5dd0c325243

Contents?: true

Size: 1.66 KB

Versions: 9

Compression:

Stored size: 1.66 KB

Contents

require 'lib/spec_helper'
require 'open3'
require 'opal/os'

RSpec.describe "rake dist" do
  before :all do
    system "rake dist >#{Opal::OS.dev_null}"
  end

  def run_with_node(code, precode:, requires:)
    requires = requires.map do |i|
      "require('./build/#{i}');"
    end.join

    code = "#{requires};#{precode};console.log(#{code});"

    stdout, _, status = Open3.capture3('node', '-e', code)

    expect(status.exitstatus).to eq(0)

    stdout.chomp
  end

  let(:output) { run_with_node(code, precode: precode, requires: requires) }
  let(:requires) { ['opal'] }
  let(:precode) { '' }
  let(:code) { 'typeof Opal' }

  it 'should provide a working Opal environment' do
    expect(output).to eq('object')
  end

  context do
    let(:requires) { ['opal/mini'] }

    it 'should provide a working Opal mini environment' do
      expect(output).to eq('object')
    end
  end

  context do
    let(:requires) { ['opal', 'opal/full'] }
    let(:precode) { 'Opal.require("corelib/pattern_matching")' }
    let(:code) { 'typeof Opal.PatternMatching' }

    it 'should provide a working Opal full environment' do
      expect(output).to eq('function')
    end
  end

  context do
    let(:requires) { %w[opal opal-replutils] }
    let(:code) { 'typeof Opal.REPLUtils' }

    it 'should not require requirable files by default' do
      expect(output).to eq('undefined')
    end
  end

  context do
    let(:requires) { %w[opal opal-replutils] }
    let(:precode) { 'Opal.require("opal-replutils")' }
    let(:code) { 'typeof Opal.REPLUtils' }

    it 'should allow user to require requirable files to provide missing functionality' do
      expect(output).to eq('function')
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 spec/lib/rake_dist_spec.rb
opal-1.8.2 spec/lib/rake_dist_spec.rb
opal-1.8.1 spec/lib/rake_dist_spec.rb
opal-1.8.0 spec/lib/rake_dist_spec.rb
opal-1.8.0.beta1 spec/lib/rake_dist_spec.rb
opal-1.7.4 spec/lib/rake_dist_spec.rb
opal-1.8.0.alpha1 spec/lib/rake_dist_spec.rb
opal-1.7.3 spec/lib/rake_dist_spec.rb
opal-1.7.2 spec/lib/rake_dist_spec.rb