jasmine 3.5.0 → 3.5.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ad2269299b96d1b7ff5e4d83f7a07fe1bcd911e1
4
- data.tar.gz: d486d94365a8c4dbc7bc3edfc87d048fbb7c8346
2
+ SHA256:
3
+ metadata.gz: 1c3adadebd009bfacd1fab26771b31c42b76ee42068e88cd61bc71e5a259c884
4
+ data.tar.gz: 82c143fa60146d38d0c5f1c920f36b63552d6a08040358a8d8bffcdbe0ff424a
5
5
  SHA512:
6
- metadata.gz: 84495287be3da7a113e3f4aa254f0328c216b4c05e6f8977995e2e24fa58a461be75ac01c86de008642598cdc9e6cff06494e821c9c25c787859b721cd1bdd2e
7
- data.tar.gz: 5a56ea978f0c36ab6a6e5387095561cc9432f4441cc512b082d2a3a7fce972168446ed508536022af7ac22843e22b61ecb93b0c2e44067d1b84cb06a316ec40f
6
+ metadata.gz: b7be5ec8f81a983be7dce34d006d46e836f39f27e455548ae73f4463e03d3886bfd5a9b4c831d2de814a42798feb6eff1e80d1a2f420706dd5fb6d81fb5a466e
7
+ data.tar.gz: 9ab969b3f529485c9633ad5d21e9953bead00bbe45ea9f8874ddccbf59cf862a152954410a1f5c1c85f08463120fadeab0895f3dab4e152331916b0e01d87b14
@@ -7,23 +7,26 @@ addons:
7
7
 
8
8
  rvm:
9
9
  - "2.3"
10
- - "2.4"
11
10
  - "2.5"
12
11
  - "2.6"
13
12
 
14
13
  env:
14
+ - "RAILS_VERSION=rails6"
15
15
  - "RAILS_VERSION=rails5"
16
16
  - "RAILS_VERSION=rails4"
17
17
  - "RAILS_VERSION=pojs"
18
18
 
19
19
  script: "if [ $PERFORMANCE_SPECS ];then bundle exec rake performance_specs --trace; else bundle exec rake --trace; fi"
20
20
 
21
- matrix:
21
+ jobs:
22
22
  fast_finish: true
23
23
  include:
24
24
  - env:
25
25
  - "PERFORMANCE_SPECS=true"
26
26
  - "RAILS_VERSION=rails5"
27
+ exclude:
28
+ - rvm: "2.3"
29
+ env: "RAILS_VERSION=rails6"
27
30
 
28
31
  before_install:
29
32
  - "if [$RAILS_VERSION != rails4 ];then gem update --system; fi"
data/Gemfile CHANGED
@@ -21,8 +21,6 @@ end
21
21
 
22
22
  gem 'mime-types', '< 3.0', platform: [:jruby]
23
23
 
24
- platform :rbx do
25
- gem 'json'
26
- gem 'rubysl'
27
- gem 'racc'
24
+ if ENV['RAILS_VERSION'] != 'rails4'
25
+ gem "bundler", "~> 2.1"
28
26
  end
@@ -1,5 +1,6 @@
1
1
  # The Jasmine Gem [![Build Status](https://travis-ci.org/jasmine/jasmine-gem.png?branch=master)](https://travis-ci.org/jasmine/jasmine-gem)
2
2
  [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjasmine%2Fjasmine-gem.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjasmine%2Fjasmine-gem?ref=badge_shield)
