Class: Opal::Spec::RakeTask

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/opal/spec/rake_task.rb

Constant Summary collapse

RUNNER =
File.expand_path('../../../../vendor/spec_runner.js', __FILE__)
PORT =
9999
URL =
"http://localhost:9999/"

Instance Method Summary collapse

Constructor Details

#initialize(name = 'opal:test', &block) ⇒ RakeTask



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/opal/spec/rake_task.rb', line 13

def initialize(name = 'opal:test', &block)
  desc "Run opal specs in phantomjs"
  task name do
    require 'rack'
    require 'webrick'

    server = fork do
      app = Opal::Server.new { |s|
        s.main = 'opal/spec/sprockets_runner'
        s.append_path 'spec'
        s.debug = false

        block.call s if block
      }

      Rack::Server.start(:app => app, :Port => PORT, :AccessLog => [],
        :Logger => WEBrick::Log.new("/dev/null"))
    end

    system "phantomjs #{RUNNER} \"#{URL}\""
    success = $?.success?

    Process.kill(:SIGINT, server)
    Process.wait

    exit 1 unless success
  end
end