jasmine-headless-webkit 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/jasmine-webkit-specrunner/extconf.rb +7 -1
- data/lib/jasmine-headless-webkit/version.rb +1 -1
- data/lib/jasmine/files_list.rb +10 -7
- data/lib/jasmine/headless/railtie.rb +0 -29
- data/lib/jasmine/headless/runner.rb +1 -1
- data/lib/jasmine/headless/task.rb +29 -0
- data/spec/bin/jasmine-headless-webkit_spec.rb +8 -1
- data/spec/jasmine/filtered_success/success_other_file.js +7 -0
- data/spec/lib/jasmine/files_list_spec.rb +19 -32
- data/spec/spec_helper.rb +10 -2
- metadata +4 -3
- data/.autotest +0 -9
data/lib/jasmine/files_list.rb
CHANGED
@@ -11,7 +11,7 @@ end
|
|
11
11
|
|
12
12
|
module Jasmine
|
13
13
|
class FilesList
|
14
|
-
attr_reader :files, :filtered_files
|
14
|
+
attr_reader :files, :filtered_files, :spec_outside_scope
|
15
15
|
|
16
16
|
DEFAULT_FILES = [
|
17
17
|
File.join(Jasmine.root, "lib/jasmine.js"),
|
@@ -23,13 +23,14 @@ module Jasmine
|
|
23
23
|
@options = options
|
24
24
|
@files = DEFAULT_FILES.dup
|
25
25
|
@filtered_files = @files.dup
|
26
|
+
@spec_outside_scope = false
|
26
27
|
use_config! if config?
|
27
28
|
|
28
29
|
@code_for_file = {}
|
29
30
|
end
|
30
31
|
|
31
|
-
def
|
32
|
-
|
32
|
+
def has_spec_outside_scope?
|
33
|
+
@spec_outside_scope
|
33
34
|
end
|
34
35
|
|
35
36
|
def filtered?
|
@@ -114,10 +115,12 @@ module Jasmine
|
|
114
115
|
|
115
116
|
@files += found_files
|
116
117
|
|
117
|
-
if searches == 'spec_files'
|
118
|
-
|
119
|
-
|
120
|
-
|
118
|
+
@filtered_files += (if searches == 'spec_files'
|
119
|
+
@spec_outside_scope = ((spec_filter | found_files).sort != found_files.sort)
|
120
|
+
spec_filter || found_files
|
121
|
+
else
|
122
|
+
found_files
|
123
|
+
end)
|
121
124
|
end
|
122
125
|
end
|
123
126
|
end
|
@@ -1,25 +1,5 @@
|
|
1
1
|
require 'jasmine/headless/task'
|
2
2
|
|
3
|
-
module Digest
|
4
|
-
class JasmineTest
|
5
|
-
def self.file(file)
|
6
|
-
new
|
7
|
-
end
|
8
|
-
|
9
|
-
def file(file)
|
10
|
-
self
|
11
|
-
end
|
12
|
-
|
13
|
-
def hexdigest
|
14
|
-
'test'
|
15
|
-
end
|
16
|
-
|
17
|
-
def update(prefix)
|
18
|
-
self
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
3
|
module Jasmine
|
24
4
|
module Headless
|
25
5
|
class Railtie < Rails::Railtie
|
@@ -27,15 +7,6 @@ module Jasmine
|
|
27
7
|
Jasmine::Headless::Task.new do |t|
|
28
8
|
t.colors = true
|
29
9
|
end
|
30
|
-
|
31
|
-
if Rails.version >= "3.1.0"
|
32
|
-
desc 'Force generate static assets without an MD5 hash, all assets end with -test.<ext>'
|
33
|
-
task 'assets:precompile:for_testing' => :environment do
|
34
|
-
Rails.application.assets.digest_class = Digest::JasmineTest
|
35
|
-
|
36
|
-
Rake::Task['assets:precompile'].invoke
|
37
|
-
end
|
38
|
-
end
|
39
10
|
end
|
40
11
|
end
|
41
12
|
end
|
@@ -58,7 +58,7 @@ module Jasmine
|
|
58
58
|
|
59
59
|
targets = Jasmine::TemplateWriter.write!(files_list)
|
60
60
|
run_targets = targets.dup
|
61
|
-
run_targets.pop if !@options[:full_run] && files_list.filtered?
|
61
|
+
run_targets.pop if (!@options[:full_run] && files_list.filtered?) || files_list.has_spec_outside_scope?
|
62
62
|
|
63
63
|
system jasmine_command(run_targets)
|
64
64
|
status = $?.exitstatus
|
@@ -1,5 +1,25 @@
|
|
1
1
|
require 'jasmine/headless/runner'
|
2
2
|
|
3
|
+
module Digest
|
4
|
+
class JasmineTest
|
5
|
+
def self.file(file)
|
6
|
+
new
|
7
|
+
end
|
8
|
+
|
9
|
+
def file(file)
|
10
|
+
self
|
11
|
+
end
|
12
|
+
|
13
|
+
def hexdigest
|
14
|
+
'test'
|
15
|
+
end
|
16
|
+
|
17
|
+
def update(prefix)
|
18
|
+
self
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
3
23
|
module Jasmine
|
4
24
|
module Headless
|
5
25
|
class Task
|
@@ -22,6 +42,15 @@ module Jasmine
|
|
22
42
|
:jasmine_config => @jasmine_config
|
23
43
|
)
|
24
44
|
end
|
45
|
+
|
46
|
+
if Rails.version >= "3.1.0"
|
47
|
+
desc 'Force generate static assets without an MD5 hash, all assets end with -test.<ext>'
|
48
|
+
task 'assets:precompile:for_testing' => :environment do
|
49
|
+
Rails.application.assets.digest_class = Digest::JasmineTest
|
50
|
+
|
51
|
+
Rake::Task['assets:precompile'].invoke
|
52
|
+
end
|
53
|
+
end
|
25
54
|
end
|
26
55
|
end
|
27
56
|
end
|
@@ -26,7 +26,7 @@ describe "jasmine-headless-webkit" do
|
|
26
26
|
system %{bin/jasmine-headless-webkit -j spec/jasmine/success_with_error/success_with_error.yml --report #{report}}
|
27
27
|
$?.exitstatus.should == 1
|
28
28
|
|
29
|
-
report.should be_a_report_containing(
|
29
|
+
report.should be_a_report_containing(0, 0, false)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -65,6 +65,13 @@ describe "jasmine-headless-webkit" do
|
|
65
65
|
|
66
66
|
report.should be_a_report_containing(1, 0, false)
|
67
67
|
end
|
68
|
+
|
69
|
+
it "should use a file outside the normal test run and only run one" do
|
70
|
+
system %{bin/jasmine-headless-webkit -j spec/jasmine/filtered_success/filtered_success.yml --report #{report} ./spec/jasmine/filtered_success/success_other_file.js}
|
71
|
+
$?.exitstatus.should == 0
|
72
|
+
|
73
|
+
report.should be_a_report_containing(1, 0, false)
|
74
|
+
end
|
68
75
|
end
|
69
76
|
|
70
77
|
context "do both runs" do
|
@@ -56,32 +56,6 @@ describe Jasmine::FilesList do
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
describe '#use_spec?' do
|
60
|
-
let(:spec_file) { 'my/spec.js' }
|
61
|
-
|
62
|
-
let(:files_list) { Jasmine::FilesList.new(:only => filter) }
|
63
|
-
|
64
|
-
context 'no filter provided' do
|
65
|
-
let(:filter) { [] }
|
66
|
-
|
67
|
-
it "should allow the spec" do
|
68
|
-
files_list.use_spec?(spec_file).should be_true
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'filter provided' do
|
73
|
-
let(:filter) { [ spec_file ] }
|
74
|
-
|
75
|
-
it "should use the spec" do
|
76
|
-
files_list.use_spec?(spec_file).should be_true
|
77
|
-
end
|
78
|
-
|
79
|
-
it "should not use the spec" do
|
80
|
-
files_list.use_spec?('other/file').should be_false
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
59
|
context 'with filtered specs' do
|
86
60
|
let(:files_list) { Jasmine::FilesList.new(:only => filter, :config => config) }
|
87
61
|
let(:spec_dir) { 'spec' }
|
@@ -99,15 +73,28 @@ describe Jasmine::FilesList do
|
|
99
73
|
end
|
100
74
|
end
|
101
75
|
|
102
|
-
|
76
|
+
context 'filter with a file that is matchable' do
|
77
|
+
let(:filter) { [ File.expand_path('spec/one_spec.js') ] }
|
103
78
|
|
104
|
-
|
105
|
-
|
106
|
-
|
79
|
+
it 'should return all files for files' do
|
80
|
+
files_list.files.any? { |file| file['two_spec.js'] }.should be_true
|
81
|
+
files_list.filtered?.should be_true
|
82
|
+
files_list.should_not have_spec_outside_scope
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should return only filtered files for filtered_files' do
|
86
|
+
files_list.filtered_files.any? { |file| file['two_spec.js'] }.should be_false
|
87
|
+
files_list.should_not have_spec_outside_scope
|
88
|
+
end
|
107
89
|
end
|
108
90
|
|
109
|
-
|
110
|
-
|
91
|
+
context 'filter with a file that is not even there' do
|
92
|
+
let(:filter) { [ File.expand_path('spec/whatever.js') ] }
|
93
|
+
|
94
|
+
it 'should use the provided file' do
|
95
|
+
files_list.filtered_files.any? { |file| file['whatever.js'] }.should be_true
|
96
|
+
files_list.should have_spec_outside_scope
|
97
|
+
end
|
111
98
|
end
|
112
99
|
end
|
113
100
|
|
data/spec/spec_helper.rb
CHANGED
@@ -12,12 +12,20 @@ end
|
|
12
12
|
|
13
13
|
RSpec::Matchers.define :be_a_report_containing do |total, fails, used_console|
|
14
14
|
match do |filename|
|
15
|
-
parts
|
16
|
-
parts.length.should == 4
|
15
|
+
parts(filename).length.should == 4
|
17
16
|
parts[0].should == total.to_s
|
18
17
|
parts[1].should == fails.to_s
|
19
18
|
parts[2].should == (used_console ? "T" : "F")
|
20
19
|
true
|
21
20
|
end
|
21
|
+
|
22
|
+
failure_message_for_should do |filename|
|
23
|
+
parts(filename)
|
24
|
+
"expected #{filename} to be a report containing (#{total}, #{fails}, #{used_console.inspect}), instead it contained (#{parts[0]}, #{parts[1]}, #{(parts[2] == "T").inspect})"
|
25
|
+
end
|
26
|
+
|
27
|
+
def parts(filename = nil)
|
28
|
+
@parts ||= File.read(filename).strip.split('/')
|
29
|
+
end
|
22
30
|
end
|
23
31
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: jasmine-headless-webkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.4.
|
5
|
+
version: 0.4.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- John Bintz
|
@@ -12,7 +12,7 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date: 2011-06-
|
15
|
+
date: 2011-06-23 00:00:00 -04:00
|
16
16
|
default_executable:
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
@@ -58,7 +58,6 @@ extensions:
|
|
58
58
|
extra_rdoc_files: []
|
59
59
|
|
60
60
|
files:
|
61
|
-
- .autotest
|
62
61
|
- .gitignore
|
63
62
|
- .rspec
|
64
63
|
- CHANGELOG.md
|
@@ -104,6 +103,7 @@ files:
|
|
104
103
|
- spec/jasmine/filtered_success/filtered_success.yml
|
105
104
|
- spec/jasmine/filtered_success/src.js
|
106
105
|
- spec/jasmine/filtered_success/success_one_spec.js
|
106
|
+
- spec/jasmine/filtered_success/success_other_file.js
|
107
107
|
- spec/jasmine/filtered_success/success_two_spec.js
|
108
108
|
- spec/jasmine/success/success.js
|
109
109
|
- spec/jasmine/success/success.yml
|
@@ -162,6 +162,7 @@ test_files:
|
|
162
162
|
- spec/jasmine/filtered_success/filtered_success.yml
|
163
163
|
- spec/jasmine/filtered_success/src.js
|
164
164
|
- spec/jasmine/filtered_success/success_one_spec.js
|
165
|
+
- spec/jasmine/filtered_success/success_other_file.js
|
165
166
|
- spec/jasmine/filtered_success/success_two_spec.js
|
166
167
|
- spec/jasmine/success/success.js
|
167
168
|
- spec/jasmine/success/success.yml
|