teaspoon-mocha 2.2.4
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 +7 -0
- data/lib/teaspoon-mocha.rb +4 -0
- data/lib/teaspoon/mocha/assets/mocha/1.10.0.js +5374 -0
- data/lib/teaspoon/mocha/assets/mocha/1.17.1.js +5813 -0
- data/lib/teaspoon/mocha/assets/mocha/1.18.2.js +5841 -0
- data/lib/teaspoon/mocha/assets/mocha/1.19.0.js +5843 -0
- data/lib/teaspoon/mocha/assets/mocha/2.0.1.js +6070 -0
- data/lib/teaspoon/mocha/assets/mocha/2.1.0.js +6299 -0
- data/lib/teaspoon/mocha/assets/mocha/2.2.4.js +6565 -0
- data/lib/teaspoon/mocha/assets/mocha/MIT.LICENSE +22 -0
- data/lib/teaspoon/mocha/assets/support/chai-1.10.0.js +4800 -0
- data/lib/teaspoon/mocha/assets/support/chai-jq-0.0.7.js +524 -0
- data/lib/teaspoon/mocha/assets/support/chai.js +4782 -0
- data/lib/teaspoon/mocha/assets/support/expect.js +1284 -0
- data/lib/teaspoon/mocha/assets/support/sinon-chai.js +126 -0
- data/lib/teaspoon/mocha/assets/teaspoon-mocha.js +1435 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha.coffee +10 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/fixture.coffee +14 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/intiialize.coffee +4 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/reporters/html.coffee +14 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/reporters/spec_view.coffee +6 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/responder.coffee +38 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/runner.coffee +16 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/spec.coffee +34 -0
- data/lib/teaspoon/mocha/assets/teaspoon/mocha/suite.coffee +8 -0
- data/lib/teaspoon/mocha/framework.rb +31 -0
- data/lib/teaspoon/mocha/templates/spec_helper.coffee +40 -0
- data/lib/teaspoon/mocha/templates/spec_helper.js +40 -0
- data/lib/teaspoon/mocha/version.rb +5 -0
- metadata +88 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
#= require teaspoon/teaspoon
|
2
|
+
#= require_self
|
3
|
+
#= require_tree ./mocha
|
4
|
+
|
5
|
+
unless mocha?
|
6
|
+
throw new Teaspoon.Error('Mocha not found -- use `suite.use_framework :mocha` and adjust or remove the `suite.javascripts` directive.')
|
7
|
+
|
8
|
+
@Teaspoon ?= {}
|
9
|
+
@Teaspoon.Mocha ?= {}
|
10
|
+
@Teaspoon.Mocha.Reporters ?= {}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#= require teaspoon/fixture
|
2
|
+
|
3
|
+
class Teaspoon.Mocha.Fixture extends Teaspoon.Fixture
|
4
|
+
|
5
|
+
@load: ->
|
6
|
+
args = arguments
|
7
|
+
if window.env.started then super
|
8
|
+
else beforeEach => fixture.__super__.constructor.load.apply(@, args)
|
9
|
+
|
10
|
+
|
11
|
+
@set: ->
|
12
|
+
args = arguments
|
13
|
+
if window.env.started then super
|
14
|
+
else beforeEach => fixture.__super__.constructor.set.apply(@, args)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#= require teaspoon/reporters/html
|
2
|
+
|
3
|
+
class Teaspoon.Mocha.Reporters.HTML extends Teaspoon.Reporters.HTML
|
4
|
+
|
5
|
+
reportSpecResults: (spec) ->
|
6
|
+
# Mocha does not report pending specs as starting, only as completed with a
|
7
|
+
# pending state. So, we need to instantiate the view for the pending spec.
|
8
|
+
if spec.pending
|
9
|
+
@reportView = new Teaspoon.Mocha.Reporters.HTML.SpecView(spec, @) if @config["build-full-report"]
|
10
|
+
super(spec)
|
11
|
+
|
12
|
+
|
13
|
+
envInfo: ->
|
14
|
+
"mocha #{_mocha_version || "[unknown version]"}"
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class Teaspoon.Mocha.Responder
|
2
|
+
|
3
|
+
constructor: (runner) ->
|
4
|
+
@reporter.reportRunnerStarting(total: runner.total)
|
5
|
+
|
6
|
+
runner.on("end", @runnerDone)
|
7
|
+
runner.on("suite", @suiteStarted)
|
8
|
+
runner.on("suite end", @suiteDone)
|
9
|
+
runner.on("test", @specStarted)
|
10
|
+
runner.on("fail", @specFailed)
|
11
|
+
runner.on("test end", @specFinished)
|
12
|
+
|
13
|
+
|
14
|
+
runnerDone: =>
|
15
|
+
@reporter.reportRunnerResults()
|
16
|
+
|
17
|
+
|
18
|
+
suiteStarted: (suite) =>
|
19
|
+
@reporter.reportSuiteStarting(new Teaspoon.Mocha.Suite(suite))
|
20
|
+
|
21
|
+
|
22
|
+
suiteDone: (suite) =>
|
23
|
+
@reporter.reportSuiteResults(new Teaspoon.Mocha.Suite(suite))
|
24
|
+
|
25
|
+
|
26
|
+
specStarted: (spec) =>
|
27
|
+
@reporter.reportSpecStarting(new Teaspoon.Mocha.Spec(spec))
|
28
|
+
|
29
|
+
|
30
|
+
specFinished: (spec) =>
|
31
|
+
spec = new Teaspoon.Mocha.Spec(spec)
|
32
|
+
@reporter.reportSpecResults(spec) unless spec.result().status == "failed"
|
33
|
+
|
34
|
+
|
35
|
+
specFailed: (spec, err) =>
|
36
|
+
spec.err = err
|
37
|
+
|
38
|
+
@reporter.reportSpecResults(new Teaspoon.Mocha.Spec(spec))
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#= require teaspoon/runner
|
2
|
+
|
3
|
+
class Teaspoon.Mocha.Runner extends Teaspoon.Runner
|
4
|
+
|
5
|
+
constructor: ->
|
6
|
+
super
|
7
|
+
window.env.run()
|
8
|
+
window.env.started = true
|
9
|
+
afterEach -> Teaspoon.Mocha.Fixture.cleanup()
|
10
|
+
|
11
|
+
|
12
|
+
setup: ->
|
13
|
+
# add the reporter and set the filter
|
14
|
+
reporter = new (@getReporter())()
|
15
|
+
Teaspoon.Mocha.Responder::reporter = reporter
|
16
|
+
window.env.setup(reporter: Teaspoon.Mocha.Responder)
|
@@ -0,0 +1,34 @@
|
|
1
|
+
class Teaspoon.Mocha.Spec
|
2
|
+
|
3
|
+
constructor: (@spec) ->
|
4
|
+
@fullDescription = @spec.fullTitle()
|
5
|
+
@description = @spec.title
|
6
|
+
@link = "?grep=#{encodeURIComponent(@fullDescription)}"
|
7
|
+
@parent = @spec.parent
|
8
|
+
@suiteName = @parent.fullTitle()
|
9
|
+
@viewId = @spec.viewId
|
10
|
+
@pending = @spec.pending
|
11
|
+
|
12
|
+
|
13
|
+
errors: ->
|
14
|
+
return [] unless @spec.err
|
15
|
+
[@spec.err]
|
16
|
+
|
17
|
+
|
18
|
+
getParents: ->
|
19
|
+
return @parents if @parents
|
20
|
+
@parents ||= []
|
21
|
+
parent = @parent
|
22
|
+
while parent
|
23
|
+
parent = new Teaspoon.Mocha.Suite(parent)
|
24
|
+
@parents.unshift(parent)
|
25
|
+
parent = parent.parent
|
26
|
+
@parents
|
27
|
+
|
28
|
+
|
29
|
+
result: ->
|
30
|
+
status = "failed"
|
31
|
+
status = "passed" if @spec.state == "passed" || @spec.state == "skipped"
|
32
|
+
status = "pending" if @spec.pending
|
33
|
+
status: status
|
34
|
+
skipped: @spec.state == "skipped"
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class Teaspoon.Mocha.Suite
|
2
|
+
|
3
|
+
constructor: (@suite) ->
|
4
|
+
@fullDescription = @suite.fullTitle()
|
5
|
+
@description = @suite.title
|
6
|
+
@link = "?grep=#{encodeURIComponent(@fullDescription)}"
|
7
|
+
@parent = if @suite.parent?.root then null else @suite.parent
|
8
|
+
@viewId = @suite.viewId
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "teaspoon/framework/base"
|
2
|
+
|
3
|
+
module Teaspoon
|
4
|
+
module Mocha
|
5
|
+
class Framework < Teaspoon::Framework::Base
|
6
|
+
# specify the framework name
|
7
|
+
framework_name :mocha
|
8
|
+
|
9
|
+
# register standard versions
|
10
|
+
versions = ["1.10.0", "1.17.1", "1.18.2", "1.19.0", "2.0.1", "2.1.0", "2.2.4"]
|
11
|
+
|
12
|
+
versions.each do |version|
|
13
|
+
register_version version, "mocha/#{version}.js",
|
14
|
+
dependencies: ["teaspoon-mocha.js"],
|
15
|
+
dev_deps: ["teaspoon/mocha.js"]
|
16
|
+
end
|
17
|
+
|
18
|
+
# add asset paths
|
19
|
+
add_asset_path File.expand_path("../../../teaspoon/mocha/assets", __FILE__)
|
20
|
+
|
21
|
+
# add custom install templates
|
22
|
+
add_template_path File.expand_path("../../../teaspoon/mocha/templates", __FILE__)
|
23
|
+
|
24
|
+
# specify where to install, and add installation steps.
|
25
|
+
install_to "spec" do
|
26
|
+
ext = options[:coffee] ? ".coffee" : ".js"
|
27
|
+
copy_file "spec_helper#{ext}", "spec/javascripts/spec_helper#{ext}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Teaspoon includes some support files, but you can use anything from your own support path too.
|
2
|
+
# require support/expect
|
3
|
+
# require support/sinon
|
4
|
+
# require support/chai
|
5
|
+
# require support/chai-jq-0.0.7
|
6
|
+
# require support/your-support-file
|
7
|
+
#
|
8
|
+
# PhantomJS (Teaspoons default driver) doesn't have support for Function.prototype.bind, which has caused confusion.
|
9
|
+
# Use this polyfill to avoid the confusion.
|
10
|
+
#= require support/bind-poly
|
11
|
+
#
|
12
|
+
# You can require your own javascript files here. By default this will include everything in application, however you
|
13
|
+
# may get better load performance if you require the specific files that are being used in the spec that tests them.
|
14
|
+
#= require application
|
15
|
+
#
|
16
|
+
# Deferring execution
|
17
|
+
# If you're using CommonJS, RequireJS or some other asynchronous library you can defer execution. Call
|
18
|
+
# Teaspoon.execute() after everything has been loaded. Simple example of a timeout:
|
19
|
+
#
|
20
|
+
# Teaspoon.defer = true
|
21
|
+
# setTimeout(Teaspoon.execute, 1000)
|
22
|
+
#
|
23
|
+
# Matching files
|
24
|
+
# By default Teaspoon will look for files that match _spec.{js,js.coffee,.coffee}. Add a filename_spec.js file in your
|
25
|
+
# spec path and it'll be included in the default suite automatically. If you want to customize suites, check out the
|
26
|
+
# configuration in teaspoon_env.rb
|
27
|
+
#
|
28
|
+
# Manifest
|
29
|
+
# If you'd rather require your spec files manually (to control order for instance) you can disable the suite matcher in
|
30
|
+
# the configuration and use this file as a manifest.
|
31
|
+
#
|
32
|
+
# For more information: http://github.com/modeset/teaspoon
|
33
|
+
#
|
34
|
+
# Chai
|
35
|
+
# If you're using Chai, you'll probably want to initialize your preferred assertion style. You can read more about Chai
|
36
|
+
# at: http://chaijs.com/guide/styles
|
37
|
+
#
|
38
|
+
# window.assert = chai.assert
|
39
|
+
# window.expect = chai.expect
|
40
|
+
# window.should = chai.should()
|
@@ -0,0 +1,40 @@
|
|
1
|
+
// Teaspoon includes some support files, but you can use anything from your own support path too.
|
2
|
+
// require support/expect
|
3
|
+
// require support/sinon
|
4
|
+
// require support/chai
|
5
|
+
// require support/chai-jq-0.0.7
|
6
|
+
// require support/your-support-file
|
7
|
+
//
|
8
|
+
// PhantomJS (Teaspoons default driver) doesn't have support for Function.prototype.bind, which has caused confusion.
|
9
|
+
// Use this polyfill to avoid the confusion.
|
10
|
+
//= require support/bind-poly
|
11
|
+
//
|
12
|
+
// You can require your own javascript files here. By default this will include everything in application, however you
|
13
|
+
// may get better load performance if you require the specific files that are being used in the spec that tests them.
|
14
|
+
//= require application
|
15
|
+
//
|
16
|
+
// Deferring execution
|
17
|
+
// If you're using CommonJS, RequireJS or some other asynchronous library you can defer execution. Call
|
18
|
+
// Teaspoon.execute() after everything has been loaded. Simple example of a timeout:
|
19
|
+
//
|
20
|
+
// Teaspoon.defer = true
|
21
|
+
// setTimeout(Teaspoon.execute, 1000)
|
22
|
+
//
|
23
|
+
// Matching files
|
24
|
+
// By default Teaspoon will look for files that match _spec.{js,js.coffee,.coffee}. Add a filename_spec.js file in your
|
25
|
+
// spec path and it'll be included in the default suite automatically. If you want to customize suites, check out the
|
26
|
+
// configuration in teaspoon_env.rb
|
27
|
+
//
|
28
|
+
// Manifest
|
29
|
+
// If you'd rather require your spec files manually (to control order for instance) you can disable the suite matcher in
|
30
|
+
// the configuration and use this file as a manifest.
|
31
|
+
//
|
32
|
+
// For more information: http://github.com/modeset/teaspoon
|
33
|
+
//
|
34
|
+
// Chai
|
35
|
+
// If you're using Chai, you'll probably want to initialize your preferred assertion style. You can read more about Chai
|
36
|
+
// at: http://chaijs.com/guide/styles
|
37
|
+
//
|
38
|
+
// window.assert = chai.assert;
|
39
|
+
// window.expect = chai.expect;
|
40
|
+
// window.should = chai.should();
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: teaspoon-mocha
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.2.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- jejacks0n
|
8
|
+
- mikepack
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-05-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: teaspoon
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 1.0.0
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 1.0.0
|
28
|
+
description: Run Mocha specs in the browser or headless with PhantomJS, Selenium Webdriver,
|
29
|
+
or Capybara Webkit
|
30
|
+
email:
|
31
|
+
- info@modeset.com
|
32
|
+
executables: []
|
33
|
+
extensions: []
|
34
|
+
extra_rdoc_files: []
|
35
|
+
files:
|
36
|
+
- lib/teaspoon-mocha.rb
|
37
|
+
- lib/teaspoon/mocha/assets/mocha/1.10.0.js
|
38
|
+
- lib/teaspoon/mocha/assets/mocha/1.17.1.js
|
39
|
+
- lib/teaspoon/mocha/assets/mocha/1.18.2.js
|
40
|
+
- lib/teaspoon/mocha/assets/mocha/1.19.0.js
|
41
|
+
- lib/teaspoon/mocha/assets/mocha/2.0.1.js
|
42
|
+
- lib/teaspoon/mocha/assets/mocha/2.1.0.js
|
43
|
+
- lib/teaspoon/mocha/assets/mocha/2.2.4.js
|
44
|
+
- lib/teaspoon/mocha/assets/mocha/MIT.LICENSE
|
45
|
+
- lib/teaspoon/mocha/assets/support/chai-1.10.0.js
|
46
|
+
- lib/teaspoon/mocha/assets/support/chai-jq-0.0.7.js
|
47
|
+
- lib/teaspoon/mocha/assets/support/chai.js
|
48
|
+
- lib/teaspoon/mocha/assets/support/expect.js
|
49
|
+
- lib/teaspoon/mocha/assets/support/sinon-chai.js
|
50
|
+
- lib/teaspoon/mocha/assets/teaspoon-mocha.js
|
51
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha.coffee
|
52
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/fixture.coffee
|
53
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/intiialize.coffee
|
54
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/reporters/html.coffee
|
55
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/reporters/spec_view.coffee
|
56
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/responder.coffee
|
57
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/runner.coffee
|
58
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/spec.coffee
|
59
|
+
- lib/teaspoon/mocha/assets/teaspoon/mocha/suite.coffee
|
60
|
+
- lib/teaspoon/mocha/framework.rb
|
61
|
+
- lib/teaspoon/mocha/templates/spec_helper.coffee
|
62
|
+
- lib/teaspoon/mocha/templates/spec_helper.js
|
63
|
+
- lib/teaspoon/mocha/version.rb
|
64
|
+
homepage: https://github.com/modeset/teaspoon
|
65
|
+
licenses:
|
66
|
+
- MIT
|
67
|
+
metadata: {}
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
70
|
+
require_paths:
|
71
|
+
- lib
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
requirements: []
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 2.4.5
|
85
|
+
signing_key:
|
86
|
+
specification_version: 4
|
87
|
+
summary: 'Teaspoon Mocha: A Javascript test runner built on top of Rails for Mocha'
|
88
|
+
test_files: []
|