3
+ [![Gem Version](https://badge.fury.io/rb/jasmine.svg)](https://badge.fury.io/rb/jasmine)
3
4
 
4
5
  The [Jasmine](http://github.com/jasmine/jasmine) Ruby Gem is a package of helper code for developing Jasmine projects for Ruby-based web projects (Rails, Sinatra, etc.) or for JavaScript projects where Ruby is a welcome partner. It serves up a project's Jasmine suite in a browser so you can focus on your code instead of manually editing script tags in the Jasmine runner HTML file.
5
6
 
@@ -48,9 +49,11 @@ This uses PhantomJS to load and run the Jasmine suite.
48
49
 
49
50
  Please note that PhantomJS will be auto-installed by the [phantomjs-gem][phantomjs-gem] at the first `rake jasmine:ci` run. If you have a matching PhantomJS version somewhere on your path, it won't install. You can disable automatic installation altogether (and use the PhantomJS on your path) via the config helper in your jasmine_helper.rb:
50
51
 
51
- Jasmine.configure do |config|
52
- config.prevent_phantom_js_auto_install = true
53
- end
52
+ ```ruby
53
+ Jasmine.configure do |config|
54
+ config.prevent_phantom_js_auto_install = true
55
+ end
56
+ ```
54
57
 
55
58
  [phantomjs-gem]: https://github.com/colszowka/phantomjs-gem#phantomjs-as-a-rubygem
56
59
 
@@ -74,17 +77,21 @@ To change the port that `rake jasmine` uses:
74
77
 
75
78
  In your jasmine_helper.rb:
76
79
 
77
- Jasmine.configure do |config|
78
- config.server_port = 5555
79
- end
80
+ ```ruby
81
+ Jasmine.configure do |config|
82
+ config.server_port = 5555
83
+ end
84
+ ```
80
85
 
81
86
  By default `rake jasmine:ci` will attempt to find a random open port, to set the port that `rake jasmine:ci` uses:
82
87
 
83
88
  In your jasmine_helper.rb:
84
89
 
85
- Jasmine.configure do |config|
86
- config.ci_port = 1234
87
- end
90
+ ```ruby
91
+ Jasmine.configure do |config|
92
+ config.ci_port = 1234
93
+ end
94
+ ```
88
95
 
89
96
  ## Using headless Chrome
90
97
 
@@ -26,8 +26,10 @@ Gem::Specification.new do |s|
26
26
  when 'pojs'
27
27
  when 'rails4'
28
28
  s.add_development_dependency 'rails', '>= 4.2', '< 5.0.0'
29
- else #default to rails 5
30
- s.add_development_dependency 'rails', '>= 5'
29
+ when 'rails5'
30
+ s.add_development_dependency 'rails', '>= 5', '< 6.0.0'
31
+ else #default to rails 6 - keep in sync with `rails_version` in spec_helper
32
+ s.add_development_dependency 'rails', '>= 6', '< 7.0.0'
31
33
  end
32
34
 
33
35
  s.add_development_dependency 'rack-test'
@@ -13,11 +13,11 @@ module Jasmine
13
13
  UnsupportedRailsVersion = Class.new(StandardError)
14
14
 
15
15
  def asset_bundle
16
- return Rails4Or5AssetBundle.new if Jasmine::Dependencies.rails4? || Jasmine::Dependencies.rails5?
17
- raise UnsupportedRailsVersion, "Jasmine only supports the asset pipeline for Rails 4. - 5"
16
+ return Rails4Or5Or6AssetBundle.new if Jasmine::Dependencies.rails4? || Jasmine::Dependencies.rails5? || Jasmine::Dependencies.rails6?
17
+ raise UnsupportedRailsVersion, "Jasmine only supports the asset pipeline for Rails 4. - 6"
18
18
  end
19
19
 
20
- class Rails4Or5AssetBundle
20
+ class Rails4Or5Or6AssetBundle
21
21
  def assets(pathname)
22
22
  if pathname =~ /\.css$/
23
23
  context.get_stylesheet_assets(pathname.gsub(/\.css$/, ''))
@@ -10,13 +10,19 @@ module Jasmine
10
10
  rails? && Rails.version.to_i == 5
11
11
  end
12
12
 
13
+ def rails6?
14
+ rails? && Rails.version.to_i == 6
15
+ end
16
+
13
17
  def rails?
14
18
  defined?(Rails) && Rails.respond_to?(:version)
15
19
  end
16
20
 
17
21
  def use_asset_pipeline?
18
- assets_pipeline_available = (rails4? || rails5?) && Rails.respond_to?(:application) && Rails.application.respond_to?(:assets) && !Rails.application.assets.nil?
19
- assets_pipeline_available && (rails4? || rails5?)
22
+ (rails4? || rails5? || rails6?) &&
23
+ Rails.respond_to?(:application) &&
24
+ Rails.application.respond_to?(:assets) &&
25
+ !Rails.application.assets.nil?
20
26
  end
21
27
  end
22
28
  end
@@ -1,3 +1,3 @@
1
1
  module Jasmine
2
- VERSION = "3.5.0"
2
+ VERSION = "3.5.1"
3
3
  end
@@ -0,0 +1,18 @@
1
+ # Jasmine Gem 3.5.1 Release Notes
2
+
3
+ ## Summary
4
+
5
+ This update allows the gem to continue working with Sprockets in Rails 6
6
+
7
+ ## Changes
8
+
9
+ * Various readme improvements
10
+ - Merges #312 from @cprodhomme
11
+
12
+ * Allow Jasmine to continue to work with Rails 6
13
+ - Merges #310 from @cbaines
14
+ - Fixes #311
15
+
16
+ ------
17
+
18
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -4,10 +4,19 @@ require 'yaml'
4
4
  require 'jasmine/ruby_versions'
5
5
 
6
6
  if rails_available?
7
+ if !Bundler.respond_to?(:with_unbundled_env)
8
+ module Bundler
9
+ class << self
10
+ alias_method :with_unbundled_env, :with_clean_env
11
+ end
12
+ end
13
+ end
14
+
7
15
  describe 'A Rails app' do
8
16
  def bundle_install
9
- puts `NOKOGIRI_USE_SYSTEM_LIBRARIES=true bundle install --path vendor --retry 3;`
17
+ bundle_output = `NOKOGIRI_USE_SYSTEM_LIBRARIES=true bundle install`
10
18
  unless $?.success?
19
+ puts bundle_output
11
20
  raise "Bundle failed to install."
12
21
  end
13
22
  end
@@ -16,26 +25,35 @@ if rails_available?
16
25
  temp_dir_before
17
26
  Dir::chdir @tmp
18
27
 
19
- `rails new rails-example --skip-bundle --skip-active-record`
28
+ if rails_version == 'rails6'
29
+ `rails new rails-example --skip-bundle --skip-active-record --skip-bootsnap --skip-webpack-install --skip-javascript`
30
+ else
31
+ `rails new rails-example --skip-bundle --skip-active-record`
32
+ end
20
33
  Dir::chdir File.join(@tmp, 'rails-example')
21
34
 
22
35
  base = File.absolute_path(File.join(__FILE__, '../..'))
23
36
 
24
- # execjs v2.2.0 is broken in rbx, locking the version to 2.0.2 for now
25
- # see https://github.com/sstephenson/execjs/issues/148
26
-
27
37
  open('Gemfile', 'a') { |f|
28
38
  f.puts "gem 'jasmine', :path => '#{base}'"
29
39
  f.puts "gem 'jasmine-core', :git => 'http://github.com/jasmine/jasmine.git'"
30
- if RUBY_PLATFORM != 'java' && ENV['RAILS_VERSION'] != 'rails5'
40
+ if RUBY_PLATFORM != 'java' && rails_version == 'rails4'
31
41
  f.puts "gem 'thin'"
32
42
  end
33
- f.puts "gem 'angularjs-rails'"
34
- f.puts "gem 'execjs', '2.0.2'"
35
43
  f.flush
36
44
  }
37
45
 
38
- Bundler.with_clean_env do
46
+ FileUtils.mkdir_p('.bundle')
47
+ open('.bundle/config', 'a') do |f|
48
+ f.puts(<<~YAML)
49
+ ---
50
+ BUNDLE_PATH: "vendor"
51
+ BUNDLE_RETRY: "3"
52
+ YAML
53
+ f.flush
54
+ end
55
+
56
+ Bundler.with_unbundled_env do
39
57
  bundle_install
40
58
  `bundle exec rails g jasmine:install`
41
59
  expect($?).to eq 0
@@ -47,6 +65,19 @@ if rails_available?
47
65
  expect(File.exists?('spec/javascripts/jasmine_examples/PlayerSpec.js')).to eq true
48
66
  expect(File.exists?('spec/javascripts/helpers/jasmine_examples/SpecHelper.js')).to eq true
49
67
  end
68
+
69
+ if rails_version == 'rails6'
70
+ FileUtils.mkdir_p('app/assets/javascripts')
71
+ open('app/assets/javascripts/application.js', 'a') { |f|
72
+ f.puts '//= require_tree .'
73
+ f.flush
74
+ }
75
+ FileUtils.mkdir_p('app/assets/config')
76
+ open('app/assets/config/manifest.js', 'a') { |f|
77
+ f.puts '//= link_directory ../javascripts .js'
78
+ f.flush
79
+ }
80
+ end
50
81
  end
51
82
 
52
83
  after :all do
@@ -56,55 +87,23 @@ if rails_available?
56
87
  it 'should have the jasmine & jasmine:ci rake task' do
57
88
  #See https://github.com/jimweirich/rake/issues/220 and https://github.com/jruby/activerecord-jdbc-adapter/pull/467
58
89
  #There's a workaround, but requires setting env vars & jruby opts (non-trivial when inside of a jruby process), so skip for now.
59
- Bundler.with_clean_env do
90
+ Bundler.with_unbundled_env do
60
91
  output = `bundle exec rake -T`
61
92
  expect(output).to include('jasmine ')
62
93
  expect(output).to include('jasmine:ci')
63
94
  end
64
95
  end
65
96
 
66
- describe "with phantomJS" do
67
- it "rake jasmine:ci runs and returns expected results" do
68
- Bundler.with_clean_env do
69
- output = `bundle exec rake jasmine:ci`
70
- expect(output).to include('5 specs, 0 failures')
71
- end
72
- end
73
-
74
- it "rake jasmine:ci returns proper exit code when specs fail" do
75
- Bundler.with_clean_env do
76
- FileUtils.cp(File.join(@root, 'spec', 'fixture', 'failing_test.js'), File.join('spec', 'javascripts'))
77
- failing_yaml = custom_jasmine_config('failing') do |jasmine_config|
78
- jasmine_config['spec_files'] << 'failing_test.js'
79
- end
80
- output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{failing_yaml}`
81
- expect($?).to_not be_success
82
- expect(output).to include('6 specs, 1 failure')
83
- end
84
- end
85
-
86
- it "rake jasmine:ci runs specs when an error occurs in the javascript" do
87
- Bundler.with_clean_env do
88
- FileUtils.cp(File.join(@root, 'spec', 'fixture', 'exception_test.js'), File.join('spec', 'javascripts'))
89
- exception_yaml = custom_jasmine_config('exception') do |jasmine_config|
90
- jasmine_config['spec_files'] << 'exception_test.js'
91
- end
92
- output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{exception_yaml}`
93
- expect($?).to_not be_success
94
- expect(output).to include('5 specs, 0 failures')
95
- end
97
+ context 'with angular mocks' do
98
+ before(:all) do
99
+ open('spec/javascripts/helpers/angular_helper.js', 'w') { |f|
100
+ f.puts "//= require angular-mocks"
101
+ f.flush
102
+ }
96
103
  end
97
104
 
98
- it "runs specs written in coffeescript" do
99
- coffee_yaml = custom_jasmine_config('coffee') do |jasmine_config|
100
- jasmine_config['spec_files'] << 'coffee_spec.coffee'
101
- end
102
- FileUtils.cp(File.join(@root, 'spec', 'fixture', 'coffee_spec.coffee'), File.join('spec', 'javascripts'))
103
-
104
- Bundler.with_clean_env do
105
- output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{coffee_yaml}`
106
- expect(output).to include('6 specs, 0 failures')
107
- end
105
+ after(:all) do
106
+ FileUtils.rm('spec/javascripts/helpers/angular_helper.js')
108
107
  end
109
108
 
110
109
  it "rake jasmine runs and serves the expected webpage when using asset pipeline" do
@@ -113,114 +112,95 @@ if rails_available?
113
112
  f.flush
114
113
  }
115
114
 
116
- open('spec/javascripts/helpers/angular_helper.js', 'w') { |f|
117
- f.puts "//= require angular-mocks"
118
- f.flush
119
- }
120
-
121
115
  css_yaml = custom_jasmine_config('css') do |jasmine_config|
122
116
  jasmine_config['src_files'] = %w[assets/application.js http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js]
123
117
  jasmine_config['stylesheets'] = ['assets/application.css']
124
118
  end
125
119
 
120
+ Bundler.with_unbundled_env do
121
+ `bundle add angularjs-rails`
122
+ end
126
123
  run_jasmine_server("JASMINE_CONFIG_PATH=#{css_yaml}") do
127
124
  output = Net::HTTP.get(URI.parse('http://localhost:8888/'))
128
- expect(output).to match(%r{script src.*/assets/jasmine_examples/Player(\.self-[^\.]+)?\.js})
125
+ if rails_version == 'rails6'
126
+ expect(output).to match(%r{script src.*/(assets/application.debug-[^\.]+\.js)})
127
+ expect(output).to match(%r{<link rel=.stylesheet.*?href=.*/assets/application.debug-[^\.]+\.css})
128
+ else
129
+ expect(output).to match(%r{script src.*/assets/jasmine_examples/Player(\.self-[^\.]+)?\.js})
130
+ expect(output).to match(%r{script src.*/assets/jasmine_examples/Song(\.self-[^\.]+)?\.js})
131
+ expect(output).to match(%r{script src.*angular_helper\.js})
132
+ expect(output).to match(%r{<link rel=.stylesheet.*?href=./assets/foo(\.self-[^\.]+)?\.css\?.*?>})
133
+ end
129
134
  expect(output).to match(%r{script src=['"]http://ajax\.googleapis\.com/ajax/libs/jquery/1\.11\.0/jquery\.min\.js})
130
- expect(output).to match(%r{script src.*/assets/jasmine_examples/Song(\.self-[^\.]+)?\.js})
131
- expect(output).to match(%r{script src.*angular_helper\.js})
132
- expect(output).to match(%r{<link rel=.stylesheet.*?href=./assets/foo(\.self-[^\.]+)?\.css\?.*?>})
133
135
 
134
136
  output = Net::HTTP.get(URI.parse('http://localhost:8888/__spec__/helpers/angular_helper.js'))
135
137
  expect(output).to match(/angular\.mock/)
136
138
  end
137
139
  end
140
+ end
138
141
 
139
- it "sets assets_prefix when using sprockets" do
142
+ context 'with an assets_prefix set' do
143
+ before(:all) do
140
144
  open('app/assets/stylesheets/assets_prefix.js.erb', 'w') { |f|
141
145
  f.puts "<%= assets_prefix %>"
142
146
  f.flush
143
147
  }
148
+ end
144
149
 
150
+ after(:all) do
151
+ FileUtils.rm('app/assets/stylesheets/assets_prefix.js.erb')
152
+ end
153
+
154
+ it "sets assets_prefix when using sprockets" do
145
155
  run_jasmine_server do
146
156
  output = Net::HTTP.get(URI.parse('http://localhost:8888/assets/assets_prefix.js'))
147
157
  expect(output).to match("/assets")
148
158
  end
149
159
  end
160
+ end
150
161
 
151
- it "should load js files outside of the assets path too" do
152
- yaml = custom_jasmine_config('public-assets') do |jasmine_config|
153
- jasmine_config['src_files'] << 'public/javascripts/**/*.js'
154
- jasmine_config['spec_files'] = ['non_asset_pipeline_test.js']
155
- end
156
- FileUtils.mkdir_p(File.join('public', 'javascripts'))
157
- FileUtils.cp(File.join(@root, 'spec', 'fixture', 'non_asset_pipeline.js'), File.join('public', 'javascripts'))
158
- FileUtils.cp(File.join(@root, 'spec', 'fixture', 'non_asset_pipeline_test.js'), File.join('spec', 'javascripts'))
159
-
160
- Bundler.with_clean_env do
161
- output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{yaml}`
162
- expect(output).to include('1 spec, 0 failures')
163
- end
162
+ it "should load js files outside of the assets path too" do
163
+ yaml = custom_jasmine_config('public-assets') do |jasmine_config|
164
+ jasmine_config['src_files'] << 'public/javascripts/**/*.js'
165
+ jasmine_config['spec_files'] = ['non_asset_pipeline_test.js']
164
166
  end
167
+ FileUtils.mkdir_p(File.join('public', 'javascripts'))
168
+ FileUtils.cp(File.join(@root, 'spec', 'fixture', 'non_asset_pipeline.js'), File.join('public', 'javascripts'))
169
+ FileUtils.cp(File.join(@root, 'spec', 'fixture', 'non_asset_pipeline_test.js'), File.join('spec', 'javascripts'))
165
170
 
166
- it "should pass custom rack options from jasmine.yml" do
167
- pending "we're testing this with thin, which doesn't work in jruby" if RUBY_PLATFORM == 'java'
168
- rack_yaml = custom_jasmine_config('custom_rack') do |jasmine_config|
169
- jasmine_config['rack_options'] = { 'server' => 'webrick' }
170
- end
171
-
172
- Bundler.with_clean_env do
173
- default_output = `bundle exec rake jasmine:ci`
174
- if ENV['RAILS_VERSION'] == 'rails5' || ENV['RAILS_VERSION'].nil?
175
- expect(default_output).to include('Puma starting')
176
- else
177
- expect(default_output).to include('Thin web server')
178
- end
179
-
180
- custom_output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{rack_yaml} 2>&1`
181
- expect(custom_output).to include("WEBrick")
182
- end
171
+ Bundler.with_unbundled_env do
172
+ output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{yaml}`
173
+ expect(output).to include('1 spec, 0 failures')
183
174
  end
175
+ end
184
176
 
185
- describe 'using sprockets 4' do
186
- before :all do
187
- FileUtils.cp('Gemfile', 'Gemfile-old')
188
- FileUtils.rm 'Gemfile.lock'
189
-
190
- open('Gemfile', 'a') { |f|
191
- f.puts "gem 'sprockets', '~> 4.0.0.beta6'"
192
- f.flush
193
- }
194
- Bundler.with_clean_env do
195
- bundle_install
196
- end
197
-
198
- FileUtils.mkdir_p('app/assets/config')
177
+ it "should pass custom rack options from jasmine.yml" do
178
+ pending "we're testing this with thin, which doesn't work in jruby" if RUBY_PLATFORM == 'java'
179
+ rack_yaml = custom_jasmine_config('custom_rack') do |jasmine_config|
180
+ jasmine_config['rack_options'] = { 'server' => 'webrick' }
181
+ end
199
182
 
200
- open('app/assets/config/manifest.js', 'w') { |f|
201
- f.puts "//= link application.js"
202
- f.puts "//= link application.css"
203
- f.flush
204
- }
183
+ Bundler.with_unbundled_env do
184
+ default_output = `bundle exec rake jasmine:ci`
185
+ if rails_version == 'rails6' || rails_version == 'rails5' || rails_version.nil?
186
+ expect(default_output).to include('Puma starting')
187
+ else
188
+ expect(default_output).to include('Thin web server')
205
189
  end
206
190
 
207
- after :all do
208
- FileUtils.mv 'Gemfile-old', 'Gemfile'
209
- FileUtils.rm 'Gemfile.lock'
210
- FileUtils.rm 'app/assets/config/manifest.js'
211
- Bundler.with_clean_env do
212
- bundle_install
213
- end
214
- end
191
+ custom_output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{rack_yaml} 2>&1`
192
+ expect(custom_output).to include("WEBrick")
193
+ end
194
+ end
215
195
 
196
+ if rails_version == 'rails6'
197
+ describe 'using sprockets 4' do
216
198
  it "serves source mapped assets" do
217
199
  run_jasmine_server do
218
200
  output = Net::HTTP.get(URI.parse('http://localhost:8888/'))
219
201
 
220
202
  js_match = output.match %r{script src.*/(assets/application.debug-[^\.]+\.js)}
221
-
222
203
  expect(js_match).to_not be_nil
223
- expect(output).to match(%r{<link rel=.stylesheet.*?href=.*/assets/application.debug-[^\.]+\.css})
224
204
 
225
205
  js_path = js_match[1]
226
206
  output = Net::HTTP.get(URI.parse("http://localhost:8888/#{js_path}"))
@@ -230,28 +210,17 @@ if rails_available?
230
210
  end
231
211
  end
232
212
 
233
- describe "with Chrome headless" do
234
- before :all do
235
- open('spec/javascripts/support/jasmine_helper.rb', 'w') { |f|
236
- f.puts "Jasmine.configure do |config|\n config.runner_browser = :chromeheadless\nend\n"
237
- f.flush
238
- }
239
- end
240
-
241
-
242
- it "rake jasmine:ci runs and returns expected results", :focus do
243
- Bundler.with_clean_env do
244
- `bundle add chrome_remote`
213
+ shared_examples_for 'a working jasmine:ci' do
214
+ it "rake jasmine:ci runs and returns expected results" do
215
+ Bundler.with_unbundled_env do
245
216
  output = `bundle exec rake jasmine:ci`
246
217
  expect(output).to include('5 specs, 0 failures')
247
- `bundle remove chrome_remote`
218
+ expect($?).to be_success
248
219
  end
249
220
  end
250
221
 
251
222
  it "rake jasmine:ci returns proper exit code when specs fail" do
252
- Bundler.with_clean_env do
253
- `bundle add chrome_remote`
254
-
223
+ Bundler.with_unbundled_env do
255
224
  FileUtils.cp(File.join(@root, 'spec', 'fixture', 'failing_test.js'), File.join('spec', 'javascripts'))
256
225
  failing_yaml = custom_jasmine_config('failing') do |jasmine_config|
257
226
  jasmine_config['spec_files'] << 'failing_test.js'
@@ -259,13 +228,11 @@ if rails_available?
259
228
  output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{failing_yaml}`
260
229
  expect($?).to_not be_success
261
230
  expect(output).to include('6 specs, 1 failure')
262
- `bundle remove chrome_remote`
263
231
  end
264
232
  end
265
233
 
266
234
  it "rake jasmine:ci runs specs when an error occurs in the javascript" do
267
- Bundler.with_clean_env do
268
- `bundle add chrome_remote`
235
+ Bundler.with_unbundled_env do
269
236
  FileUtils.cp(File.join(@root, 'spec', 'fixture', 'exception_test.js'), File.join('spec', 'javascripts'))
270
237
  exception_yaml = custom_jasmine_config('exception') do |jasmine_config|
271
238
  jasmine_config['spec_files'] << 'exception_test.js'
@@ -273,27 +240,51 @@ if rails_available?
273
240
  output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{exception_yaml}`
274
241
  expect($?).to_not be_success
275
242
  expect(output).to include('5 specs, 0 failures')
276
- `bundle remove chrome_remote`
277
243
  end
278
244
  end
279
245
 
280
- it "runs specs written in coffeescript" do
281
- coffee_yaml = custom_jasmine_config('coffee') do |jasmine_config|
282
- jasmine_config['spec_files'] << 'coffee_spec.coffee'
246
+ unless rails_version == 'rails6'
247
+ it "runs specs written in coffeescript" do
248
+ coffee_yaml = custom_jasmine_config('coffee') do |jasmine_config|
249
+ jasmine_config['spec_files'] << 'coffee_spec.coffee'
250
+ end
251
+ FileUtils.cp(File.join(@root, 'spec', 'fixture', 'coffee_spec.coffee'), File.join('spec', 'javascripts'))
252
+
253
+ Bundler.with_unbundled_env do
254
+ output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{coffee_yaml}`
255
+ expect(output).to include('6 specs, 0 failures')
256
+ expect($?).to be_success
257
+ end
283
258
  end
284
- FileUtils.cp(File.join(@root, 'spec', 'fixture', 'coffee_spec.coffee'), File.join('spec', 'javascripts'))
259
+ end
260
+ end
261
+
262
+ describe "with phantomJS" do
263
+ it_behaves_like 'a working jasmine:ci'
264
+ end
285
265
 
286
- Bundler.with_clean_env do
266
+ describe "with Chrome headless" do
267
+ before :all do
268
+ open('spec/javascripts/support/jasmine_helper.rb', 'w') { |f|
269
+ f.puts "Jasmine.configure do |config|\n config.runner_browser = :chromeheadless\nend\n"
270
+ f.flush
271
+ }
272
+ Bundler.with_unbundled_env do
287
273
  `bundle add chrome_remote`
288
- output = `bundle exec rake jasmine:ci JASMINE_CONFIG_PATH=#{coffee_yaml}`
289
- expect(output).to include('6 specs, 0 failures')
274
+ end
275
+ end
276
+
277
+ after :all do
278
+ Bundler.with_unbundled_env do
290
279
  `bundle remove chrome_remote`
291
280
  end
292
281
  end
282
+
283
+ it_behaves_like 'a working jasmine:ci'
293
284
  end
294
285
 
295
286
  def run_jasmine_server(options = "")
296
- Bundler.with_clean_env do
287
+ Bundler.with_unbundled_env do
297
288
  begin
298
289
  pid = IO.popen("bundle exec rake jasmine #{options}").pid
299
290
  Jasmine::wait_for_listener(8888, 'localhost', 60)
@@ -21,6 +21,27 @@ rescue Gem::LoadError
21
21
  false
22
22
  end
23
23
 
24
+ def rails_version
25
+ if ENV['RAILS_VERSION']
26
+ ENV['RAILS_VERSION']
27
+ else
28
+ 'rails6' # keep in sync with default in gemspec
29
+ end
30
+ end
31
+
32
+ def ruby_at_least?(version_str)
33
+ desired = version_str.split('.').map(&:to_i)
34
+ actual = RUBY_VERSION.split('.').map(&:to_i)
35
+
36
+ desired.zip(actual).each do |(d, a)|
37
+ if d != a
38
+ return d <= a
39
+ end
40
+ end
41
+
42
+ true
43
+ end
44
+
24
45
  def create_temp_dir
25
46
  tmp = File.join(Dir.tmpdir, "jasmine-gem-test_#{Time.now.to_f}")
26
47
  FileUtils.rm_r(tmp, :force => true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 3.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Van Hove
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-21 00:00:00.000000000 Z
11
+ date: 2020-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 6.0.0
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 6.0.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rack-test
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -208,6 +214,7 @@ files:
208
214
  - release_notes/3.3.0.md
209
215
  - release_notes/3.4.0.md
210
216
  - release_notes/3.5.0.md
217
+ - release_notes/3.5.1.md
211
218
  - release_notes/v1.2.1.md
212
219
  - release_notes/v1.3.2.md
213
220
  - release_notes/v2.0.0.md
@@ -283,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
283
290
  version: '0'
284
291
  requirements: []
285
292
  rubyforge_project:
286
- rubygems_version: 2.6.11
293
+ rubygems_version: 2.7.6.2
287
294
  signing_key:
288
295
  specification_version: 4
289
296
  summary: JavaScript BDD framework