jasmine 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +11 -2
- data/generators/jasmine/templates/spec/javascripts/support/jasmine-rails.yml +2 -2
- data/generators/jasmine/templates/spec/javascripts/support/jasmine.yml +2 -1
- data/jasmine.gemspec +1 -1
- data/lib/jasmine.rb +10 -2
- data/lib/jasmine/application.rb +6 -33
- data/lib/jasmine/asset_expander.rb +19 -0
- data/lib/jasmine/asset_pipeline_mapper.rb +11 -14
- data/lib/jasmine/asset_pipeline_utility.rb +19 -0
- data/lib/jasmine/base.rb +4 -0
- data/lib/jasmine/config.rb +74 -111
- data/lib/jasmine/configuration.rb +83 -0
- data/lib/jasmine/core_configuration.rb +28 -0
- data/lib/jasmine/javascripts/boot.js +28 -0
- data/lib/jasmine/path_expander.rb +18 -0
- data/lib/jasmine/path_mapper.rb +29 -0
- data/lib/jasmine/results_processor.rb +21 -20
- data/lib/jasmine/run.html.erb +0 -37
- data/lib/jasmine/run_specs.rb +12 -8
- data/lib/jasmine/server.rb +1 -1
- data/lib/jasmine/tasks/jasmine.rake +3 -4
- data/lib/jasmine/version.rb +1 -1
- data/lib/jasmine/yaml_config_parser.rb +54 -0
- data/spec/application_integration_spec.rb +15 -0
- data/spec/application_spec.rb +37 -92
- data/spec/asset_expander_spec.rb +42 -0
- data/spec/asset_pipeline_mapper_spec.rb +12 -11
- data/spec/base_spec.rb +14 -0
- data/spec/configuration_spec.rb +163 -0
- data/spec/jasmine_self_test_spec.rb +14 -7
- data/spec/page_spec.rb +2 -4
- data/spec/path_expander_spec.rb +96 -0
- data/spec/path_mapper_spec.rb +33 -0
- data/spec/server_spec.rb +2 -2
- data/spec/yaml_config_parser_spec.rb +182 -0
- metadata +34 -23
- data/lib/jasmine/runner_config.rb +0 -71
- data/lib/jasmine/sprockets_mapper.rb +0 -13
- data/lib/rack/jasmine/redirect.rb +0 -20
- data/spec/config_spec.rb +0 -309
- data/spec/fixture/jasmine.erb.yml +0 -4
- data/spec/fixture/spec/example_spec.js +0 -5
- data/spec/fixture/src/example.js +0 -3
- data/spec/jasmine_self_test_config.rb +0 -19
- data/spec/runner_config_spec.rb +0 -136
- data/spec/sprockets_mapper_spec.rb +0 -17
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Jasmine::AssetExpander do
|
4
|
+
it "expands asset files" do
|
5
|
+
bundled_asset = double(:bundled_asset,
|
6
|
+
:to_a => ['asset1', 'asset2'],
|
7
|
+
:pathname => double(:pathname, :to_s => '/some_src_dir/asset_file'))
|
8
|
+
|
9
|
+
bundled_asset_getter = lambda do |filepath, ext|
|
10
|
+
if filepath == 'asset_file' && ext == 'js'
|
11
|
+
bundled_asset
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
asset_path_getter = lambda do |asset|
|
16
|
+
if asset == 'asset1'
|
17
|
+
'asset1_path'
|
18
|
+
elsif asset == 'asset2'
|
19
|
+
'asset2_path'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
expander = Jasmine::AssetExpander.new(bundled_asset_getter, asset_path_getter)
|
24
|
+
expanded_assets = expander.expand('/some_src_dir', 'asset_file')
|
25
|
+
expanded_assets.should == ['/asset_file?body=true',
|
26
|
+
'/asset1_path?body=true',
|
27
|
+
'/asset2_path?body=true']
|
28
|
+
end
|
29
|
+
|
30
|
+
it "return nil if no bundled asset is found" do
|
31
|
+
bundled_asset = nil
|
32
|
+
bundled_asset_getter = lambda do |filepath, ext|
|
33
|
+
if filepath == 'asset_file' && ext == 'js'
|
34
|
+
bundled_asset
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
expander = Jasmine::AssetExpander.new(bundled_asset_getter, lambda {})
|
39
|
+
expanded_assets = expander.expand('/some_src_dir', 'asset_file')
|
40
|
+
expanded_assets.should be_nil
|
41
|
+
end
|
42
|
+
end
|
@@ -1,18 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Jasmine::AssetPipelineMapper do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
asset_context.stub_chain(:asset_paths, :asset_for).with("other_manifest", "js").and_return(['asset1.js', 'asset3.js'])
|
11
|
-
asset_context.stub(:asset_path) do |asset|
|
12
|
-
"/some_location/#{asset}"
|
4
|
+
it "expands asset paths if available" do
|
5
|
+
expander = lambda do |dir, path|
|
6
|
+
if dir == "/some_location/" && path == 'asset1'
|
7
|
+
['asset1', 'asset2']
|
8
|
+
elsif dir == "/some_location/" && path == 'asset2'
|
9
|
+
['asset1', 'asset3']
|
13
10
|
end
|
14
|
-
|
15
|
-
mapper.files(src_files).should == ['some_location/asset1.js?body=true', 'some_location/asset2.js?body=true', 'some_location/asset3.js?body=true']
|
11
|
+
|
16
12
|
end
|
13
|
+
config = double(:config, :src_dir => "/some_location/")
|
14
|
+
|
15
|
+
mapper = Jasmine::AssetPipelineMapper.new(config, expander)
|
16
|
+
|
17
|
+
mapper.map_src_paths(['asset1', 'asset2', 'asset4']).should == ['asset1', 'asset2', 'asset3', 'asset4']
|
17
18
|
end
|
18
19
|
end
|
data/spec/base_spec.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Jasmine do
|
4
|
+
it "should provide the root path" do
|
5
|
+
File.stub(:dirname).and_return('lib/jasmine')
|
6
|
+
File.should_receive(:expand_path) { |path| path }
|
7
|
+
Jasmine.root.should == 'lib/jasmine'
|
8
|
+
end
|
9
|
+
it "should append passed file paths" do
|
10
|
+
File.stub(:dirname).and_return('lib/jasmine')
|
11
|
+
File.should_receive(:expand_path) { |path| path }
|
12
|
+
Jasmine.root('subdir1', 'subdir2').should == File.join('lib/jasmine', 'subdir1', 'subdir2')
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Jasmine::Configuration do
|
4
|
+
let(:test_mapper1) do
|
5
|
+
Class.new do
|
6
|
+
def initialize(config)
|
7
|
+
@config = config
|
8
|
+
end
|
9
|
+
def map_src_paths(paths)
|
10
|
+
paths.map { |f| "mapped_src/#{f}" }
|
11
|
+
end
|
12
|
+
def map_jasmine_paths(paths)
|
13
|
+
paths.map { |f| "mapped_jasmine/#{f}" }
|
14
|
+
end
|
15
|
+
def map_spec_paths(paths)
|
16
|
+
paths.map { |f| "mapped_spec/#{f}" }
|
17
|
+
end
|
18
|
+
def map_boot_paths(paths)
|
19
|
+
paths.map { |f| "mapped_boot/#{f}" }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
let(:test_mapper2) do
|
24
|
+
Class.new do
|
25
|
+
def initialize(config)
|
26
|
+
@config = config
|
27
|
+
end
|
28
|
+
def map_src_paths(paths)
|
29
|
+
paths.map { |f| "#{f}/src" }
|
30
|
+
end
|
31
|
+
def map_jasmine_paths(paths)
|
32
|
+
paths.map { |f| "#{f}/jasmine" }
|
33
|
+
end
|
34
|
+
def map_spec_paths(paths)
|
35
|
+
paths.map { |f| "#{f}/spec" }
|
36
|
+
end
|
37
|
+
def map_boot_paths(paths)
|
38
|
+
paths.map { |f| "#{f}/boot" }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
let(:test_mapper3) do
|
43
|
+
Class.new do
|
44
|
+
def initialize(config)
|
45
|
+
@config = config
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "returning css files" do
|
51
|
+
it "returns mapped jasmine_css_files + css_files" do
|
52
|
+
config = Jasmine::Configuration.new()
|
53
|
+
config.add_path_mapper(lambda { |c| test_mapper1.new(c) })
|
54
|
+
config.add_path_mapper(lambda { |c| test_mapper2.new(c) })
|
55
|
+
config.add_path_mapper(lambda { |c| test_mapper3.new(c) })
|
56
|
+
config.css_files.should == []
|
57
|
+
config.jasmine_css_files = lambda { ["jasmine_css"] }
|
58
|
+
config.css_files = lambda { ["css"] }
|
59
|
+
config.css_files.should == ['mapped_jasmine/jasmine_css/jasmine', 'mapped_src/css/src']
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "returning javascript files" do
|
64
|
+
it "returns the jasmine core files, then srcs, then specs, then boot" do
|
65
|
+
config = Jasmine::Configuration.new()
|
66
|
+
config.add_path_mapper(lambda { |c| test_mapper1.new(c) })
|
67
|
+
config.add_path_mapper(lambda { |c| test_mapper2.new(c) })
|
68
|
+
config.add_path_mapper(lambda { |c| test_mapper3.new(c) })
|
69
|
+
config.js_files.should == []
|
70
|
+
config.jasmine_files = lambda { ['jasmine'] }
|
71
|
+
config.src_files = lambda { ['src'] }
|
72
|
+
config.boot_files = lambda { ['boot'] }
|
73
|
+
config.spec_files = lambda { ['spec'] }
|
74
|
+
config.js_files.should == [
|
75
|
+
'mapped_jasmine/jasmine/jasmine',
|
76
|
+
'mapped_src/src/src',
|
77
|
+
'mapped_spec/spec/spec',
|
78
|
+
'mapped_boot/boot/boot',
|
79
|
+
]
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe "returning rack map" do
|
84
|
+
it "permits arbitrary rack app path mapping" do
|
85
|
+
config = Jasmine::Configuration.new()
|
86
|
+
result = double
|
87
|
+
config.add_rack_path('some/path', lambda { result })
|
88
|
+
map = config.rack_path_map
|
89
|
+
map['some/path'].should be
|
90
|
+
map['some/path'].call.should == result
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
describe "rack apps" do
|
96
|
+
it "permits the addition of arbitary rack apps" do
|
97
|
+
config = Jasmine::Configuration.new()
|
98
|
+
app = double
|
99
|
+
config.add_rack_app(app)
|
100
|
+
config.rack_apps.should == [[app, nil]]
|
101
|
+
end
|
102
|
+
it "permits the addition of arbitary rack apps with arbitrary config" do
|
103
|
+
config = Jasmine::Configuration.new()
|
104
|
+
app = double
|
105
|
+
block = lambda { "foo" }
|
106
|
+
config.add_rack_app(app, &block)
|
107
|
+
config.rack_apps.should == [[app, block]]
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "port" do
|
112
|
+
it "returns new port and caches return value" do
|
113
|
+
config = Jasmine::Configuration.new()
|
114
|
+
Jasmine.stub(:find_unused_port).and_return('1234')
|
115
|
+
config.port.should == '1234'
|
116
|
+
Jasmine.stub(:find_unused_port).and_return('4321')
|
117
|
+
config.port.should == '1234'
|
118
|
+
end
|
119
|
+
it "returns port if configured" do
|
120
|
+
config = Jasmine::Configuration.new()
|
121
|
+
config.port = '5678'
|
122
|
+
Jasmine.stub(:find_unused_port).and_return('1234')
|
123
|
+
config.port.should == '5678'
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe "browser" do
|
128
|
+
it "should default to firefox" do
|
129
|
+
Jasmine::Configuration.new().browser.should == 'firefox'
|
130
|
+
end
|
131
|
+
|
132
|
+
it "returns browser if set" do
|
133
|
+
config = Jasmine::Configuration.new()
|
134
|
+
config.browser = 'foo'
|
135
|
+
config.browser.should == 'foo'
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "result_batch_size" do
|
140
|
+
it "should default to 50" do
|
141
|
+
Jasmine::Configuration.new().result_batch_size.should == 50
|
142
|
+
end
|
143
|
+
|
144
|
+
it "returns result_batch_size if set" do
|
145
|
+
config = Jasmine::Configuration.new()
|
146
|
+
config.result_batch_size = 25
|
147
|
+
config.result_batch_size.should == 25
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe "host" do
|
152
|
+
it "should default to localhost" do
|
153
|
+
Jasmine::Configuration.new().host.should == 'http://localhost'
|
154
|
+
end
|
155
|
+
|
156
|
+
it "returns host if set" do
|
157
|
+
config = Jasmine::Configuration.new()
|
158
|
+
config.host = 'foo'
|
159
|
+
config.host.should == 'foo'
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
@@ -1,9 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'jasmine_self_test_config'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
Jasmine.configure do |config|
|
4
|
+
root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
5
|
+
config.src_dir = File.join(root, 'src')
|
6
|
+
config.spec_dir = Jasmine::Core.path
|
7
|
+
config.spec_files = lambda { (Jasmine::Core.html_spec_files + Jasmine::Core.core_spec_files).map {|f| File.join(config.spec_dir, f) } }
|
8
|
+
end
|
9
|
+
|
10
|
+
config = Jasmine.config
|
11
|
+
|
12
|
+
server = Jasmine::Server.new(config.port, Jasmine::Application.app(config))
|
13
|
+
driver = Jasmine::SeleniumDriver.new(config.browser, "#{config.host}:#{config.port}/")
|
7
14
|
|
8
15
|
t = Thread.new do
|
9
16
|
begin
|
@@ -13,10 +20,10 @@ t = Thread.new do
|
|
13
20
|
# # ignore bad exits
|
14
21
|
end
|
15
22
|
t.abort_on_exception = true
|
16
|
-
Jasmine::wait_for_listener(
|
23
|
+
Jasmine::wait_for_listener(config.port, "jasmine server")
|
17
24
|
puts "jasmine server started."
|
18
25
|
|
19
|
-
results_processor = Jasmine::ResultsProcessor.new(
|
20
|
-
results = Jasmine::Runners::HTTP.new(
|
26
|
+
results_processor = Jasmine::ResultsProcessor.new(config)
|
27
|
+
results = Jasmine::Runners::HTTP.new(driver, results_processor, config.result_batch_size).run
|
21
28
|
formatter = Jasmine::RspecFormatter.new
|
22
29
|
formatter.format_results(results)
|
data/spec/page_spec.rb
CHANGED
@@ -6,15 +6,13 @@ describe Jasmine::Page do
|
|
6
6
|
describe "#render" do
|
7
7
|
subject { Nokogiri::HTML(page.render) }
|
8
8
|
let(:fake_config) do
|
9
|
-
OpenStruct.new(:js_files => ["file1.js", "file2.js"],
|
10
|
-
:css_files => ["file1.css", "file2.css"],
|
11
|
-
:jasmine_files => ["jasmine_file1.js", "jasmine_file2.js"])
|
9
|
+
OpenStruct.new(:js_files => ["file1.js", "file2.js"], :css_files => ["file1.css", "file2.css"])
|
12
10
|
end
|
13
11
|
let(:context) { fake_config }
|
14
12
|
let(:page) { Jasmine::Page.new(context) }
|
15
13
|
it "should render javascript files in the correct order" do
|
16
14
|
js_files = subject.css("script")
|
17
|
-
js_files.map { |file| file["src"] }.compact.should == ["
|
15
|
+
js_files.map { |file| file["src"] }.compact.should == ["file1.js", "file2.js"]
|
18
16
|
end
|
19
17
|
|
20
18
|
it "should render css files in the correct order" do
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Jasmine::PathExpander do
|
4
|
+
it "returns absolute paths" do
|
5
|
+
dir_glob = lambda do |pattern|
|
6
|
+
case pattern
|
7
|
+
when 'some_base/src1*'
|
8
|
+
['some_base/src1.js', 'some_base/src15.js']
|
9
|
+
when 'some_base/src2*'
|
10
|
+
['some_base/src2.js']
|
11
|
+
else
|
12
|
+
raise "Unexpected pattern received: #{pattern}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
expanded_files = Jasmine::PathExpander.expand(
|
17
|
+
'some_base',
|
18
|
+
['src1*', 'src2*'],
|
19
|
+
dir_glob
|
20
|
+
)
|
21
|
+
|
22
|
+
expanded_files.should == [
|
23
|
+
File.join('some_base', 'src1.js'),
|
24
|
+
File.join('some_base', 'src15.js'),
|
25
|
+
File.join('some_base', 'src2.js')
|
26
|
+
]
|
27
|
+
end
|
28
|
+
|
29
|
+
it "uniqs files" do
|
30
|
+
dir_glob = lambda do |pattern|
|
31
|
+
case pattern
|
32
|
+
when 'some_base/src1*'
|
33
|
+
['some_base/src1.js', 'some_base/src15.js', 'some_base/src1.js']
|
34
|
+
when 'some_base/src2*'
|
35
|
+
['some_base/src2.js']
|
36
|
+
else
|
37
|
+
raise "Unexpected pattern received: #{pattern}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
expanded_files = Jasmine::PathExpander.expand(
|
42
|
+
'some_base',
|
43
|
+
['src1*', 'src2*'],
|
44
|
+
dir_glob
|
45
|
+
)
|
46
|
+
|
47
|
+
expanded_files.should == [
|
48
|
+
File.join('some_base', 'src1.js'),
|
49
|
+
File.join('some_base', 'src15.js'),
|
50
|
+
File.join('some_base', 'src2.js')
|
51
|
+
]
|
52
|
+
end
|
53
|
+
|
54
|
+
it "supports negation of passed patterns" do
|
55
|
+
dir_glob = lambda do |pattern|
|
56
|
+
case pattern
|
57
|
+
when 'some_base/src1*'
|
58
|
+
['some_base/src1.js', 'some_base/src15.js']
|
59
|
+
when 'some_base/src1.js'
|
60
|
+
['some_base/src1.js']
|
61
|
+
when 'some_base/src2*'
|
62
|
+
['some_base/src2.js']
|
63
|
+
else
|
64
|
+
raise "Unexpected pattern received: #{pattern}"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
expanded_files = Jasmine::PathExpander.expand(
|
69
|
+
'some_base',
|
70
|
+
['src1*', '!src1.js', 'src2*'],
|
71
|
+
dir_glob
|
72
|
+
)
|
73
|
+
|
74
|
+
expanded_files.should == [
|
75
|
+
File.join('some_base', 'src15.js'),
|
76
|
+
File.join('some_base', 'src2.js')
|
77
|
+
]
|
78
|
+
end
|
79
|
+
|
80
|
+
it "passes through files that are not found by the globber and are not negations and not globs" do
|
81
|
+
#this is designed to support asset pipeline files that aren't found.
|
82
|
+
dir_glob = lambda do |pattern|
|
83
|
+
[]
|
84
|
+
end
|
85
|
+
|
86
|
+
expanded_files = Jasmine::PathExpander.expand(
|
87
|
+
'some_base',
|
88
|
+
['src1*', '!src1.js', 'src2.js'],
|
89
|
+
dir_glob
|
90
|
+
)
|
91
|
+
|
92
|
+
expanded_files.should == [
|
93
|
+
File.join('some_base', 'src2.js')
|
94
|
+
]
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Jasmine::PathMapper do
|
4
|
+
it "correctly remaps src files" do
|
5
|
+
config = double(:config, :src_dir => '/src_dir', :src_path => '/__src__')
|
6
|
+
mapper = Jasmine::PathMapper.new(config)
|
7
|
+
mapper.map_src_paths(['/src_dir/foo']).should == ['/__src__/foo']
|
8
|
+
mapper.map_src_paths(['foo/bar']).should == ['/__src__/foo/bar']
|
9
|
+
end
|
10
|
+
it "correctly remaps spec files" do
|
11
|
+
config = double(:config, :spec_dir => '/spec_dir', :spec_path => '/__spec__')
|
12
|
+
mapper = Jasmine::PathMapper.new(config)
|
13
|
+
mapper.map_spec_paths(['/spec_dir/foo']).should == ['/__spec__/foo']
|
14
|
+
mapper.map_spec_paths(['foo/bar']).should == ['/__spec__/foo/bar']
|
15
|
+
end
|
16
|
+
it "correctly remaps jasmine files" do
|
17
|
+
config = double(:config, :jasmine_dir => '/jasmine_dir', :jasmine_path => '/__jasmine__')
|
18
|
+
mapper = Jasmine::PathMapper.new(config)
|
19
|
+
mapper.map_jasmine_paths(['/jasmine_dir/foo']).should == ['/__jasmine__/foo']
|
20
|
+
mapper.map_jasmine_paths(['foo/bar']).should == ['/__jasmine__/foo/bar']
|
21
|
+
end
|
22
|
+
it "correctly remaps boot files" do
|
23
|
+
config = double(:config, :boot_dir => '/boot_dir', :boot_path => '/__boot__')
|
24
|
+
mapper = Jasmine::PathMapper.new(config)
|
25
|
+
mapper.map_boot_paths(['/boot_dir/foo']).should == ['/__boot__/foo']
|
26
|
+
mapper.map_boot_paths(['foo/bar']).should == ['/__boot__/foo/bar']
|
27
|
+
end
|
28
|
+
it "handles edge case where dir == path" do
|
29
|
+
config = double(:config, :src_dir => '/src_dir', :src_path => '/src_dir')
|
30
|
+
mapper = Jasmine::PathMapper.new(config)
|
31
|
+
mapper.map_src_paths(['/src_dir/foo']).should == ['/src_dir/foo']
|
32
|
+
end
|
33
|
+
end
|
data/spec/server_spec.rb
CHANGED
@@ -27,14 +27,14 @@ describe Jasmine::Server do
|
|
27
27
|
it "should create a Rack::Server with the correct port when passed" do
|
28
28
|
port = 1234
|
29
29
|
Rack::Server.should_receive(:new).with(hash_including(:Port => port)).and_return(double(:server).as_null_object)
|
30
|
-
Jasmine::Server.new(port).start
|
30
|
+
Jasmine::Server.new(port, double(:app)).start
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should start the server" do
|
34
34
|
server = double(:server)
|
35
35
|
Rack::Server.should_receive(:new) { server.as_null_object }
|
36
36
|
server.should_receive(:start)
|
37
|
-
Jasmine::Server.new.start
|
37
|
+
Jasmine::Server.new('8888', double(:app)).start
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should set the app as the instance variable on the rack server" do
|