visionmedia-jspec 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +9 -0
- data/Manifest +2 -2
- data/README.rdoc +4 -2
- data/bin/jspec +1 -1
- data/jspec.gemspec +3 -3
- data/lib/jspec.js +26 -19
- data/server/server.rb +3 -3
- data/spec/{spec.html → spec.dom.html} +0 -0
- data/spec/spec.js +8 -0
- data/spec/spec.matchers.js +11 -2
- data/spec/{server.html → spec.server.html} +0 -0
- metadata +4 -4
data/History.rdoc
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
|
2
|
+
=== 2.2.0 / 2009-06-18
|
3
|
+
|
4
|
+
* Added link to JSpec in JSMag June 2009
|
5
|
+
* Added Github gem source location to docs
|
6
|
+
* Changed throw_error matcher; now accepts two arguments
|
7
|
+
* Changed --server; serves from current working directory.
|
8
|
+
This allows files in ../lib/* to be served rather than ./spec/* only.
|
9
|
+
* Refactored argumentsToArray()
|
10
|
+
|
2
11
|
=== 2.1.0 / 2009-06-12
|
3
12
|
|
4
13
|
* Changed `jspec init` to utilize a single template
|
data/Manifest
CHANGED
@@ -18,14 +18,14 @@ server/server.rb
|
|
18
18
|
spec/async
|
19
19
|
spec/env.js
|
20
20
|
spec/jquery-1.3.1.js
|
21
|
-
spec/
|
21
|
+
spec/spec.dom.html
|
22
22
|
spec/spec.grammar-less.js
|
23
23
|
spec/spec.grammar.js
|
24
|
-
spec/spec.html
|
25
24
|
spec/spec.jquery.js
|
26
25
|
spec/spec.js
|
27
26
|
spec/spec.matchers.js
|
28
27
|
spec/spec.rhino.js
|
28
|
+
spec/spec.server.html
|
29
29
|
spec/spec.shared-behaviors.js
|
30
30
|
spec/spec.utils.js
|
31
31
|
templates/default/History.rdoc
|
data/README.rdoc
CHANGED
@@ -29,7 +29,7 @@ and much more.
|
|
29
29
|
* Shared behaviors
|
30
30
|
* Profiling
|
31
31
|
* Rails Integration (http://github.com/bhauman/jspec-rails)
|
32
|
-
* Tiny (15 kb compressed,
|
32
|
+
* Tiny (15 kb compressed, 1300-ish LOC)
|
33
33
|
|
34
34
|
== Installation
|
35
35
|
|
@@ -38,6 +38,7 @@ Head over to the downloads section on Github, clone this public repo, or
|
|
38
38
|
add JSpec as a git submodule with in your project. Alternatively JSpec is
|
39
39
|
also available as a Ruby Gem (though this is not required), which also
|
40
40
|
provides the `jspec` executable. To install execute:
|
41
|
+
$ gem sources -a http://gems.github.com (if you have not previously done so)
|
41
42
|
$ sudo gem install visionmedia-jspec
|
42
43
|
|
43
44
|
At which point you may:
|
@@ -139,7 +140,7 @@ JSpec.options.failuresOnly = true, and ?failuresOnly=1 will both work.
|
|
139
140
|
- be_type be type of x
|
140
141
|
- be_greater_than >
|
141
142
|
- be_less_than <
|
142
|
-
- throw_error should throw an error, optionally supply the error string for comparison
|
143
|
+
- throw_error should throw an error, optionally supply the error string or regexp for message comparison
|
143
144
|
- have object should have n of property (person.should.have(2, 'pets'))
|
144
145
|
- have_at_least object should have at least n of property
|
145
146
|
- have_at_most object should have a maximum n of property
|
@@ -463,6 +464,7 @@ Run with:
|
|
463
464
|
|
464
465
|
== More Information
|
465
466
|
|
467
|
+
* Featured article in JSMag: http://www.jsmag.com/main.issues.description/id=21/
|
466
468
|
* Syntax comparison with other frameworks http://gist.github.com/92283
|
467
469
|
* Get the TextMate bundle at https://github.com/visionmedia/jspec.tmbundle/tree
|
468
470
|
* For more information consult the JSpec source code documentation or visit http://visionmedia.github.com/jspec
|
data/bin/jspec
CHANGED
data/jspec.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{jspec}
|
5
|
-
s.version = "2.
|
5
|
+
s.version = "2.2.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["TJ Holowaychuk"]
|
9
|
-
s.date = %q{2009-06-
|
9
|
+
s.date = %q{2009-06-18}
|
10
10
|
s.default_executable = %q{jspec}
|
11
11
|
s.description = %q{JavaScript BDD Testing Framework}
|
12
12
|
s.email = %q{tj@vision-media.ca}
|
13
13
|
s.executables = ["jspec"]
|
14
14
|
s.extra_rdoc_files = ["bin/jspec", "lib/images/bg.png", "lib/images/hr.png", "lib/images/loading.gif", "lib/images/sprites.bg.png", "lib/images/sprites.png", "lib/images/vr.png", "lib/jspec.css", "lib/jspec.jquery.js", "lib/jspec.js", "README.rdoc"]
|
15
|
-
s.files = ["bin/jspec", "History.rdoc", "jspec.gemspec", "lib/images/bg.png", "lib/images/hr.png", "lib/images/loading.gif", "lib/images/sprites.bg.png", "lib/images/sprites.png", "lib/images/vr.png", "lib/jspec.css", "lib/jspec.jquery.js", "lib/jspec.js", "Manifest", "Rakefile", "README.rdoc", "server/browsers.rb", "server/server.rb", "spec/async", "spec/env.js", "spec/jquery-1.3.1.js", "spec/
|
15
|
+
s.files = ["bin/jspec", "History.rdoc", "jspec.gemspec", "lib/images/bg.png", "lib/images/hr.png", "lib/images/loading.gif", "lib/images/sprites.bg.png", "lib/images/sprites.png", "lib/images/vr.png", "lib/jspec.css", "lib/jspec.jquery.js", "lib/jspec.js", "Manifest", "Rakefile", "README.rdoc", "server/browsers.rb", "server/server.rb", "spec/async", "spec/env.js", "spec/jquery-1.3.1.js", "spec/spec.dom.html", "spec/spec.grammar-less.js", "spec/spec.grammar.js", "spec/spec.jquery.js", "spec/spec.js", "spec/spec.matchers.js", "spec/spec.rhino.js", "spec/spec.server.html", "spec/spec.shared-behaviors.js", "spec/spec.utils.js", "templates/default/History.rdoc", "templates/default/lib/yourlib.core.js", "templates/default/README.rdoc", "templates/default/spec/spec.core.js", "templates/default/spec/spec.dom.html", "templates/default/spec/spec.rhino.js", "templates/default/spec/spec.server.html"]
|
16
16
|
s.homepage = %q{http://visionmedia.github.com/jspec}
|
17
17
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Jspec", "--main", "README.rdoc"]
|
18
18
|
s.require_paths = ["lib"]
|
data/lib/jspec.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
JSpec = {
|
7
7
|
|
8
|
-
version : '2.
|
8
|
+
version : '2.2.0',
|
9
9
|
suites : [],
|
10
10
|
allSuites : [],
|
11
11
|
matchers : {},
|
@@ -582,9 +582,7 @@
|
|
582
582
|
*/
|
583
583
|
|
584
584
|
argumentsToArray : function(arguments, offset) {
|
585
|
-
|
586
|
-
for (i = 0; i < arguments.length; i++) args.push(arguments[i])
|
587
|
-
return args.slice(offset || 0)
|
585
|
+
return Array.prototype.slice.call(arguments, offset || 0)
|
588
586
|
},
|
589
587
|
|
590
588
|
/**
|
@@ -1408,28 +1406,37 @@
|
|
1408
1406
|
return true
|
1409
1407
|
},
|
1410
1408
|
|
1411
|
-
throw_error : { match : function(actual, expected) {
|
1409
|
+
throw_error : { match : function(actual, expected, message) {
|
1412
1410
|
try { actual() }
|
1413
1411
|
catch (e) {
|
1414
1412
|
this.e = e
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1413
|
+
var assert = function(arg) {
|
1414
|
+
console.log(e.constructor);
|
1415
|
+
switch (arg.constructor) {
|
1416
|
+
case RegExp : return arg.test(e)
|
1417
|
+
case Function : return e.constructor == arg
|
1418
|
+
case String : return arg == (e.message || e.toString())
|
1419
|
+
}
|
1420
1420
|
}
|
1421
|
+
return message ? assert(expected) && assert(message) :
|
1422
|
+
expected ? assert(expected) :
|
1423
|
+
true
|
1421
1424
|
}
|
1422
1425
|
}, message : function(actual, expected, negate) {
|
1423
|
-
// TODO:
|
1424
|
-
|
1425
|
-
if (expected[
|
1426
|
-
switch (expected[
|
1427
|
-
case RegExp : return 'exception matching ' + puts(expected[
|
1428
|
-
case Function : return
|
1429
|
-
case String : return 'exception of ' + puts(expected[
|
1426
|
+
// TODO: refactor when actual is not in expected [0]
|
1427
|
+
var message_for = function(i) {
|
1428
|
+
if (expected[i] == undefined) return 'exception'
|
1429
|
+
switch (expected[i].constructor) {
|
1430
|
+
case RegExp : return 'exception matching ' + puts(expected[i])
|
1431
|
+
case Function : return expected[i].name
|
1432
|
+
case String : return 'exception of ' + puts(expected[i])
|
1430
1433
|
}
|
1431
|
-
}
|
1432
|
-
|
1434
|
+
}
|
1435
|
+
if (expected[1] == Error && expected[2] == 'oh no!') {
|
1436
|
+
console.log(expected);
|
1437
|
+
}
|
1438
|
+
exception = message_for(1) + (expected[2] ? ' and ' + message_for(2) : '')
|
1439
|
+
return 'expected ' + exception + (negate ? ' not ' : '' ) +
|
1433
1440
|
' to be thrown, but ' + (this.e ? 'got ' + puts(this.e) : 'nothing was')
|
1434
1441
|
}},
|
1435
1442
|
|
data/server/server.rb
CHANGED
@@ -25,7 +25,7 @@ module JSpec
|
|
25
25
|
'close'
|
26
26
|
when /jspec/
|
27
27
|
type = 'application/javascript'
|
28
|
-
File.read File.join(JSPEC_ROOT, 'lib', request.path_info)
|
28
|
+
File.read File.join(JSPEC_ROOT, 'lib', File.basename(request.path_info))
|
29
29
|
when /\.js/
|
30
30
|
type = 'application/javascript'
|
31
31
|
File.read File.join(root, request.path_info)
|
@@ -74,7 +74,7 @@ module JSpec
|
|
74
74
|
|
75
75
|
def self.start options, spec
|
76
76
|
app = Rack::Builder.new do
|
77
|
-
server = JSpec::Server.new :browsers => options.browsers, :root =>
|
77
|
+
server = JSpec::Server.new :browsers => options.browsers, :root => '.'
|
78
78
|
server.when_finished { exit }
|
79
79
|
run server
|
80
80
|
end
|
@@ -92,7 +92,7 @@ module JSpec
|
|
92
92
|
|
93
93
|
def self.run_browsers browsers, spec
|
94
94
|
browsers.each do |name|
|
95
|
-
browser(name).open "http://localhost:4444/#{
|
95
|
+
browser(name).open "http://localhost:4444/#{spec}"
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
File without changes
|
data/spec/spec.js
CHANGED
@@ -57,6 +57,14 @@ describe 'Negative specs'
|
|
57
57
|
-{ throw 'foo' }.should.not.throw_error(/foo/)
|
58
58
|
end
|
59
59
|
|
60
|
+
it 'should fail saying constructors'
|
61
|
+
-{ throw new TypeError('oh no') }.should.throw_error(Error)
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should should fail saying multiple arg messages'
|
65
|
+
-{ throw new TypeError('oh no') }.should.throw_error(TypeError, /foo/)
|
66
|
+
end
|
67
|
+
|
60
68
|
it 'should fail with constructor name'
|
61
69
|
function Foo(){}
|
62
70
|
function Bar(){}
|
data/spec/spec.matchers.js
CHANGED
@@ -182,8 +182,8 @@ describe 'Matchers'
|
|
182
182
|
|
183
183
|
describe 'throw_error'
|
184
184
|
it 'should check if an error is thrown'
|
185
|
-
-{ throw 'error' }.
|
186
|
-
-{ return 'test' }.
|
185
|
+
-{ throw 'error' }.should.throw_error
|
186
|
+
-{ return 'test' }.should.not.throw_error
|
187
187
|
end
|
188
188
|
|
189
189
|
it 'should check if an error with a specific message is thrown'
|
@@ -198,6 +198,15 @@ describe 'Matchers'
|
|
198
198
|
-{ throw new TypeError('foo') }.should.throw_error(TypeError)
|
199
199
|
-{ throw 'foo' }.should.not.throw_error(Error)
|
200
200
|
end
|
201
|
+
|
202
|
+
it 'should check if an error with a specific constructor and message is thrown'
|
203
|
+
-{ throw new TypeError('oh no!') }.should.throw_error(TypeError, 'oh no!')
|
204
|
+
-{ throw new TypeError('oh no!') }.should.not.throw_error(TypeError, 'foo bar')
|
205
|
+
-{ throw new TypeError('oh no!') }.should.throw_error(TypeError, /oh no/)
|
206
|
+
-{ throw new TypeError('oh no!') }.should.not.throw_error(TypeError, /foo bar/)
|
207
|
+
-{ throw new TypeError('oh no!') }.should.not.throw_error(Error, 'oh no!')
|
208
|
+
-{ throw new TypeError('oh no!') }.should.not.throw_error(Error, 'foo bar')
|
209
|
+
end
|
201
210
|
end
|
202
211
|
|
203
212
|
describe 'be_an_instance_of'
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: visionmedia-jspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-18 00:00:00 -07:00
|
13
13
|
default_executable: jspec
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -61,14 +61,14 @@ files:
|
|
61
61
|
- spec/async
|
62
62
|
- spec/env.js
|
63
63
|
- spec/jquery-1.3.1.js
|
64
|
-
- spec/
|
64
|
+
- spec/spec.dom.html
|
65
65
|
- spec/spec.grammar-less.js
|
66
66
|
- spec/spec.grammar.js
|
67
|
-
- spec/spec.html
|
68
67
|
- spec/spec.jquery.js
|
69
68
|
- spec/spec.js
|
70
69
|
- spec/spec.matchers.js
|
71
70
|
- spec/spec.rhino.js
|
71
|
+
- spec/spec.server.html
|
72
72
|
- spec/spec.shared-behaviors.js
|
73
73
|
- spec/spec.utils.js
|
74
74
|
- templates/default/History.rdoc
|