jasminerice-runner 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -22,4 +22,16 @@ To switch drivers, in a config/initializer
22
22
 
23
23
  Jasminerice::Runner.capybara_driver = :webkit
24
24
 
25
- Default driver is :selenium
25
+ Default driver is :selenium
26
+
27
+ Using Multiple Jasmine Environments
28
+ -----------------------------------
29
+
30
+ If your app has multiple jasmine environments, you can specify the runner
31
+ to only run jasmine tests for that environment. Adding an environment will
32
+ run the file "#{ENVIRONMENT}_spec.js". The default spec file (spec.js) will be run
33
+ if no environment is specified.
34
+
35
+ For example, if you wanted to run all specs in admin_spec.js the rake task would be:
36
+
37
+ rake jasminerice:run["admin"]
@@ -21,5 +21,5 @@ class JasminericeReporter
21
21
  # when capybara hits us before the onload function has run
22
22
  window.jasmineRiceReporter = new JasminericeReporter()
23
23
 
24
- jQuery ->
24
+ document.addEventListener 'DOMContentLoaded', ->
25
25
  jasmine.getEnv().addReporter window.jasmineRiceReporter
@@ -1,42 +1,85 @@
1
1
  module Jasminerice
2
2
  class Runner
3
-
4
3
  include Capybara::DSL
5
-
4
+
5
+ def initialize(environment)
6
+ @environment = environment
7
+ end
8
+
6
9
  def capybara_driver
7
10
  self.class.capybara_driver || :selenium
8
11
  end
9
-
12
+
10
13
  def run
11
14
  Capybara.default_driver = capybara_driver
12
- visit "/jasmine"
13
- puts "Running jasmine specs"
14
- wait_until { page.evaluate_script("window.jasmineRiceReporter.finished")}
15
- passed = page.evaluate_script("window.jasmineRiceReporter.results.passedCount")
16
- failed = page.evaluate_script("window.jasmineRiceReporter.results.failedCount")
17
- total = page.evaluate_script("window.jasmineRiceReporter.results.totalCount")
18
- failures = page.evaluate_script("window.jasmineRiceReporter.failedSpecs")
19
- puts "Jasmine results - Passed: #{passed} Failed: #{failed} Total: #{total}"
20
- if failures.size > 0
21
- puts 'Jasmine failures: '
22
- for suiteName,suiteFailures in failures
23
- puts " " + suiteName + "\n"
24
- for specName,specFailures in suiteFailures
25
- puts " " + specName + "\n"
26
- for specFailure in specFailures
27
- puts " " + specFailure + "\n"
28
- end
29
- end
30
- puts "\n"
31
- end
32
- end
33
-
34
- if page.evaluate_script("window.jasmineRiceReporter.results.failedCount") == 0
15
+ visit jasmine_url
16
+ print "Running jasmine specs"
17
+
18
+ wait_for_finished
19
+ results = get_results
20
+ puts "Jasmine results - Passed: #{results[:passed]} Failed: #{results[:failed]} Total: #{results[:total]}"
21
+ failures = results[:failures]
22
+
23
+ if failures.size == 0
35
24
  puts "Jasmine specs passed, yay!"
36
25
  else
26
+ report_failures(failures)
37
27
  raise "Jasmine specs failed"
38
28
  end
39
29
  end
40
-
30
+
31
+ def jasmine_url
32
+ url = "/jasmine"
33
+ if @environment.present?
34
+ url += "?environment=#{@environment}"
35
+ end
36
+
37
+ url
38
+ end
39
+
40
+ def get_results
41
+ {
42
+ passed: page.evaluate_script("window.jasmineRiceReporter.results.passedCount"),
43
+ failed: page.evaluate_script("window.jasmineRiceReporter.results.failedCount"),
44
+ total: page.evaluate_script("window.jasmineRiceReporter.results.totalCount"),
45
+ failures: page.evaluate_script("window.jasmineRiceReporter.failedSpecs")
46
+ }
47
+ end
48
+
49
+ def report_failures(failures)
50
+ puts 'Jasmine failures: '
51
+ for suiteName,suiteFailures in failures
52
+ puts " " + suiteName + "\n"
53
+ for specName,specFailures in suiteFailures
54
+ puts " " + specName + "\n"
55
+ for specFailure in specFailures
56
+ puts " " + specFailure + "\n"
57
+ end
58
+ end
59
+ puts "\n"
60
+ end
61
+ end
62
+
63
+ def wait_for_finished
64
+ reporter = page.evaluate_script("window.jasmineRiceReporter")
65
+ if reporter.nil?
66
+ if @environment.present?
67
+ filename = "#{@environment}_spec.js"
68
+ else
69
+ filename = "spec.js"
70
+ end
71
+ puts "\njasmineRiceReporter not defined! Check your configuration to make\n" +
72
+ "sure that #{filename} exists and that jasminerice_reporter is included."
73
+ raise "Reporter not found"
74
+ end
75
+
76
+ start = Time.now
77
+ while true
78
+ break if page.evaluate_script("window.jasmineRiceReporter.finished")
79
+ sleep 1
80
+ print "."
81
+ end
82
+ print "\n"
83
+ end
41
84
  end
42
- end
85
+ end
@@ -1,5 +1,5 @@
1
1
  module Jasminerice
2
2
  class Runner
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -1,9 +1,10 @@
1
1
  namespace :jasminerice do
2
-
2
+
3
3
  desc "run jasmine specs in jasmine rice"
4
- task :run => :environment do
4
+ task :run, [:jasmine_environment] => :environment do |t, args|
5
5
  require "capybara/rails"
6
6
  require "jasminerice-runner/runner"
7
- Jasminerice::Runner.new.run
7
+ runner = Jasminerice::Runner.new(args[:jasmine_environment])
8
+ runner.run
8
9
  end
9
- end
10
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasminerice-runner
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Nelson
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-21 00:00:00 -04:00
18
+ date: 2013-01-07 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency