Sha256: 9833c25dea17f395e7050d9151565e775bea381b7738e007ac63ddeeb732ec37

Contents?: true

Size: 1.81 KB

Versions: 1

Compression:

Stored size: 1.81 KB

Contents

require 'lib/spec_helper'
require 'rack/test'

describe Opal::SimpleServer do
  include Rack::Test::Methods

  attr_accessor :app

  before do
    Opal.append_path "#{__dir__}/fixtures"
    self.app = described_class.new(main: 'console')
  end

  it 'serves opal assets' do
    response = get '/assets/console.js'
    expect(response.body).to eq(Opal::Builder.build('console').to_s)
  end

  it 'serves index for all non opal paths' do
    %w[/ /foo /foo/bar/baz].each do |path|
      response = get path
      expect(response.body).to include('<html>')
      expect(response.body).to include('<script')
      expect(response.body).to include('src="/assets/console.js')
      expect(response.headers['Content-type']).to eq('text/html')
    end
  end

  it 'serves the source map for the compiled asset' do
    response = get '/assets/console.map'
    expect(response.body).to eq(Opal::Builder.build('console').source_map.to_json)
  end

  it 'takes a :prefix option to set the assets prefix' do
    self.app = described_class.new(main: 'opal', prefix: 'foo')
    expect(get('/foo/console.js').body).to eq(Opal::Builder.build('console').to_s)
    self.app = described_class.new(main: 'opal', prefix: '/foo')
    expect(get('/foo/console.js').body).to eq(Opal::Builder.build('console').to_s)
  end

  it 'takes a :main option to set the main asset' do
    self.app = described_class.new(main: 'foo')
    expect(get('/').body).to include('src="/assets/foo.js')
  end

  it 'respects config set in Opal::Config' do
    Opal::Config.arity_check_enabled = false
    expect(get('/assets/console.js').body).not_to include('TMP_Console_clear_1.$$parameters = []')

    Opal::Config.arity_check_enabled = true
    self.app = described_class.new(main: 'console')
    expect(get('/assets/console.js').body).to include('TMP_Console_clear_1.$$parameters = []')
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
opal-0.11.0.rc1 spec/lib/simple_server_spec.rb