From b94522193cf654b07ecfa62291e22d548b98ec0b Mon Sep 17 00:00:00 2001 From: "Davis W. Frank & Rajan Agaskar" Date: Wed, 28 Nov 2012 14:25:39 -0800 Subject: [PATCH] Use jasmine-gem for jasmine-core tests --- Gemfile | 8 +++++++ Rakefile | 38 +++++++++++++++++++++++++++++++++- lib/jasmine-core/jasmine.js | 2 +- spec/jasmine.yml | 21 +++++++++++++++++++ spec/jasmine_self_test_spec.rb | 23 ++++++++++++++++++++ src/version.js | 2 +- 6 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 spec/jasmine.yml create mode 100644 spec/jasmine_self_test_spec.rb diff --git a/Gemfile b/Gemfile index 7ec0cc26..5d929af7 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,11 @@ source :rubygems gem "rake" +gem "jasmine", git: 'https://github.com/pivotal/jasmine-gem.git' + +unless ENV["TRAVIS"] + group :debug do + gem 'debugger' + end +end + gemspec diff --git a/Rakefile b/Rakefile index 1acbd943..18530c8a 100644 --- a/Rakefile +++ b/Rakefile @@ -41,4 +41,40 @@ desc "View full development tasks" task :list_dev_tasks do puts "Jasmine uses Thor for command line tasks for development. Here is the command set:" system "thor list" -end \ No newline at end of file +end + +require "jasmine" +require 'rspec' +require 'rspec/core/rake_task' + +desc "Run all examples" +RSpec::Core::RakeTask.new(:jasmine_core_spec) do |t| + t.pattern = 'spec/jasmine_self_test_spec.rb' +end + +namespace :jasmine do + task :server do + port = ENV['JASMINE_PORT'] || 8888 + Jasmine.load_configuration_from_yaml(File.join(Dir.pwd, 'spec', 'jasmine.yml')) + config = Jasmine.config + server = Jasmine::Server.new(8888, Jasmine::Application.app(config)) + server.start + + puts "your tests are here:" + puts " http://localhost:#{port}/" + end + + desc "Copy examples from Jasmine JS to the gem" + task :copy_examples_to_gem do + require "fileutils" + + # copy jasmine's example tree into our generator templates dir + FileUtils.rm_r('generators/jasmine/templates/jasmine-example', :force => true) + FileUtils.cp_r(File.join(Jasmine::Core.path, 'example'), 'generators/jasmine/templates/jasmine-example', :preserve => true) + end +end + +desc "Run specs via server" +task :jasmine => ['jasmine:server'] + + diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index 59641128..5d387683 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -2596,5 +2596,5 @@ jasmine.version_= { "major": 1, "minor": 3, "build": 0, - "revision": 1354052693 + "revision": 1354127958 }; diff --git a/spec/jasmine.yml b/spec/jasmine.yml new file mode 100644 index 00000000..a3f08713 --- /dev/null +++ b/spec/jasmine.yml @@ -0,0 +1,21 @@ +jasmine_dir: + - 'src' +jasmine_files: + - 'core/base.js' + - 'core/util.js' + - 'core/Reporter.js' + - 'html/HtmlReporterHelpers.js' + - '**/*.js' +jasmine_css_files: + - 'html/jasmine.css' +src_files: +stylesheets: +helpers: + - 'helpers/**/*.js' +spec_files: + - '**/*[sS]pec.js' +src_dir: +spec_dir: + - 'spec' + + diff --git a/spec/jasmine_self_test_spec.rb b/spec/jasmine_self_test_spec.rb new file mode 100644 index 00000000..1d36c211 --- /dev/null +++ b/spec/jasmine_self_test_spec.rb @@ -0,0 +1,23 @@ +require 'jasmine' + +Jasmine.load_configuration_from_yaml(File.join(Dir.pwd, 'spec', 'jasmine.yml')) +config = Jasmine.config +server = Jasmine::Server.new(config.port, Jasmine::Application.app(config)) +driver = Jasmine::SeleniumDriver.new(config.browser, "#{config.host}:#{config.port}/") + +t = Thread.new do + begin + server.start + rescue ChildProcess::TimeoutError + end + # # ignore bad exits +end +t.abort_on_exception = true +Jasmine::wait_for_listener(config.port, "jasmine server") +puts "jasmine server started." + +results_processor = Jasmine::ResultsProcessor.new(config) +results = Jasmine::Runners::HTTP.new(driver, results_processor, config.result_batch_size).run +formatter = Jasmine::RspecFormatter.new +formatter.format_results(results) + diff --git a/src/version.js b/src/version.js index 17802ee9..890cba47 100644 --- a/src/version.js +++ b/src/version.js @@ -3,5 +3,5 @@ jasmine.version_= { "major": 1, "minor": 3, "build": 0, - "revision": 1354052693 + "revision": 1354127999 };