jasmine-headless-webkit 0.4.1 → 0.4.2
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/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
|