teaspoon-qunit 1.18.0
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-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
|