teaspoon 0.9.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +141 -0
- data/README.md +9 -19
- data/{vendor → app}/assets/javascripts/support/bind-poly.js +0 -0
- data/{vendor → app}/assets/javascripts/support/sinon.js +0 -0
- data/app/assets/javascripts/teaspoon-filterer.js +55 -0
- data/app/assets/javascripts/teaspoon/error.coffee +5 -0
- data/app/assets/javascripts/teaspoon/{base/fixture.coffee → fixture.coffee} +15 -15
- data/app/assets/javascripts/teaspoon/{base/hook.coffee → hook.coffee} +0 -0
- data/app/assets/javascripts/teaspoon/{base/reporters → reporters}/console.coffee +18 -10
- data/app/assets/javascripts/teaspoon/{base/reporters → reporters}/html.coffee +43 -40
- data/app/assets/javascripts/teaspoon/{base/reporters → reporters}/html/base_view.coffee +0 -0
- data/app/assets/javascripts/teaspoon/{base/reporters → reporters}/html/failure_view.coffee +2 -0
- data/app/assets/javascripts/teaspoon/reporters/html/progress_view.coffee +18 -0
- data/app/assets/javascripts/teaspoon/{base/reporters/html/progress_view.coffee → reporters/html/radial_progress_view.coffee} +1 -34
- data/app/assets/javascripts/teaspoon/reporters/html/simple_progress_view.coffee +15 -0
- data/app/assets/javascripts/teaspoon/{base/reporters → reporters}/html/spec_view.coffee +5 -3
- data/app/assets/javascripts/teaspoon/{base/reporters → reporters}/html/suite_view.coffee +4 -2
- data/app/assets/javascripts/teaspoon/{base/reporters → reporters}/html/template.coffee +0 -0
- data/app/assets/javascripts/teaspoon/{base/runner.coffee → runner.coffee} +7 -3
- data/app/assets/javascripts/teaspoon/teaspoon.coffee +90 -32
- data/app/controllers/teaspoon/suite_controller.rb +5 -0
- data/app/views/teaspoon/suite/index.html.erb +1 -1
- data/lib/generators/teaspoon/install/install_generator.rb +67 -37
- data/lib/generators/teaspoon/install/templates/MISSING_FRAMEWORK +14 -0
- data/lib/generators/teaspoon/install/{POST_INSTALL → templates/POST_INSTALL} +0 -0
- data/lib/generators/teaspoon/install/templates/env.rb.tt +14 -0
- data/lib/generators/teaspoon/install/templates/{jasmine/env_comments.rb.tt → env_comments.rb.tt} +34 -43
- data/lib/tasks/teaspoon/info.rake +17 -0
- data/lib/teaspoon-devkit.rb +61 -0
- data/lib/teaspoon.rb +2 -0
- data/lib/teaspoon/command_line.rb +19 -14
- data/lib/teaspoon/configuration.rb +24 -35
- data/lib/teaspoon/console.rb +11 -21
- data/lib/teaspoon/coverage.rb +14 -7
- data/lib/teaspoon/deprecated.rb +22 -4
- data/lib/teaspoon/driver.rb +15 -0
- data/lib/teaspoon/driver/base.rb +7 -0
- data/lib/teaspoon/{drivers/capybara_webkit_driver.rb → driver/capybara_webkit.rb} +8 -5
- data/lib/teaspoon/{drivers/phantomjs_driver.rb → driver/phantomjs.rb} +8 -4
- data/lib/teaspoon/{drivers → driver}/phantomjs/runner.js +0 -0
- data/lib/teaspoon/{drivers/selenium_driver.rb → driver/selenium.rb} +11 -9
- data/lib/teaspoon/engine.rb +38 -25
- data/lib/teaspoon/environment.rb +24 -15
- data/lib/teaspoon/exceptions.rb +154 -41
- data/lib/teaspoon/exporter.rb +2 -2
- data/lib/teaspoon/formatter.rb +30 -0
- data/lib/teaspoon/{formatters → formatter}/base.rb +2 -36
- data/lib/teaspoon/{formatters/clean_formatter.rb → formatter/clean.rb} +4 -2
- data/lib/teaspoon/{formatters/documentation_formatter.rb → formatter/documentation.rb} +4 -3
- data/lib/teaspoon/{formatters/dot_formatter.rb → formatter/dot.rb} +4 -3
- data/lib/teaspoon/{formatters/json_formatter.rb → formatter/json.rb} +4 -2
- data/lib/teaspoon/{formatters/junit_formatter.rb → formatter/junit.rb} +3 -2
- data/lib/teaspoon/{formatters → formatter}/modules/report_module.rb +1 -1
- data/lib/teaspoon/{formatters/pride_formatter.rb → formatter/pride.rb} +4 -2
- data/lib/teaspoon/{formatters/rspec_html_formatter.rb → formatter/rspec_html.rb} +3 -2
- data/lib/teaspoon/{formatters/snowday_formatter.rb → formatter/snowday.rb} +3 -2
- data/lib/teaspoon/formatter/swayze_or_oprah.rb +111 -0
- data/lib/teaspoon/{formatters/tap_formatter.rb → formatter/tap.rb} +4 -2
- data/lib/teaspoon/{formatters/tap_y_formatter.rb → formatter/tap_y.rb} +3 -2
- data/lib/teaspoon/{formatters/teamcity_formatter.rb → formatter/teamcity.rb} +4 -2
- data/lib/teaspoon/framework.rb +17 -0
- data/lib/teaspoon/framework/base.rb +88 -0
- data/lib/teaspoon/instrumentation.rb +12 -2
- data/lib/teaspoon/registry.rb +47 -0
- data/lib/teaspoon/registry/has_default.rb +11 -0
- data/lib/teaspoon/runner.rb +6 -7
- data/lib/teaspoon/server.rb +2 -2
- data/lib/teaspoon/suite.rb +28 -30
- data/lib/teaspoon/utility.rb +5 -0
- data/lib/teaspoon/version.rb +1 -1
- metadata +52 -276
- data/app/assets/javascripts/teaspoon-jasmine.js +0 -1344
- data/app/assets/javascripts/teaspoon-mocha.js +0 -1350
- data/app/assets/javascripts/teaspoon-qunit.js +0 -1415
- data/app/assets/javascripts/teaspoon-teaspoon.js +0 -51
- data/app/assets/javascripts/teaspoon/base/teaspoon.coffee +0 -69
- data/app/assets/javascripts/teaspoon/jasmine.coffee +0 -119
- data/app/assets/javascripts/teaspoon/jasmine/reporters/html.coffee +0 -11
- data/app/assets/javascripts/teaspoon/mocha.coffee +0 -90
- data/app/assets/javascripts/teaspoon/mocha/reporters/console.coffee +0 -16
- data/app/assets/javascripts/teaspoon/mocha/reporters/html.coffee +0 -27
- data/app/assets/javascripts/teaspoon/qunit.coffee +0 -81
- data/app/assets/javascripts/teaspoon/qunit/reporters/console.coffee +0 -25
- data/app/assets/javascripts/teaspoon/qunit/reporters/html.coffee +0 -80
- data/lib/generators/teaspoon/install/templates/jasmine/env.rb +0 -11
- data/lib/generators/teaspoon/install/templates/jasmine/spec_helper.coffee +0 -31
- data/lib/generators/teaspoon/install/templates/jasmine/spec_helper.js +0 -31
- data/lib/generators/teaspoon/install/templates/mocha/env.rb +0 -11
- data/lib/generators/teaspoon/install/templates/mocha/env_comments.rb.tt +0 -187
- data/lib/generators/teaspoon/install/templates/mocha/spec_helper.coffee +0 -40
- data/lib/generators/teaspoon/install/templates/mocha/spec_helper.js +0 -40
- data/lib/generators/teaspoon/install/templates/qunit/env.rb +0 -11
- data/lib/generators/teaspoon/install/templates/qunit/env_comments.rb.tt +0 -187
- data/lib/generators/teaspoon/install/templates/qunit/test_helper.coffee +0 -29
- data/lib/generators/teaspoon/install/templates/qunit/test_helper.js +0 -30
- data/lib/teaspoon/drivers/base.rb +0 -10
- data/lib/teaspoon/formatters/description.rb +0 -36
- data/lib/teaspoon/formatters/swayze_or_oprah_formatter.rb +0 -101
- data/spec/dummy/Rakefile +0 -7
- data/spec/dummy/app/assets/javascripts/instrumented1.coffee +0 -1
- data/spec/dummy/app/assets/javascripts/instrumented2.coffee +0 -1
- data/spec/dummy/app/assets/javascripts/integration/integration.coffee +0 -1
- data/spec/dummy/app/assets/javascripts/integration/integration_spec.coffee +0 -32
- data/spec/dummy/app/assets/javascripts/integration/spec_helper.coffee +0 -7
- data/spec/dummy/app/assets/javascripts/specs/asset_spec.js +0 -11
- data/spec/dummy/config.ru +0 -15
- data/spec/dummy/config/application.rb +0 -29
- data/spec/dummy/config/boot.rb +0 -3
- data/spec/dummy/config/environment.rb +0 -5
- data/spec/dummy/config/environments/development.rb +0 -41
- data/spec/dummy/config/environments/production.rb +0 -79
- data/spec/dummy/config/environments/test.rb +0 -42
- data/spec/dummy/config/routes.rb +0 -2
- data/spec/dummy/config/secrets.yml +0 -22
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +0 -6
- data/spec/features/console_reporter_spec.rb +0 -62
- data/spec/features/hooks_spec.rb +0 -60
- data/spec/features/html_reporter_spec.rb +0 -81
- data/spec/features/install_generator_spec.rb +0 -54
- data/spec/features/instrumentation_spec.rb +0 -21
- data/spec/fixtures/coverage.json +0 -243
- data/spec/javascripts/fixtures/_body.html.erb +0 -1
- data/spec/javascripts/fixtures/fixture.html.haml +0 -4
- data/spec/javascripts/fixtures/fixture.json +0 -4
- data/spec/javascripts/jasmine_helper.coffee +0 -3
- data/spec/javascripts/mocha_helper.coffee +0 -4
- data/spec/javascripts/spec_helper.coffee +0 -7
- data/spec/javascripts/stylesheets/stylesheet.css.scss +0 -0
- data/spec/javascripts/support/json2.js +0 -486
- data/spec/javascripts/support/support.js.coffee +0 -0
- data/spec/javascripts/teaspoon/base/fixture_spec.coffee +0 -93
- data/spec/javascripts/teaspoon/base/reporters/console_spec.coffee +0 -162
- data/spec/javascripts/teaspoon/base/reporters/html/base_view_spec.coffee +0 -88
- data/spec/javascripts/teaspoon/base/reporters/html/failure_view_spec.coffee +0 -28
- data/spec/javascripts/teaspoon/base/reporters/html/progress_view_spec.coffee +0 -1
- data/spec/javascripts/teaspoon/base/reporters/html/spec_view_spec.coffee +0 -1
- data/spec/javascripts/teaspoon/base/reporters/html/suite_view_spec.coffee +0 -1
- data/spec/javascripts/teaspoon/base/reporters/html_spec.coffee +0 -372
- data/spec/javascripts/teaspoon/base/runner_spec.coffee +0 -58
- data/spec/javascripts/teaspoon/base/teaspoon_spec.coffee +0 -47
- data/spec/javascripts/teaspoon/jasmine/fixture_jspec.coffee +0 -13
- data/spec/javascripts/teaspoon/jasmine/models_jspec.coffee +0 -101
- data/spec/javascripts/teaspoon/jasmine/reporters/html_jspec.coffee +0 -17
- data/spec/javascripts/teaspoon/jasmine/runner_jspec.coffee +0 -59
- data/spec/javascripts/teaspoon/jasmine/spec_jspec.coffee +0 -3
- data/spec/javascripts/teaspoon/mocha/fixture_mspec.coffee +0 -12
- data/spec/javascripts/teaspoon/mocha/models_mspec.coffee +0 -93
- data/spec/javascripts/teaspoon/mocha/reporters/console_mspec.coffee +0 -24
- data/spec/javascripts/teaspoon/mocha/reporters/html_mspec.coffee +0 -41
- data/spec/javascripts/teaspoon/mocha/runner_mspec.coffee +0 -23
- data/spec/javascripts/teaspoon/mocha/spec_mspec.coffee +0 -9
- data/spec/javascripts/teaspoon/other/erb_spec.js.coffee.erb +0 -4
- data/spec/javascripts/teaspoon/phantomjs/runner_spec.coffee +0 -161
- data/spec/javascripts/turbolinks_helper.coffee +0 -2
- data/spec/spec_helper.rb +0 -25
- data/spec/support/aruba.rb +0 -15
- data/spec/teaspoon/command_line_spec.rb +0 -157
- data/spec/teaspoon/configuration_spec.rb +0 -236
- data/spec/teaspoon/console_spec.rb +0 -224
- data/spec/teaspoon/coverage_spec.rb +0 -118
- data/spec/teaspoon/drivers/base_spec.rb +0 -5
- data/spec/teaspoon/drivers/capybara_webkit_driver_spec.rb +0 -39
- data/spec/teaspoon/drivers/phantomjs_driver_spec.rb +0 -66
- data/spec/teaspoon/drivers/selenium_driver_spec.rb +0 -68
- data/spec/teaspoon/engine_spec.rb +0 -22
- data/spec/teaspoon/environment_spec.rb +0 -109
- data/spec/teaspoon/exceptions_spec.rb +0 -57
- data/spec/teaspoon/exporter_spec.rb +0 -96
- data/spec/teaspoon/formatters/base_spec.rb +0 -259
- data/spec/teaspoon/formatters/clean_formatter_spec.rb +0 -37
- data/spec/teaspoon/formatters/documentation_formatter_spec.rb +0 -127
- data/spec/teaspoon/formatters/dot_formatter_spec.rb +0 -116
- data/spec/teaspoon/formatters/json_formatter_spec.rb +0 -77
- data/spec/teaspoon/formatters/junit_formatter_spec.rb +0 -114
- data/spec/teaspoon/formatters/pride_formatter_spec.rb +0 -37
- data/spec/teaspoon/formatters/rspec_html_formatter_spec.rb +0 -107
- data/spec/teaspoon/formatters/snowday_formatter_spec.rb +0 -35
- data/spec/teaspoon/formatters/tap_formatter_spec.rb +0 -72
- data/spec/teaspoon/formatters/tap_y_formatter_spec.rb +0 -80
- data/spec/teaspoon/formatters/teamcity_formatter_spec.rb +0 -148
- data/spec/teaspoon/instrumentation_spec.rb +0 -113
- data/spec/teaspoon/result_spec.rb +0 -98
- data/spec/teaspoon/runner_spec.rb +0 -116
- data/spec/teaspoon/server_spec.rb +0 -105
- data/spec/teaspoon/suite_spec.rb +0 -138
- data/spec/teaspoon_env.rb +0 -39
- data/test/javascripts/qunit_helper.coffee +0 -3
- data/test/javascripts/teaspoon/qunit/fixture_test.coffee +0 -10
- data/test/javascripts/teaspoon/qunit/models_test.coffee +0 -66
- data/test/javascripts/teaspoon/qunit/reporters/console_test.coffee +0 -3
- data/test/javascripts/teaspoon/qunit/reporters/html/failure_view_test.coffee +0 -3
- data/test/javascripts/teaspoon/qunit/reporters/html/spec_view_test.coffee +0 -3
- data/test/javascripts/teaspoon/qunit/reporters/html/suite_view_test.coffee +0 -3
- data/test/javascripts/teaspoon/qunit/reporters/html_test.coffee +0 -3
- data/test/javascripts/teaspoon/qunit/runner_test.coffee +0 -18
- data/vendor/assets/javascripts/jasmine/1.3.1.js +0 -2602
- data/vendor/assets/javascripts/jasmine/2.0.0.js +0 -2412
- data/vendor/assets/javascripts/jasmine/MIT.LICENSE +0 -20
- data/vendor/assets/javascripts/mocha/1.10.0.js +0 -5374
- data/vendor/assets/javascripts/mocha/1.17.1.js +0 -5813
- data/vendor/assets/javascripts/mocha/MIT.LICENSE +0 -22
- data/vendor/assets/javascripts/qunit/1.12.0.js +0 -2212
- data/vendor/assets/javascripts/qunit/1.14.0.js +0 -2288
- data/vendor/assets/javascripts/qunit/MIT.LICENSE +0 -21
- data/vendor/assets/javascripts/support/chai-1.10.0.js +0 -4800
- data/vendor/assets/javascripts/support/chai-jq-0.0.7.js +0 -524
- data/vendor/assets/javascripts/support/chai.js +0 -4782
- data/vendor/assets/javascripts/support/expect.js +0 -1284
- data/vendor/assets/javascripts/support/jasmine-jquery-1.7.0.js +0 -720
- data/vendor/assets/javascripts/support/jasmine-jquery-2.0.0.js +0 -812
- data/vendor/assets/javascripts/support/sinon-chai.js +0 -126
@@ -1,51 +0,0 @@
|
|
1
|
-
(function() {
|
2
|
-
var TeaspoonInterface,
|
3
|
-
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
|
4
|
-
|
5
|
-
TeaspoonInterface = (function() {
|
6
|
-
function TeaspoonInterface() {
|
7
|
-
this.filter = bind(this.filter, this);
|
8
|
-
this.files = $u("#teaspoon-suite-list .file a");
|
9
|
-
this.input = $u("#teaspoon-filter-input")[0];
|
10
|
-
this.input.value = "";
|
11
|
-
this.input.onkeyup = this.filter;
|
12
|
-
}
|
13
|
-
|
14
|
-
TeaspoonInterface.prototype.filter = function() {
|
15
|
-
var file, i, len, ref, results;
|
16
|
-
ref = this.files;
|
17
|
-
results = [];
|
18
|
-
for (i = 0, len = ref.length; i < len; i++) {
|
19
|
-
file = ref[i];
|
20
|
-
if (LiquidMetal.score(file.innerHTML, this.input.value) > 0) {
|
21
|
-
results.push(file.parentNode.style.display = "block");
|
22
|
-
} else {
|
23
|
-
results.push(file.parentNode.style.display = "none");
|
24
|
-
}
|
25
|
-
}
|
26
|
-
return results;
|
27
|
-
};
|
28
|
-
|
29
|
-
return TeaspoonInterface;
|
30
|
-
|
31
|
-
})();
|
32
|
-
|
33
|
-
window.onload = function() {
|
34
|
-
return new TeaspoonInterface();
|
35
|
-
};
|
36
|
-
|
37
|
-
|
38
|
-
/*!
|
39
|
-
* LiquidMetal
|
40
|
-
* Copyright (c) 2009, Ryan McGeary (ryanonjavascript -[at]- mcgeary [*dot*] org)
|
41
|
-
*/
|
42
|
-
var LiquidMetal=function(){var l=0.0;var m=1.0;var n=0.8;var o=0.9;var p=0.85;return{score:function(a,b){if(b.length==0)return n;if(b.length>a.length)return l;var c=this.buildScoreArray(a,b);var d=0.0;for(var i=0;i<c.length;i++){d+=c[i]}return(d/c.length)},buildScoreArray:function(a,b){var d=new Array(a.length);var e=a.toLowerCase();var f=b.toLowerCase().split("");var g=-1;var h=false;for(var i=0;i<f.length;i++){var c=f[i];var j=e.indexOf(c,g+1);if(j<0)return fillArray(d,l);if(j==0)h=true;if(isNewWord(a,j)){d[j-1]=1;fillArray(d,p,g+1,j-1)}else if(isUpperCase(a,j)){fillArray(d,p,g+1,j)}else{fillArray(d,l,g+1,j)}d[j]=m;g=j}var k=h?o:n;fillArray(d,k,g+1);return d}};function isUpperCase(a,b){var c=a.charAt(b);return("A"<=c&&c<="Z")}function isNewWord(a,b){var c=a.charAt(b-1);return(c==" "||c=="\t")}function fillArray(a,b,c,d){c=Math.max(c||0,0);d=Math.min(d||a.length,a.length);for(var i=c;i<d;i++){a[i]=b}return a}}();
|
43
|
-
|
44
|
-
/*!
|
45
|
-
* uSelector
|
46
|
-
* author: Fabio Miranda Costa | github: fabiomcosta | twitter: @fabiomiranda | license: MIT-style license
|
47
|
-
*/
|
48
|
-
(function(h,i){var f,c,j,k,m={},e,l,q=/^\s+|\s+$/g,r=!!i.querySelectorAll,g=function(d,b,a){f=a||[];e=b||g.context;if(r)try{n(e.querySelectorAll(d));return f}catch(v){}l=e.ownerDocument||e;d=d.replace(q,"");for(c={};d=d.replace(/([#.:])?([^#.:]*)/,s););d=(b=c.id)&&c.tag||c.classes||c.pseudos||!b&&(c.classes||c.pseudos)?t:o;if(b){if(a=b=l.getElementById(b))if(!(a=l===e))a:{a=b;do if(a===e){a=true;break a}while(a=a.parentNode);a=false}a&&d([b])}else d(e.getElementsByTagName(c.tag||"*"));return f},u=function(d){if(c.tag){var b=d.nodeName.toUpperCase();if(c.tag=="*"){if(b<"@")return false}else if(b!=c.tag)return false}if(c.id&&d.getAttribute("id")!=c.id)return false;if(j=c.classes){var a=" "+d.className+" ";for(b=j.length;b--;)if(a.indexOf(" "+j[b]+" ")<0)return false}if(k=c.pseudos)for(b=k.length;b--;){a=m[k[b]];if(!(a&&a.call(g,d)))return false}return true},s=function(d,b,a){if(b)if(b=="#")c.id=a;else if(b==".")if(c.classes)c.classes.push(a);else c.classes=[a];else{if(b==":")if(c.pseudos)c.pseudos.push(a);else c.pseudos=[a]}else c.tag=a.toUpperCase();return""},p=Array.prototype.slice,n=function(d){f=p.call(d,0)},o=function(d){for(var b=0,a;a=d[b++];)f.push(a)};try{p.call(i.documentElement.childNodes,0)}catch(w){n=o}var t=function(d){for(var b=0,a;a=d[b++];)u(a)&&f.push(a)};g.pseudos=m;g.context=i;h.uSelector=g;h.$u||(h.$u=g)})(this,document);
|
49
|
-
;
|
50
|
-
|
51
|
-
}).call(this);
|
@@ -1,69 +0,0 @@
|
|
1
|
-
#= require_self
|
2
|
-
#= require teaspoon/base/runner
|
3
|
-
#= require teaspoon/base/fixture
|
4
|
-
#= require teaspoon/base/hook
|
5
|
-
#= require teaspoon/base/reporters/html
|
6
|
-
#= require teaspoon/base/reporters/console
|
7
|
-
|
8
|
-
class @Teaspoon
|
9
|
-
@defer: false
|
10
|
-
@slow: 75
|
11
|
-
@root: window.location.pathname.replace(/\/+(index\.html)?$/, "").replace(/\/[^\/]*$/, "")
|
12
|
-
@started: false
|
13
|
-
@finished: false
|
14
|
-
@Reporters: {}
|
15
|
-
@Date: Date
|
16
|
-
@location: window.location
|
17
|
-
@messages: []
|
18
|
-
|
19
|
-
@execute: ->
|
20
|
-
if Teaspoon.defer
|
21
|
-
Teaspoon.defer = false
|
22
|
-
return
|
23
|
-
Teaspoon.reload() if Teaspoon.started
|
24
|
-
Teaspoon.started = true
|
25
|
-
new Teaspoon.Runner()
|
26
|
-
|
27
|
-
|
28
|
-
@reload: ->
|
29
|
-
window.location.reload()
|
30
|
-
|
31
|
-
|
32
|
-
@onWindowLoad: (method) ->
|
33
|
-
originalOnload = window.onload
|
34
|
-
window.onload = ->
|
35
|
-
originalOnload() if originalOnload && originalOnload.call
|
36
|
-
method()
|
37
|
-
|
38
|
-
|
39
|
-
@resolveDependenciesFromParams: (all = []) ->
|
40
|
-
deps = []
|
41
|
-
return all if (paths = Teaspoon.location.search.match(/[\?&]file(\[\])?=[^&\?]*/gi)) == null
|
42
|
-
|
43
|
-
for path in paths
|
44
|
-
parts = decodeURIComponent(path.replace(/\+/g, " ")).match(/\/(.+)\.(js|js.coffee|coffee)$/i)
|
45
|
-
continue if parts == null
|
46
|
-
file = parts[1].substr(parts[1].lastIndexOf("/") + 1)
|
47
|
-
for dep in all then deps.push(dep) if dep.indexOf(file) >= 0
|
48
|
-
deps
|
49
|
-
|
50
|
-
|
51
|
-
@log: ->
|
52
|
-
Teaspoon.messages.push(arguments[0])
|
53
|
-
try console.log(arguments...)
|
54
|
-
catch e
|
55
|
-
throw new Error("Unable to use console.log for logging")
|
56
|
-
|
57
|
-
|
58
|
-
@getMessages: ->
|
59
|
-
messages = Teaspoon.messages
|
60
|
-
Teaspoon.messages = []
|
61
|
-
messages
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
class Teaspoon.Error extends Error
|
66
|
-
|
67
|
-
constructor: (message) ->
|
68
|
-
@name = "TeaspoonError"
|
69
|
-
@message = (message || "")
|
@@ -1,119 +0,0 @@
|
|
1
|
-
#= require teaspoon/base/teaspoon
|
2
|
-
#= require teaspoon/jasmine/reporters/html
|
3
|
-
|
4
|
-
unless jasmine?
|
5
|
-
throw new Teaspoon.Error('Jasmine not found -- use `suite.use_framework :jasmine` and adjust or remove the `suite.javascripts` directive.')
|
6
|
-
|
7
|
-
class Teaspoon.Runner extends Teaspoon.Runner
|
8
|
-
|
9
|
-
constructor: ->
|
10
|
-
super
|
11
|
-
env.execute()
|
12
|
-
|
13
|
-
|
14
|
-
setup: ->
|
15
|
-
env.updateInterval = 1000
|
16
|
-
|
17
|
-
# add the spec filter
|
18
|
-
if grep = @params["grep"]
|
19
|
-
env.specFilter = (spec) -> return spec.getFullName().indexOf(grep) == 0
|
20
|
-
|
21
|
-
# add the reporter and set the filter
|
22
|
-
reporter = new (@getReporter())()
|
23
|
-
env.addReporter(reporter)
|
24
|
-
|
25
|
-
# add fixture support
|
26
|
-
@addFixtureSupport()
|
27
|
-
|
28
|
-
|
29
|
-
addFixtureSupport: ->
|
30
|
-
return unless jasmine.getFixtures && @fixturePath
|
31
|
-
jasmine.getFixtures().containerId = "teaspoon-fixtures"
|
32
|
-
jasmine.getFixtures().fixturesPath = @fixturePath
|
33
|
-
jasmine.getStyleFixtures().fixturesPath = @fixturePath
|
34
|
-
jasmine.getJSONFixtures().fixturesPath = @fixturePath
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
class Teaspoon.Spec
|
39
|
-
|
40
|
-
constructor: (@spec) ->
|
41
|
-
@fullDescription = @spec.getFullName()
|
42
|
-
@description = @spec.description
|
43
|
-
@link = "?grep=#{encodeURIComponent(@fullDescription)}"
|
44
|
-
@parent = @spec.suite
|
45
|
-
@suiteName = @parent.getFullName()
|
46
|
-
@viewId = @spec.viewId
|
47
|
-
@pending = @spec.pending
|
48
|
-
|
49
|
-
|
50
|
-
errors: ->
|
51
|
-
return [] unless @spec.results
|
52
|
-
for item in @spec.results().getItems()
|
53
|
-
continue if item.passed()
|
54
|
-
{message: item.message, stack: item.trace.stack}
|
55
|
-
|
56
|
-
|
57
|
-
getParents: ->
|
58
|
-
return @parents if @parents
|
59
|
-
@parents ||= []
|
60
|
-
parent = @parent
|
61
|
-
while parent
|
62
|
-
parent = new Teaspoon.Suite(parent)
|
63
|
-
@parents.unshift(parent)
|
64
|
-
parent = parent.parent
|
65
|
-
@parents
|
66
|
-
|
67
|
-
|
68
|
-
result: ->
|
69
|
-
results = @spec.results()
|
70
|
-
status = "failed"
|
71
|
-
status = "passed" if results.passed()
|
72
|
-
status = "pending" if @spec.pending
|
73
|
-
status: status
|
74
|
-
skipped: results.skipped
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
class Teaspoon.Suite
|
79
|
-
|
80
|
-
constructor: (@suite) ->
|
81
|
-
@fullDescription = @suite.getFullName()
|
82
|
-
@description = @suite.description
|
83
|
-
@link = "?grep=#{encodeURIComponent(@fullDescription)}"
|
84
|
-
@parent = @suite.parentSuite
|
85
|
-
@viewId = @suite.viewId
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
class Teaspoon.fixture extends Teaspoon.fixture
|
90
|
-
|
91
|
-
window.fixture = @
|
92
|
-
|
93
|
-
@load: ->
|
94
|
-
args = arguments
|
95
|
-
throw "Teaspoon can't load fixtures outside of describe." unless env.currentSuite || env.currentSpec
|
96
|
-
if env.currentSuite
|
97
|
-
env.beforeEach => fixture.__super__.constructor.load.apply(@, args)
|
98
|
-
env.afterEach => @cleanup()
|
99
|
-
super
|
100
|
-
else
|
101
|
-
env.currentSpec.after => @cleanup()
|
102
|
-
super
|
103
|
-
|
104
|
-
|
105
|
-
@set: ->
|
106
|
-
args = arguments
|
107
|
-
throw "Teaspoon can't load fixtures outside of describe." unless env.currentSuite || env.currentSpec
|
108
|
-
if env.currentSuite
|
109
|
-
env.beforeEach => fixture.__super__.constructor.set.apply(@, args)
|
110
|
-
env.afterEach => @cleanup()
|
111
|
-
super
|
112
|
-
else
|
113
|
-
env.currentSpec.after => @cleanup()
|
114
|
-
super
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
# set the environment
|
119
|
-
env = jasmine.getEnv()
|
@@ -1,11 +0,0 @@
|
|
1
|
-
class Teaspoon.Reporters.HTML extends Teaspoon.Reporters.HTML
|
2
|
-
|
3
|
-
readConfig: ->
|
4
|
-
super
|
5
|
-
jasmine.CATCH_EXCEPTIONS = @config["use-catch"]
|
6
|
-
|
7
|
-
|
8
|
-
envInfo: ->
|
9
|
-
ver = jasmine.getEnv().version()
|
10
|
-
verString = [ver.major, ver.minor, ver.build].join(".")
|
11
|
-
"jasmine #{verString} revision #{ver.revision}"
|
@@ -1,90 +0,0 @@
|
|
1
|
-
#= require teaspoon/base/teaspoon
|
2
|
-
#= require teaspoon/mocha/reporters/console
|
3
|
-
#= require teaspoon/mocha/reporters/html
|
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
|
-
class Teaspoon.Runner extends Teaspoon.Runner
|
9
|
-
|
10
|
-
constructor: ->
|
11
|
-
super
|
12
|
-
env.run()
|
13
|
-
env.started = true
|
14
|
-
afterEach -> Teaspoon.fixture.cleanup()
|
15
|
-
|
16
|
-
|
17
|
-
setup: ->
|
18
|
-
# add the reporter and set the filter
|
19
|
-
reporter = @getReporter()
|
20
|
-
env.setup(reporter: reporter)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
class Teaspoon.Spec
|
25
|
-
|
26
|
-
constructor: (@spec) ->
|
27
|
-
@fullDescription = @spec.fullTitle()
|
28
|
-
@description = @spec.title
|
29
|
-
@link = "?grep=#{encodeURIComponent(@fullDescription)}"
|
30
|
-
@parent = @spec.parent
|
31
|
-
@suiteName = @parent.fullTitle()
|
32
|
-
@viewId = @spec.viewId
|
33
|
-
@pending = @spec.pending
|
34
|
-
|
35
|
-
|
36
|
-
errors: ->
|
37
|
-
return [] unless @spec.err
|
38
|
-
[@spec.err]
|
39
|
-
|
40
|
-
|
41
|
-
getParents: ->
|
42
|
-
return @parents if @parents
|
43
|
-
@parents ||= []
|
44
|
-
parent = @parent
|
45
|
-
while parent
|
46
|
-
parent = new Teaspoon.Suite(parent)
|
47
|
-
@parents.unshift(parent)
|
48
|
-
parent = parent.parent
|
49
|
-
@parents
|
50
|
-
|
51
|
-
|
52
|
-
result: ->
|
53
|
-
status = "failed"
|
54
|
-
status = "passed" if @spec.state == "passed" || @spec.state == "skipped"
|
55
|
-
status = "pending" if @spec.pending
|
56
|
-
status: status
|
57
|
-
skipped: @spec.state == "skipped"
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
class Teaspoon.Suite
|
62
|
-
|
63
|
-
constructor: (@suite) ->
|
64
|
-
@fullDescription = @suite.fullTitle()
|
65
|
-
@description = @suite.title
|
66
|
-
@link = "?grep=#{encodeURIComponent(@fullDescription)}"
|
67
|
-
@parent = if @suite.parent?.root then null else @suite.parent
|
68
|
-
@viewId = @suite.viewId
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
class Teaspoon.fixture extends Teaspoon.fixture
|
73
|
-
|
74
|
-
window.fixture = @
|
75
|
-
|
76
|
-
@load: ->
|
77
|
-
args = arguments
|
78
|
-
if env.started then super
|
79
|
-
else beforeEach => fixture.__super__.constructor.load.apply(@, args)
|
80
|
-
|
81
|
-
|
82
|
-
@set: ->
|
83
|
-
args = arguments
|
84
|
-
if env.started then super
|
85
|
-
else beforeEach => fixture.__super__.constructor.set.apply(@, args)
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
# set the environment
|
90
|
-
env = mocha.setup("bdd")
|
@@ -1,16 +0,0 @@
|
|
1
|
-
class Teaspoon.Reporters.Console extends Teaspoon.Reporters.Console
|
2
|
-
|
3
|
-
constructor: (runner) ->
|
4
|
-
super
|
5
|
-
@reportRunnerStarting(runner)
|
6
|
-
runner.on("fail", @reportSpecResults)
|
7
|
-
runner.on("test end", @reportSpecResults)
|
8
|
-
runner.on("end", @reportRunnerResults)
|
9
|
-
|
10
|
-
|
11
|
-
reportSpecResults: (spec, err) =>
|
12
|
-
if err
|
13
|
-
spec.err = err
|
14
|
-
@reportSpecResults(spec) if spec.type == "hook"
|
15
|
-
return
|
16
|
-
super
|
@@ -1,27 +0,0 @@
|
|
1
|
-
class Teaspoon.Reporters.HTML extends Teaspoon.Reporters.HTML
|
2
|
-
|
3
|
-
constructor: (runner) ->
|
4
|
-
super
|
5
|
-
@reportRunnerStarting(runner)
|
6
|
-
runner.on("fail", @reportSpecResults)
|
7
|
-
runner.on("test end", @reportSpecResults)
|
8
|
-
runner.on("end", @reportRunnerResults)
|
9
|
-
|
10
|
-
|
11
|
-
reportSpecResults: (spec, err) =>
|
12
|
-
if err
|
13
|
-
spec.err = err
|
14
|
-
@reportSpecResults(spec) if spec.type == "hook"
|
15
|
-
return
|
16
|
-
@reportSpecStarting(spec)
|
17
|
-
super
|
18
|
-
|
19
|
-
|
20
|
-
envInfo: ->
|
21
|
-
"mocha #{_mocha_version || "[unknown version]"}"
|
22
|
-
|
23
|
-
|
24
|
-
class Teaspoon.Reporters.HTML.SpecView extends Teaspoon.Reporters.HTML.SpecView
|
25
|
-
|
26
|
-
updateState: (state) ->
|
27
|
-
super(state, @spec.spec.duration)
|
@@ -1,81 +0,0 @@
|
|
1
|
-
#= require teaspoon/base/teaspoon
|
2
|
-
#= require teaspoon/qunit/reporters/console
|
3
|
-
#= require teaspoon/qunit/reporters/html
|
4
|
-
|
5
|
-
unless QUnit?
|
6
|
-
throw new Teaspoon.Error('QUnit not found -- use `suite.use_framework :qunit` and adjust or remove the `suite.javascripts` directive.')
|
7
|
-
|
8
|
-
class Teaspoon.Runner extends Teaspoon.Runner
|
9
|
-
|
10
|
-
constructor: ->
|
11
|
-
super
|
12
|
-
env.start()
|
13
|
-
|
14
|
-
|
15
|
-
setup: ->
|
16
|
-
new (@getReporter())(env)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
class Teaspoon.Spec
|
21
|
-
|
22
|
-
constructor: (@spec) ->
|
23
|
-
@fullDescription = "#{@spec.module} #{@spec.name}"
|
24
|
-
@description = "#{@spec.name} (#{@spec.failed}, #{@spec.passed}, #{@spec.total})"
|
25
|
-
@link = "?grep=#{encodeURIComponent("#{@spec.module}: #{@spec.name}")}"
|
26
|
-
@parent = if @spec.module then new Teaspoon.Suite({description: @spec.module}) else null
|
27
|
-
@suiteName = @spec.module
|
28
|
-
@viewId = @spec.viewId
|
29
|
-
@pending = false
|
30
|
-
|
31
|
-
|
32
|
-
errors: ->
|
33
|
-
return [] unless @spec.failed
|
34
|
-
for item in @spec.assertions
|
35
|
-
continue if item.result
|
36
|
-
@provideFallbackMessage(item)
|
37
|
-
{message: item.message, stack: item.source}
|
38
|
-
|
39
|
-
|
40
|
-
getParents: ->
|
41
|
-
return [] unless @parent
|
42
|
-
[@parent]
|
43
|
-
|
44
|
-
|
45
|
-
result: ->
|
46
|
-
status = "failed"
|
47
|
-
status = "passed" unless @spec.failed
|
48
|
-
status: status
|
49
|
-
skipped: false
|
50
|
-
|
51
|
-
|
52
|
-
provideFallbackMessage: (item) ->
|
53
|
-
return if item.message
|
54
|
-
|
55
|
-
if item.actual && item.expected
|
56
|
-
item.message ||= "Expected #{JSON.stringify(item.actual)} to equal #{JSON.stringify(item.expected)}"
|
57
|
-
else
|
58
|
-
item.message = 'failed'
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
class Teaspoon.Suite
|
63
|
-
|
64
|
-
constructor: (@suite) ->
|
65
|
-
@fullDescription = @suite.description
|
66
|
-
@description = @suite.description
|
67
|
-
@link = "?grep=#{encodeURIComponent(@fullDescription)}"
|
68
|
-
@parent = null
|
69
|
-
|
70
|
-
|
71
|
-
# set the environment
|
72
|
-
env = QUnit
|
73
|
-
env.config.autostart = false
|
74
|
-
env.config.altertitle = false
|
75
|
-
env.config.filter = Teaspoon.Runner.prototype.getParams()["grep"]
|
76
|
-
|
77
|
-
window.fixture = Teaspoon.fixture
|
78
|
-
originalReset = env.reset
|
79
|
-
env.reset = ->
|
80
|
-
originalReset()
|
81
|
-
Teaspoon.fixture.cleanup()
|