require 'jasmine'

namespace :jasmine do
  task :server do
    require 'jasmine'
    require 'eris/lib/jasmine_config_overrides'

    puts "your tests are here:"
    puts "  http://localhost:8888/"

    Jasmine::Config.new.start_server
  end

  desc "Run continuous integration tests"
  task :ci do
    require 'jasmine'
    require 'eris/lib/jasmine_config_overrides'
    require "rspec"
    require "rspec/core/rake_task"
    require 'eris'
    ENV['JASMINE_BROWSER'] = 'chrome'

    RSpec::Core::RakeTask.new(:jasmine_continuous_integration_runner) do |t|
      t.rspec_opts = ["--color", "--format", "progress"]
      t.verbose = true
      t.pattern = ["#{Eris::FILE_PATH}/eris/lib/jasmine_rspec_runner.rb"]
    end
    Rake::Task["jasmine_continuous_integration_runner"].invoke
  end
end

desc "Run full test suite"
task :ci do
  system('bundle exec eris server &')
  result = system('rake jasmine:ci') && system("rspec spec/acceptance --format documentation")

  child_pids = Array.new
  pipe = IO.popen("ps aux |grep eris")
  pipe.readlines.each{ |line|
    parts = line.split(/\s+/)
    child_pids.push parts[1]
  }

  child_pids.each { |child|
    system("kill -9 #{child}")
  }

  exit result
end


desc "Run specs with local config"
task :jasmine => ['jasmine:server']
