teaspoon-qunit 1.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/teaspoon-qunit.rb +4 -0
- data/lib/teaspoon/qunit/assets/qunit/1.12.0.js +2212 -0
- data/lib/teaspoon/qunit/assets/qunit/1.13.0.js +2210 -0
- data/lib/teaspoon/qunit/assets/qunit/1.14.0.js +2288 -0
- data/lib/teaspoon/qunit/assets/qunit/1.15.0.js +2495 -0
- data/lib/teaspoon/qunit/assets/qunit/1.16.0.js +2819 -0
- data/lib/teaspoon/qunit/assets/qunit/1.17.1.js +2875 -0
- data/lib/teaspoon/qunit/assets/qunit/1.18.0.js +3828 -0
- data/lib/teaspoon/qunit/assets/qunit/MIT.LICENSE +21 -0
- data/lib/teaspoon/qunit/assets/teaspoon-qunit.js +1529 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit.coffee +19 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/initialize.coffee +11 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html.coffee +20 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html/failure_view.coffee +10 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html/spec_view.coffee +21 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html/suite_view.coffee +8 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/responder.coffee +48 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/runner.coffee +12 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/spec.coffee +45 -0
- data/lib/teaspoon/qunit/assets/teaspoon/qunit/suite.coffee +16 -0
- data/lib/teaspoon/qunit/framework.rb +36 -0
- data/lib/teaspoon/qunit/templates/test_helper.coffee +29 -0
- data/lib/teaspoon/qunit/templates/test_helper.js +30 -0
- data/lib/teaspoon/qunit/version.rb +5 -0
- data/spec/console_spec.rb +75 -0
- data/spec/installation_spec.rb +35 -0
- data/spec/integration_spec.rb +73 -0
- data/spec/spec_helper.rb +11 -0
- data/test/javascripts/integration/_implementation.coffee +1 -0
- data/test/javascripts/integration/first_integration.coffee +14 -0
- data/test/javascripts/integration/second_integration.coffee +6 -0
- data/test/javascripts/integration/test_helper.coffee +9 -0
- data/test/javascripts/qunit/fixture_test.coffee +10 -0
- data/test/javascripts/qunit/reporters/console_test.coffee +3 -0
- data/test/javascripts/qunit/reporters/html/failure_view_test.coffee +3 -0
- data/test/javascripts/qunit/reporters/html/spec_view_test.coffee +3 -0
- data/test/javascripts/qunit/reporters/html/suite_view_test.coffee +3 -0
- data/test/javascripts/qunit/reporters/html_test.coffee +3 -0
- data/test/javascripts/qunit/responder_test.coffee +153 -0
- data/test/javascripts/qunit/runner_test.coffee +24 -0
- data/test/javascripts/qunit/spec_test.coffee +53 -0
- data/test/javascripts/qunit/suite_test.coffee +10 -0
- data/test/javascripts/test_helper.coffee +4 -0
- data/test/teaspoon_env.rb +12 -0
- metadata +124 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
require_relative "./spec_helper"
|
2
|
+
|
3
|
+
feature "Running in the browser", browser: true do
|
4
|
+
before do
|
5
|
+
path = File.expand_path("../../test/javascripts", __FILE__)
|
6
|
+
set_teaspoon_suite do |c|
|
7
|
+
c.use_framework :qunit
|
8
|
+
c.matcher = "#{path}/**/*_integration.{js,js.coffee,coffee}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "when on the suites page" do
|
13
|
+
it "lists the suites" do
|
14
|
+
visit "/teaspoon"
|
15
|
+
|
16
|
+
within("#teaspoon-suite-list") do
|
17
|
+
expect(page).to have_text("default")
|
18
|
+
expect(page).to have_text("first_integration.js")
|
19
|
+
expect(page).to have_text("second_integration.js")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "when running specs" do
|
25
|
+
it "generates the expected results" do
|
26
|
+
visit "/teaspoon/default"
|
27
|
+
|
28
|
+
within("#teaspoon-progress") do
|
29
|
+
expect(find("em")).to have_text("100%")
|
30
|
+
end
|
31
|
+
|
32
|
+
within("#teaspoon-stats") do
|
33
|
+
expect(find("li:nth-child(1)")).to have_text("passes: 2")
|
34
|
+
expect(find("li:nth-child(2)")).to have_text("failures: 3")
|
35
|
+
expect(find("li:nth-child(3)")).to have_text("skipped: 0")
|
36
|
+
end
|
37
|
+
|
38
|
+
within("#teaspoon-report-failures") do
|
39
|
+
expect(find("li.spec:nth-child(1)")).
|
40
|
+
to have_text("global failure TypeError: foo is not a function")
|
41
|
+
expect(find("li.spec:nth-child(2)")).
|
42
|
+
to have_text("Integration tests allows failing specs fails correctly")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
it "allows toggling the progress indicator" do
|
47
|
+
visit "/teaspoon/default"
|
48
|
+
|
49
|
+
find("#teaspoon-display-progress").click
|
50
|
+
expect(page).not_to have_text("100%")
|
51
|
+
|
52
|
+
find("#teaspoon-display-progress").click
|
53
|
+
expect(page).to have_text("100%")
|
54
|
+
end
|
55
|
+
|
56
|
+
it "allows toggling full reports" do
|
57
|
+
visit "/teaspoon/default"
|
58
|
+
|
59
|
+
expect(page).not_to have_selector("#teaspoon-report-all")
|
60
|
+
|
61
|
+
find("#teaspoon-build-full-report").click
|
62
|
+
text = find("#teaspoon-report-all").text
|
63
|
+
expect(text).to include("global failure")
|
64
|
+
expect(text).to include("Integration tests allows failing specs")
|
65
|
+
expect(text).to include("allows erroring specs")
|
66
|
+
expect(text).to include("allows passing specs")
|
67
|
+
expect(text).to include("Another top level integration test allows passing specs")
|
68
|
+
|
69
|
+
find("#teaspoon-build-full-report").click
|
70
|
+
expect(page).not_to have_selector("#teaspoon-report-all")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require "teaspoon-devkit"
|
2
|
+
|
3
|
+
# Set the path for our teaspoon_env.
|
4
|
+
# This is used within the dummy app, and allows us to tailor the teasooon
|
5
|
+
# configuration to our specific needs.
|
6
|
+
ENV["TEASPOON_ENV"] = File.expand_path("../../test/teaspoon_env.rb", __FILE__)
|
7
|
+
|
8
|
+
# Require the teaspoon-devkit spec_helper.
|
9
|
+
# This does several things, likes gives us a dummy application, capybara, aruba
|
10
|
+
# and other spec support libraries.
|
11
|
+
require Teaspoon::SPEC_HELPER
|
@@ -0,0 +1 @@
|
|
1
|
+
implementation = -> 'foo'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#= require integration/test_helper
|
2
|
+
|
3
|
+
module "Integration tests"
|
4
|
+
|
5
|
+
test "allows failing specs", ->
|
6
|
+
ok(true == false, "fails correctly")
|
7
|
+
|
8
|
+
test "allows erroring specs", ->
|
9
|
+
# todo: calling foo() isn't really possible as it stops the suite
|
10
|
+
ok(true == false, "errors correctly")
|
11
|
+
|
12
|
+
test "allows passing specs", ->
|
13
|
+
console.log('it can log to the console')
|
14
|
+
ok(true == true)
|
@@ -0,0 +1,10 @@
|
|
1
|
+
fixture.preload("fixture.html", "fixture.json") # make the actual requests for the files
|
2
|
+
module "Using fixtures",
|
3
|
+
setup: ->
|
4
|
+
fixture.set("<h2>Another Title</h2>") # create some markup manually
|
5
|
+
@fixtures = fixture.load("fixture.html", "fixture.json", true) # append these fixtures
|
6
|
+
|
7
|
+
test "loads fixtures", ->
|
8
|
+
ok(document.getElementById("fixture_view").tagName == "DIV", "is in the dom")
|
9
|
+
ok(@fixtures[0] == fixture.el, "has return values for the el") # the element is available as a return value and through fixture.el
|
10
|
+
ok(@fixtures[1].title == fixture.json[0].title, "has return values for json") # the json for json fixtures is returned, and available in fixture.json
|
@@ -0,0 +1,153 @@
|
|
1
|
+
module "Teaspoon.Qunit.Responder",
|
2
|
+
setup: ->
|
3
|
+
@beginDetails =
|
4
|
+
totalTests: 42
|
5
|
+
@doneDetails =
|
6
|
+
failed: 20
|
7
|
+
passed: 22
|
8
|
+
total: 42
|
9
|
+
runtime: 999
|
10
|
+
@moduleStartedDetails =
|
11
|
+
name: "module1"
|
12
|
+
@moduleDoneDetails =
|
13
|
+
name: "module1"
|
14
|
+
failed: 20
|
15
|
+
passed: 22
|
16
|
+
total: 42
|
17
|
+
runtime: 999
|
18
|
+
@testStartedDetails =
|
19
|
+
name: "test1"
|
20
|
+
module: "module1"
|
21
|
+
@testDoneDetails =
|
22
|
+
name: "test1"
|
23
|
+
module: "module1"
|
24
|
+
failed: 20
|
25
|
+
passed: 22
|
26
|
+
total: 42
|
27
|
+
runtime: 999
|
28
|
+
@logDetails =
|
29
|
+
name: "test1"
|
30
|
+
module: "module1"
|
31
|
+
result: true
|
32
|
+
message: "1 == 1"
|
33
|
+
|
34
|
+
@qunit =
|
35
|
+
begin: ->
|
36
|
+
done: ->
|
37
|
+
moduleStart: ->
|
38
|
+
moduleDone: ->
|
39
|
+
testStart: ->
|
40
|
+
testDone: ->
|
41
|
+
log: ->
|
42
|
+
@reporter =
|
43
|
+
reportRunnerStarting: ->
|
44
|
+
reportRunnerResults: ->
|
45
|
+
reportSuiteStarting: ->
|
46
|
+
reportSuiteResults: ->
|
47
|
+
reportSpecStarting: ->
|
48
|
+
reportSpecResults: ->
|
49
|
+
@responder = new Teaspoon.Qunit.Responder(@qunit, @reporter)
|
50
|
+
|
51
|
+
|
52
|
+
test "constructor sets up test callbacks", ->
|
53
|
+
sinon.stub(@qunit, "done")
|
54
|
+
sinon.stub(@qunit, "moduleStart")
|
55
|
+
sinon.stub(@qunit, "moduleDone")
|
56
|
+
sinon.stub(@qunit, "testDone")
|
57
|
+
sinon.stub(@qunit, "log")
|
58
|
+
|
59
|
+
responder = new Teaspoon.Qunit.Responder(@qunit, @reporter)
|
60
|
+
|
61
|
+
ok(@qunit.done.calledWith(responder.runnerDone), "done hook was established")
|
62
|
+
ok(@qunit.moduleStart.calledWith(responder.suiteStarted), "moduleStart hook was established")
|
63
|
+
ok(@qunit.moduleDone.calledWith(responder.suiteDone), "moduleDone hook was established")
|
64
|
+
ok(@qunit.testDone.calledWith(responder.specDone), "testDone hook was established")
|
65
|
+
ok(@qunit.log.calledWith(responder.assertionDone), "log hook was established")
|
66
|
+
|
67
|
+
|
68
|
+
test "constructor reports the runner starting if QUnit version is <= 1.15.0", ->
|
69
|
+
sinon.stub(Teaspoon.Qunit, "rawVersion", -> "0.15.0")
|
70
|
+
sinon.stub(@qunit, "begin")
|
71
|
+
sinon.stub(@reporter, "reportRunnerStarting")
|
72
|
+
|
73
|
+
new Teaspoon.Qunit.Responder(@qunit, @reporter)
|
74
|
+
|
75
|
+
ok(!@qunit.begin.called, "begin hook was not established")
|
76
|
+
ok(@reporter.reportRunnerStarting.calledWith(total: null), "reportRunnerStarting was called")
|
77
|
+
|
78
|
+
Teaspoon.Qunit.rawVersion.restore()
|
79
|
+
|
80
|
+
|
81
|
+
test "constructor sets up the begin callback if QUnit version is >= 1.16.0", ->
|
82
|
+
sinon.stub(Teaspoon.Qunit, "rawVersion", -> "0.16.0")
|
83
|
+
sinon.stub(@qunit, "begin")
|
84
|
+
sinon.stub(@reporter, "reportRunnerStarting")
|
85
|
+
|
86
|
+
responder = new Teaspoon.Qunit.Responder(@qunit, @reporter)
|
87
|
+
|
88
|
+
ok(@qunit.begin.calledWith(responder.runnerStarted), "begin hook was established")
|
89
|
+
ok(!@reporter.reportRunnerStarting.called, "reportRunnerStarting was not called")
|
90
|
+
|
91
|
+
Teaspoon.Qunit.rawVersion.restore()
|
92
|
+
|
93
|
+
|
94
|
+
test "QUnit.begin reports the runner starting", ->
|
95
|
+
sinon.stub(@reporter, "reportRunnerStarting")
|
96
|
+
|
97
|
+
@responder.runnerStarted(@beginDetails)
|
98
|
+
|
99
|
+
ok(@reporter.reportRunnerStarting.calledWith(total: 42), "reportRunnerStarting was called")
|
100
|
+
|
101
|
+
|
102
|
+
test "QUnit.done reports the runner finishing", ->
|
103
|
+
sinon.stub(@reporter, "reportRunnerResults")
|
104
|
+
|
105
|
+
@responder.runnerDone(@doneDetails)
|
106
|
+
|
107
|
+
ok(@reporter.reportRunnerResults.calledWith(@doneDetails), "reportRunnerResults was called")
|
108
|
+
|
109
|
+
|
110
|
+
test "QUnit.moduleStart reports the suite starting", ->
|
111
|
+
sinon.stub(@reporter, "reportSuiteStarting")
|
112
|
+
|
113
|
+
@responder.suiteStarted(@moduleStartedDetails)
|
114
|
+
|
115
|
+
suiteArg = @reporter.reportSuiteStarting.args[0][0]
|
116
|
+
ok(suiteArg instanceof Teaspoon.Qunit.Suite, "a suite instance is passed")
|
117
|
+
equal(suiteArg.description, "module1", "the suite has a description")
|
118
|
+
|
119
|
+
|
120
|
+
test "QUnit.moduleDone reports the suite finishing", ->
|
121
|
+
sinon.stub(@reporter, "reportSuiteResults")
|
122
|
+
|
123
|
+
@responder.suiteDone(@moduleDoneDetails)
|
124
|
+
|
125
|
+
suiteArg = @reporter.reportSuiteResults.args[0][0]
|
126
|
+
ok(suiteArg instanceof Teaspoon.Qunit.Suite, "a suite instance is passed")
|
127
|
+
equal(suiteArg.description, "module1", "the suite has a description")
|
128
|
+
|
129
|
+
|
130
|
+
test "QUnit.testDone reports the spec starting and finishing", ->
|
131
|
+
sinon.stub(@reporter, "reportSpecStarting")
|
132
|
+
sinon.stub(@reporter, "reportSpecResults")
|
133
|
+
|
134
|
+
@responder.specDone(@testDoneDetails)
|
135
|
+
|
136
|
+
specArg = @reporter.reportSpecStarting.args[0][0]
|
137
|
+
ok(specArg instanceof Teaspoon.Qunit.Spec, "a test instance is passed")
|
138
|
+
ok(/test1/.test(specArg.description), "the test has a description")
|
139
|
+
|
140
|
+
specArg = @reporter.reportSpecResults.args[0][0]
|
141
|
+
ok(specArg instanceof Teaspoon.Qunit.Spec, "a test instance is passed")
|
142
|
+
ok(/test1/.test(specArg.description), "the test has a description")
|
143
|
+
|
144
|
+
|
145
|
+
test "QUnit.testDone associates accumulated assertions", ->
|
146
|
+
sinon.stub(@reporter, "reportSpecResults")
|
147
|
+
|
148
|
+
@responder.assertionDone(@logDetails)
|
149
|
+
@responder.specDone(@testDoneDetails)
|
150
|
+
|
151
|
+
specArg = @reporter.reportSpecResults.args[0][0]
|
152
|
+
equal(specArg.spec.assertions.length, 1, "reportSpecResults was called with one assertion")
|
153
|
+
equal(specArg.spec.assertions[0], @logDetails, "reportSpecResults was called with reported assertions")
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module "Teaspoon.Qunit.Runner",
|
2
|
+
setup: ->
|
3
|
+
QUnit.start = sinon.spy()
|
4
|
+
Teaspoon.Qunit.Runner.prototype.reportRunnerStarting = sinon.spy()
|
5
|
+
|
6
|
+
test "constructor tells QUnit to start", 1, ->
|
7
|
+
new Teaspoon.Qunit.Runner()
|
8
|
+
ok(QUnit.start.called, "QUnit.start was called")
|
9
|
+
|
10
|
+
test "#setup fetches the reporter", ->
|
11
|
+
runner = new Teaspoon.Qunit.Runner()
|
12
|
+
runner.params = {grep: "foo"}
|
13
|
+
reporter = ->
|
14
|
+
reportRunnerStarting: ->
|
15
|
+
reportRunnerResults: ->
|
16
|
+
reportSuiteStarting: ->
|
17
|
+
reportSuiteResults: ->
|
18
|
+
reportSpecStarting: ->
|
19
|
+
reportSpecResults: ->
|
20
|
+
runner.getReporter = sinon.spy(-> reporter)
|
21
|
+
|
22
|
+
runner.setup()
|
23
|
+
|
24
|
+
ok(runner.getReporter.called, "#getReporter was called")
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module "Teaspoon.Qunit.Spec",
|
2
|
+
setup: ->
|
3
|
+
@mockAssertions = [
|
4
|
+
{message: "_qunit_message1_", source: "_source1_"}
|
5
|
+
{message: "_qunit_message2_", source: "_source2_"}
|
6
|
+
{source: "_source3_", expected: 1, actual: 2}
|
7
|
+
{source: "_source4_"}
|
8
|
+
]
|
9
|
+
@mockSpec =
|
10
|
+
module: "_full qunit name_"
|
11
|
+
name: "_description_"
|
12
|
+
failed: 1
|
13
|
+
passed: 2
|
14
|
+
total: 3
|
15
|
+
viewId: 420
|
16
|
+
assertions: @mockAssertions
|
17
|
+
|
18
|
+
test "constructor", 7, ->
|
19
|
+
spec = new Teaspoon.Qunit.Spec(@mockSpec)
|
20
|
+
ok(spec.fullDescription == "_full qunit name_ _description_", "sets fullDescription")
|
21
|
+
ok(spec.description == "_description_ (1, 2, 3)", "sets description")
|
22
|
+
ok(spec.link == "?grep=_full%20qunit%20name_%3A%20_description_", "sets link")
|
23
|
+
ok(spec.parent.description == "_full qunit name_", "builds a parent suite")
|
24
|
+
ok(spec.suiteName == "_full qunit name_", "sets suiteName")
|
25
|
+
ok(spec.viewId == 420, "sets viewId")
|
26
|
+
ok(spec.pending == false, "sets pending to false") # no pending support
|
27
|
+
|
28
|
+
test "#errors", 5, ->
|
29
|
+
errors = new Teaspoon.Qunit.Spec(@mockSpec).errors()
|
30
|
+
ok(errors.length == 4, "returns the correct length array")
|
31
|
+
equal(errors[0].message, "_qunit_message1_", "the first item in the returned array is correct")
|
32
|
+
equal(errors[0].stack, "_source1_", "the first item in the returned array is correct")
|
33
|
+
equal(errors[2].message, "Expected 2 to equal 1", "a nice fallback message is provided if QUnit does not provide one")
|
34
|
+
equal(errors[3].message, "failed", "some fallback message is provided if QUnit does not provide any information")
|
35
|
+
|
36
|
+
test "#getParents", 3, ->
|
37
|
+
spec = new Teaspoon.Qunit.Spec(@mockSpec)
|
38
|
+
ok(spec.getParents().length == 1, "returns the right number of parents")
|
39
|
+
ok(spec.getParents()[0].description == "_full qunit name_", "the parent has a description")
|
40
|
+
|
41
|
+
delete(@mockSpec.module)
|
42
|
+
spec = new Teaspoon.Qunit.Spec(@mockSpec)
|
43
|
+
ok(spec.getParents().length == 0, "returns an empty array")
|
44
|
+
|
45
|
+
test "#result", 3, ->
|
46
|
+
@mockSpec.failed = 0
|
47
|
+
result = new Teaspoon.Qunit.Spec(@mockSpec).result()
|
48
|
+
ok(result.status == "passed", "sets the status to passed")
|
49
|
+
ok(result.skipped == false, "sets skipped to false") # ever skipped?
|
50
|
+
|
51
|
+
@mockSpec.failed = 1
|
52
|
+
result = new Teaspoon.Qunit.Spec(@mockSpec).result()
|
53
|
+
ok(result.status == "failed", "sets the status to failed")
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module "Teaspoon.Qunit.Suite",
|
2
|
+
setup: ->
|
3
|
+
@mockSuite = description: "_full qunit description_"
|
4
|
+
|
5
|
+
test "constructor", 4, ->
|
6
|
+
suite = new Teaspoon.Qunit.Suite(@mockSuite)
|
7
|
+
ok(suite.fullDescription == "_full qunit description_", "sets fullDescription")
|
8
|
+
ok(suite.description == "_full qunit description_", "sets description")
|
9
|
+
ok(suite.link == "?grep=_full%20qunit%20description_", "sets link")
|
10
|
+
ok(suite.parent == null, "sets parent to null") # no structure to consider
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "teaspoon-devkit"
|
2
|
+
Teaspoon.require_dummy!
|
3
|
+
|
4
|
+
Teaspoon.configure do |config|
|
5
|
+
config.asset_paths << path = File.expand_path("../javascripts", __FILE__)
|
6
|
+
config.fixture_paths << Teaspoon::FIXTURE_PATH
|
7
|
+
|
8
|
+
config.suite do |suite|
|
9
|
+
suite.use_framework :qunit, "1.18.0"
|
10
|
+
suite.matcher = "#{path}/**/*_test.{js,js.coffee,coffee}"
|
11
|
+
end
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: teaspoon-qunit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.18.0
|
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 QUnit 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-qunit.rb
|
37
|
+
- lib/teaspoon/qunit/assets/qunit/1.12.0.js
|
38
|
+
- lib/teaspoon/qunit/assets/qunit/1.13.0.js
|
39
|
+
- lib/teaspoon/qunit/assets/qunit/1.14.0.js
|
40
|
+
- lib/teaspoon/qunit/assets/qunit/1.15.0.js
|
41
|
+
- lib/teaspoon/qunit/assets/qunit/1.16.0.js
|
42
|
+
- lib/teaspoon/qunit/assets/qunit/1.17.1.js
|
43
|
+
- lib/teaspoon/qunit/assets/qunit/1.18.0.js
|
44
|
+
- lib/teaspoon/qunit/assets/qunit/MIT.LICENSE
|
45
|
+
- lib/teaspoon/qunit/assets/teaspoon-qunit.js
|
46
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit.coffee
|
47
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/initialize.coffee
|
48
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html.coffee
|
49
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html/failure_view.coffee
|
50
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html/spec_view.coffee
|
51
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/reporters/html/suite_view.coffee
|
52
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/responder.coffee
|
53
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/runner.coffee
|
54
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/spec.coffee
|
55
|
+
- lib/teaspoon/qunit/assets/teaspoon/qunit/suite.coffee
|
56
|
+
- lib/teaspoon/qunit/framework.rb
|
57
|
+
- lib/teaspoon/qunit/templates/test_helper.coffee
|
58
|
+
- lib/teaspoon/qunit/templates/test_helper.js
|
59
|
+
- lib/teaspoon/qunit/version.rb
|
60
|
+
- spec/console_spec.rb
|
61
|
+
- spec/installation_spec.rb
|
62
|
+
- spec/integration_spec.rb
|
63
|
+
- spec/spec_helper.rb
|
64
|
+
- test/javascripts/integration/_implementation.coffee
|
65
|
+
- test/javascripts/integration/first_integration.coffee
|
66
|
+
- test/javascripts/integration/second_integration.coffee
|
67
|
+
- test/javascripts/integration/test_helper.coffee
|
68
|
+
- test/javascripts/qunit/fixture_test.coffee
|
69
|
+
- test/javascripts/qunit/reporters/console_test.coffee
|
70
|
+
- test/javascripts/qunit/reporters/html/failure_view_test.coffee
|
71
|
+
- test/javascripts/qunit/reporters/html/spec_view_test.coffee
|
72
|
+
- test/javascripts/qunit/reporters/html/suite_view_test.coffee
|
73
|
+
- test/javascripts/qunit/reporters/html_test.coffee
|
74
|
+
- test/javascripts/qunit/responder_test.coffee
|
75
|
+
- test/javascripts/qunit/runner_test.coffee
|
76
|
+
- test/javascripts/qunit/spec_test.coffee
|
77
|
+
- test/javascripts/qunit/suite_test.coffee
|
78
|
+
- test/javascripts/test_helper.coffee
|
79
|
+
- test/teaspoon_env.rb
|
80
|
+
homepage: https://github.com/modeset/teaspoon
|
81
|
+
licenses:
|
82
|
+
- MIT
|
83
|
+
metadata: {}
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options: []
|
86
|
+
require_paths:
|
87
|
+
- lib
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
requirements: []
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 2.4.5
|
101
|
+
signing_key:
|
102
|
+
specification_version: 4
|
103
|
+
summary: 'Teaspoon QUnit: A Javascript test runner built on top of Rails for QUnit'
|
104
|
+
test_files:
|
105
|
+
- spec/console_spec.rb
|
106
|
+
- spec/installation_spec.rb
|
107
|
+
- spec/integration_spec.rb
|
108
|
+
- spec/spec_helper.rb
|
109
|
+
- test/javascripts/integration/_implementation.coffee
|
110
|
+
- test/javascripts/integration/first_integration.coffee
|
111
|
+
- test/javascripts/integration/second_integration.coffee
|
112
|
+
- test/javascripts/integration/test_helper.coffee
|
113
|
+
- test/javascripts/qunit/fixture_test.coffee
|
114
|
+
- test/javascripts/qunit/reporters/console_test.coffee
|
115
|
+
- test/javascripts/qunit/reporters/html/failure_view_test.coffee
|
116
|
+
- test/javascripts/qunit/reporters/html/spec_view_test.coffee
|
117
|
+
- test/javascripts/qunit/reporters/html/suite_view_test.coffee
|
118
|
+
- test/javascripts/qunit/reporters/html_test.coffee
|
119
|
+
- test/javascripts/qunit/responder_test.coffee
|
120
|
+
- test/javascripts/qunit/runner_test.coffee
|
121
|
+
- test/javascripts/qunit/spec_test.coffee
|
122
|
+
- test/javascripts/qunit/suite_test.coffee
|
123
|
+
- test/javascripts/test_helper.coffee
|
124
|
+
- test/teaspoon_env.rb
|