teabag 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +40 -13
- data/app/assets/javascripts/teabag-jasmine.js +75 -38
- data/lib/generators/teabag/install/templates/env.rb +3 -2
- data/lib/teabag/command_line.rb +4 -0
- data/lib/teabag/configuration.rb +3 -2
- data/lib/teabag/formatters/base_formatter.rb +6 -1
- data/lib/teabag/formatters/tap_formatter.rb +47 -0
- data/lib/teabag/instrumentation.rb +1 -1
- data/lib/teabag/runner.rb +11 -1
- data/lib/teabag/server.rb +2 -1
- data/lib/teabag/version.rb +1 -1
- data/spec/dummy/log/development.log +11151 -0
- data/spec/dummy/log/test.log +1359 -0
- data/spec/dummy/tmp/cache/assets/C35/A30/sprockets%2F29906bf540f7d2e081088494b2554989 +0 -0
- data/spec/dummy/tmp/cache/assets/C4E/9B0/sprockets%2Fa807397434c9262c3d62da3e91152184 +0 -0
- data/spec/dummy/tmp/cache/assets/C59/250/sprockets%2Fa80d3fe493d2476e58c4323996064512 +0 -0
- data/spec/dummy/tmp/cache/assets/C75/D50/sprockets%2F5302968a40e08d2c011aa38666d273f6 +0 -0
- data/spec/dummy/tmp/cache/assets/C78/F80/sprockets%2F9161622ddd251097a4ab816b8220984c +0 -0
- data/spec/dummy/tmp/cache/assets/C7A/EC0/sprockets%2F5c16e4214f5662e1b27932a57c43491b +0 -0
- data/spec/dummy/tmp/cache/assets/C89/700/sprockets%2F259935a7704fef0069303ea63fa89408 +0 -0
- data/spec/dummy/tmp/cache/assets/C8A/460/sprockets%2F77bffd9959420103906722b404ae8d59 +0 -0
- data/spec/dummy/tmp/cache/assets/C91/FA0/sprockets%2F2eb81283f5789ae91a69344552db3856 +0 -0
- data/spec/dummy/tmp/cache/assets/C9D/E90/sprockets%2F3045c9533f179d3e1c805d163ed002a0 +0 -0
- data/spec/dummy/tmp/cache/assets/CA6/DF0/sprockets%2F7da83747ce56e49393b6b8726587f846 +0 -0
- data/spec/dummy/tmp/cache/assets/CA9/C40/sprockets%2F932b7e2cd1e067289ab51190800814df +0 -0
- data/spec/dummy/tmp/cache/assets/CAA/0C0/sprockets%2F057b0ce384f16d9202ae84473436cc35 +0 -0
- data/spec/dummy/tmp/cache/assets/CAD/410/sprockets%2F651414e5c7e86f05c5108dc71626b25c +0 -0
- data/spec/dummy/tmp/cache/assets/CAF/0F0/sprockets%2F6000e67cf3f2377f860c24da7c819701 +0 -0
- data/spec/dummy/tmp/cache/assets/CB0/700/sprockets%2F006af6bf0f6b55777b03c4615c853881 +0 -0
- data/spec/dummy/tmp/cache/assets/CB1/B50/sprockets%2F44b5b96ee7652d66a217a1756431c4a8 +0 -0
- data/spec/dummy/tmp/cache/assets/CB5/E60/sprockets%2Ff0f2b623b42840839e37f5ed055f5482 +0 -0
- data/spec/dummy/tmp/cache/assets/CBB/FA0/sprockets%2F74922109263bdc965b2e9567eec6d154 +0 -0
- data/spec/dummy/tmp/cache/assets/CBD/AF0/sprockets%2Fd687ec33822256e9444e8cd04f1b4873 +0 -0
- data/spec/dummy/tmp/cache/assets/CBF/630/sprockets%2F707d2db81468088470d476abff35388d +0 -0
- data/spec/dummy/tmp/cache/assets/CC2/EC0/sprockets%2F76bf80cb571ca530357f78db78167866 +0 -0
- data/spec/dummy/tmp/cache/assets/CCE/C50/sprockets%2Fe12774c2fea852112414bb379a71f31a +0 -0
- data/spec/dummy/tmp/cache/assets/CD3/460/sprockets%2F7f3f6802b0b309ed142d0b671c9640c4 +0 -0
- data/spec/dummy/tmp/cache/assets/CD7/A40/sprockets%2Fa1c29a904e41680053e79b63a14cfa58 +0 -0
- data/spec/dummy/tmp/cache/assets/CD9/DD0/sprockets%2Fe5774759168a731da1c1149ecf0e1b03 +0 -0
- data/spec/dummy/tmp/cache/assets/CE0/090/sprockets%2F48d5d35ae87d0723318b8bc257fa2237 +0 -0
- data/spec/dummy/tmp/cache/assets/CE3/1F0/sprockets%2Fe69a515d3a9d14c669be8871012a7d07 +0 -0
- data/spec/dummy/tmp/cache/assets/CE6/270/sprockets%2F2c98152560d18470fec8cf4c6829b4d0 +0 -0
- data/spec/dummy/tmp/cache/assets/CE6/7C0/sprockets%2Fa03a2c86ce6724be8542295e1cf24798 +0 -0
- data/spec/dummy/tmp/cache/assets/CE7/A60/sprockets%2Ff58eee249aa167d23f8220087bb46684 +0 -0
- data/spec/dummy/tmp/cache/assets/CE9/9E0/sprockets%2F135480d497ed7e4884462dc0ef0b80d7 +0 -0
- data/spec/dummy/tmp/cache/assets/CEB/680/sprockets%2F67f0794ef8c0576d5c7da34f4437305a +0 -0
- data/spec/dummy/tmp/cache/assets/CEB/B40/sprockets%2F1150bf8d912aa100a132251eefaf6045 +0 -0
- data/spec/dummy/tmp/cache/assets/CF4/6C0/sprockets%2F087d4a99adae6d6972937a2e57e93504 +0 -0
- data/spec/dummy/tmp/cache/assets/CF4/6F0/sprockets%2Fed96f92571224b862b84d7078b86ded3 +0 -0
- data/spec/dummy/tmp/cache/assets/CF8/780/sprockets%2F8845b81ff27cdb57c835836c9f91a265 +0 -0
- data/spec/dummy/tmp/cache/assets/CFA/D20/sprockets%2Fb26796b39b3c5d6ed70be7989637a493 +0 -0
- data/spec/dummy/tmp/cache/assets/CFC/380/sprockets%2Fa7443cbd671446a589867dd5f4a4f989 +0 -0
- data/spec/dummy/tmp/cache/assets/D00/110/sprockets%2F6a6353b7723a8b21708e0fbfe04bd422 +0 -0
- data/spec/dummy/tmp/cache/assets/D03/630/sprockets%2F5d8da32dba6a7be70426a1d554773701 +0 -0
- data/spec/dummy/tmp/cache/assets/D04/170/sprockets%2F76ab1dc02e6c7618852708a1e05a2df3 +0 -0
- data/spec/dummy/tmp/cache/assets/D04/480/sprockets%2F8bd8f10500b21d2f9d94e4cd1401c936 +0 -0
- data/spec/dummy/tmp/cache/assets/D05/8D0/sprockets%2F319f8f235f452343f1ebf03cb262d23d +0 -0
- data/spec/dummy/tmp/cache/assets/D09/BF0/sprockets%2F9e6bca5d26f50d9484385d51ba04312c +0 -0
- data/spec/dummy/tmp/cache/assets/D0E/570/sprockets%2F90fe371bf8091e88a712124d9cdae260 +0 -0
- data/spec/dummy/tmp/cache/assets/D15/750/sprockets%2F8effdd3e668a4036260a3e370f3b6657 +0 -0
- data/spec/dummy/tmp/cache/assets/D17/710/sprockets%2Ffa49fb6823d466e79a195e0cd71340c5 +0 -0
- data/spec/dummy/tmp/cache/assets/D1A/D30/sprockets%2F815a5177e9edba0c5c996182ef1b3675 +0 -0
- data/spec/dummy/tmp/cache/assets/D1D/560/sprockets%2F1ca784ee7ba1922465147e7f8963eae5 +0 -0
- data/spec/dummy/tmp/cache/assets/D1E/AA0/sprockets%2F5c8741a556bc955cd36e61c88582b6dc +0 -0
- data/spec/dummy/tmp/cache/assets/D31/9C0/sprockets%2Fbd102a4f5a4985c3519dd6ab0295a1c6 +0 -0
- data/spec/dummy/tmp/cache/assets/D35/7C0/sprockets%2Ff536a2606eaf7d542c0985104cb62baf +0 -0
- data/spec/dummy/tmp/cache/assets/D37/FF0/sprockets%2F96841ca4cfae32c515077f3f5fc303b2 +0 -0
- data/spec/dummy/tmp/cache/assets/D3C/840/sprockets%2Fc6202ec91d567a85bd3d46dc43ea9108 +0 -0
- data/spec/dummy/tmp/cache/assets/D44/E90/sprockets%2F05cfc0bf7c9938963d1d1c63248db80d +0 -0
- data/spec/dummy/tmp/cache/assets/D45/C30/sprockets%2Fcc744877558178a3adb77c441cadce70 +0 -0
- data/spec/dummy/tmp/cache/assets/D47/A90/sprockets%2Fe7ca382b607c595ea6505853f7fb63da +0 -0
- data/spec/dummy/tmp/cache/assets/D49/1F0/sprockets%2F773b56f87127c6605e7d1d3faf2b6af6 +0 -0
- data/spec/dummy/tmp/cache/assets/D49/A10/sprockets%2Fc4656bd995a6f297c26d19b13aadb963 +0 -0
- data/spec/dummy/tmp/cache/assets/D51/400/sprockets%2Ff5e433d8a31e80985b75ce598de236be +0 -0
- data/spec/dummy/tmp/cache/assets/D54/D80/sprockets%2F631327e25ec20edc723046cdec3bb1c0 +0 -0
- data/spec/dummy/tmp/cache/assets/D5C/710/sprockets%2F9427d05cee2caa721241a25a9af1d08f +0 -0
- data/spec/dummy/tmp/cache/assets/D5C/CC0/sprockets%2Faa8bf6de211f2765b0a26f112b971f0c +0 -0
- data/spec/dummy/tmp/cache/assets/D5E/FA0/sprockets%2Fc81c371ae2d61a6aa1708262fba79e0d +0 -0
- data/spec/dummy/tmp/cache/assets/D61/1F0/sprockets%2F0c7a6176d2fc4db00bb9a74d36380fe1 +0 -0
- data/spec/dummy/tmp/cache/assets/D67/BC0/sprockets%2F35d2c2b45981ade5a2db2a9c7f37a615 +0 -0
- data/spec/dummy/tmp/cache/assets/D69/F90/sprockets%2F6a0795b7b38bd7e6142cd1b88211dade +0 -0
- data/spec/dummy/tmp/cache/assets/D6A/950/sprockets%2F429b1806cb7580ebf29f9a12c33cbea6 +0 -0
- data/spec/dummy/tmp/cache/assets/D6B/890/sprockets%2Fe1317822fdcc5580f1e50c9b91c6e5bb +0 -0
- data/spec/dummy/tmp/cache/assets/D6D/DA0/sprockets%2Fac936bf40b42227a2bf9d474ae9ec149 +0 -0
- data/spec/dummy/tmp/cache/assets/D77/B30/sprockets%2F946cf2f17c7eb41037f9ee08ad67ec40 +0 -0
- data/spec/dummy/tmp/cache/assets/D78/2F0/sprockets%2F3c61f8915b8f717b1de788e6ecad122c +0 -0
- data/spec/dummy/tmp/cache/assets/D7E/C10/sprockets%2F747c98c3cc7494a62dd882752adffb2b +0 -0
- data/spec/dummy/tmp/cache/assets/D8C/520/sprockets%2F221cd58a042baac534d27e4cfedc1188 +0 -0
- data/spec/dummy/tmp/cache/assets/D93/BD0/sprockets%2Ff5e1b60201e08e3ddf8d3de5211f3d5e +0 -0
- data/spec/dummy/tmp/cache/assets/DA0/330/sprockets%2Fcbbb4de706387d50f48a72ee6c9c1b80 +0 -0
- data/spec/dummy/tmp/cache/assets/DA4/320/sprockets%2F7fd0ad444f4a16b359bdbfe0977bb874 +0 -0
- data/spec/dummy/tmp/cache/assets/DA5/0A0/sprockets%2F7a4b5928cec69ab65afff309a04d6b47 +0 -0
- data/spec/dummy/tmp/cache/assets/DAD/1F0/sprockets%2Fdf7609630657aee0ebe5ed61e929d5dd +0 -0
- data/spec/dummy/tmp/cache/assets/DAE/6C0/sprockets%2F77c7a8676aeefa73156c55dfcf51cc46 +0 -0
- data/spec/dummy/tmp/cache/assets/DBC/A20/sprockets%2Fec46fb30cecc002128c61fb49cf30da8 +0 -0
- data/spec/dummy/tmp/cache/assets/DC4/CA0/sprockets%2Fdbcd5b5132f1ec3ff0e7e7db19190f03 +0 -0
- data/spec/dummy/tmp/cache/assets/DC7/A10/sprockets%2F84a8af0fcbf401864e1ae5bf092cba94 +0 -0
- data/spec/dummy/tmp/cache/assets/DE4/140/sprockets%2F139e4ab85d1aacb22c115fa136afdc8a +0 -0
- data/spec/dummy/tmp/cache/assets/DEB/110/sprockets%2F2dbdab0ce5babca645cdb5780004f875 +0 -0
- data/spec/dummy/tmp/cache/assets/DF7/E10/sprockets%2F25e4253aba9a9adcefb72552fb1ff0c8 +0 -0
- data/spec/dummy/tmp/cache/assets/DFC/C20/sprockets%2Fd9178ad7e3b401c9fceafd64ea2b50d6 +0 -0
- data/spec/dummy/tmp/cache/assets/DFC/C30/sprockets%2Fb50a07cb30b0bd0eec8e98e5de79d65d +0 -0
- data/spec/dummy/tmp/cache/assets/E02/6E0/sprockets%2F63d6a5cdb8cefa64ef76b5c6e0fd3720 +0 -0
- data/spec/dummy/tmp/cache/assets/E08/BB0/sprockets%2Fefac99af1af28543aef6fb607faa4973 +0 -0
- data/spec/dummy/tmp/cache/assets/E08/F20/sprockets%2F4fc5cdcd6974efe7adfe809b30bd6513 +0 -0
- data/spec/dummy/tmp/cache/assets/E16/D30/sprockets%2Fd69469e6e7439baacd8df989c0fdacc2 +0 -0
- data/spec/dummy/tmp/cache/assets/E17/EF0/sprockets%2Fa291ad64a26afd055dfadabbdf03f154 +0 -0
- data/spec/dummy/tmp/cache/assets/E2F/790/sprockets%2F7fac280deaa7ef20a77d5c9b5b9cfc34 +0 -0
- data/spec/dummy/tmp/cache/assets/E36/A40/sprockets%2Ff3477eebd69a4f1b8fbdd3f9ef2ba242 +0 -0
- data/spec/dummy/tmp/cache/assets/E41/250/sprockets%2F97cf8fe3d7ffaff076f655aefb36da03 +0 -0
- data/spec/dummy/tmp/cache/assets/E64/1E0/sprockets%2F81ab4c863fbbdec8dd66afc97ebf034d +0 -0
- data/spec/dummy/tmp/cache/assets/E6E/260/sprockets%2Fd9f8ab8b91ef582cc6c99a3ba0dedfe6 +0 -0
- data/spec/dummy/tmp/cache/assets/F79/360/sprockets%2F0ce035fefee5ebdabc8efabfbdbd6ee4 +0 -0
- data/spec/spec_helper.rb +2 -2
- data/spec/teabag/configuration_spec.rb +4 -0
- data/spec/teabag/formatters/base_formatter_spec.rb +1 -1
- data/spec/teabag/formatters/tap_formatter_spec.rb +124 -0
- data/spec/teabag/instrumentation_spec.rb +7 -4
- data/spec/teabag/runner_spec.rb +27 -3
- data/spec/teabag/server_spec.rb +20 -0
- metadata +11 -4
data/README.md
CHANGED
@@ -5,9 +5,9 @@ Teabag
|
|
5
5
|
|
6
6
|
Teabag is a Javascript test runner built on top of Rails. It can run tests in the browser, or headlessly using PhantomJS or with Selenium WebDriver.
|
7
7
|
|
8
|
-
It's objective is to be the simplest, while also being the most complete Javascript testing solution for Rails. It takes full advantage of the asset pipeline and ships with support for Jasmine, Mocha and
|
8
|
+
It's objective is to be the simplest, while also being the most complete Javascript testing solution for Rails. It takes full advantage of the asset pipeline and ships with support for Jasmine, Mocha, QUnit, and (experiementally) Angular.
|
9
9
|
|
10
|
-
Ok, another Javascript test runner, right? Really? Yeah, that's tough, but we're pretty confident Teabag is one of the nicest you'll find at the moment. And if you disagree,
|
10
|
+
Ok, another Javascript test runner, right? Really? Yeah, that's tough, but we're pretty confident Teabag is one of the nicest and most full featured you'll find at the moment. And if you disagree, let us know and we'll probably fix whatever it is that you didn't like.
|
11
11
|
|
12
12
|
Feedback, ideas and pull requests are always welcome, or you can hit us up on Twitter [@modeset_](https://twitter.com/modeset_).
|
13
13
|
|
@@ -86,7 +86,7 @@ rake teabag suite=my_fantastic_suite
|
|
86
86
|
|
87
87
|
### Command Line Interface
|
88
88
|
|
89
|
-
The command line interface requires a teabag_env.rb file that you can get by running the generator. This file is used to load the Rails environment so Teabag can run within the context of Rails.
|
89
|
+
The command line interface requires a `teabag_env.rb` file that you can get by running the generator. This file is used to load the Rails environment so Teabag can run within the context of Rails. This file can be in the spec, test, or root path -- but can be specified using the `--require` option.
|
90
90
|
|
91
91
|
```
|
92
92
|
bundle exec teabag
|
@@ -135,7 +135,7 @@ describe("My great feature", function() {
|
|
135
135
|
});
|
136
136
|
```
|
137
137
|
|
138
|
-
Check out examples of a [Mocha Spec](https://github.com/modeset/teabag/wiki/Using-Mocha)
|
138
|
+
Check out examples of a [Mocha Spec](https://github.com/modeset/teabag/wiki/Using-Mocha), a [QUnit Test](https://github.com/modeset/teabag/wiki/Using-QUnit), and an [Angular Test](https://github.com/modeset/teabag/wiki/Using-Angular).
|
139
139
|
|
140
140
|
### Pending Specs
|
141
141
|
|
@@ -171,7 +171,7 @@ setTimeout(Teabag.execute, 1000); // defers execution for 1 second
|
|
171
171
|
|
172
172
|
## Fixtures
|
173
173
|
|
174
|
-
You're free to use your own fixture library (like jasmine-jquery, which we've included as a support library), but Teabag ships with a fixture library that works with Jasmine, Mocha, and QUnit with a minimum of effort
|
174
|
+
You're free to use your own fixture library (like jasmine-jquery, which we've included as a support library), but Teabag ships with a fixture library that works with Jasmine, Mocha, and QUnit with a minimum of effort, has a nice consistent API, and isn't dependent on jQuery.
|
175
175
|
|
176
176
|
The fixture path is configurable within Teabag, and the views will be rendered by a standard controller. This allows you to use things like RABL/JBuilder if you're building JSON, or HAML if you're building markup. The element that Teabag creates is "#teabag-fixtures", in case you need to access it directly -- or you can access it via `fixture.el` after loading fixtures.
|
177
177
|
|
@@ -217,7 +217,7 @@ describe "Using fixtures", ->
|
|
217
217
|
expect(@fixtures[1]).toEqual(fixture.json[0]) # the json for json fixtures is returned, and available in fixture.json
|
218
218
|
```
|
219
219
|
|
220
|
-
Check out
|
220
|
+
Check out some example of using fixtures with [Mocha](https://github.com/modeset/teabag/wiki/Using-Mocha), [QUnit](https://github.com/modeset/teabag/wiki/Using-QUnit), and [Angular](https://github.com/modeset/teabag/wiki/Using-Angular).
|
221
221
|
|
222
222
|
|
223
223
|
## Coverage
|
@@ -249,7 +249,7 @@ All files | 93.75 | 75 | 94.12 | 93.65 |
|
|
249
249
|
|
250
250
|
Teabag uses the concept of suites to group your tests at a high level. These suites are run in isolation from one another, and can have different configurations. You can define suites in the configuration, and for brevity `config` is the argument passed to the `Teabag.setup` block.
|
251
251
|
|
252
|
-
When creating a suite, provide a name (optional) and a block. The following example defines a suite named "my_suite". You can focus
|
252
|
+
When creating a suite, provide a name (optional) and a block. The following example defines a suite named "my_suite". You can focus run this suite by browsing to `/teabag/my_suite` or running the rake task with `suite=my_suite`.
|
253
253
|
|
254
254
|
```ruby
|
255
255
|
config.suite :my_suite do |suite|
|
@@ -265,11 +265,11 @@ config.suite do |suite|
|
|
265
265
|
end
|
266
266
|
```
|
267
267
|
|
268
|
-
**Note:** Suites
|
268
|
+
**Note:** Suites inherit from the default suite, so default configuration will propagate to all other suites.
|
269
269
|
|
270
270
|
### Manifest Style
|
271
271
|
|
272
|
-
Teabag is happy to look for files for you, but you can disable this feature and maintain a manifest yourself. Each suite can utilize a different spec helper and you can use these to create your own manifest using the `= require` directive. This limits your abilities to run specific files from the command line interface, but it's available if you want to use it.
|
272
|
+
Teabag is happy to look for files for you, but you can disable this feature and maintain a manifest yourself. Each suite can utilize a different spec helper and you can use these to create your own manifest using the `= require` directive. This isn't recommended because it limits your abilities to run specific files from the command line interface, but it's available if you want to use it.
|
273
273
|
|
274
274
|
Tell the suite that you don't want it to match any files, and then require files in your spec helper.
|
275
275
|
|
@@ -310,6 +310,8 @@ end
|
|
310
310
|
<dt> stylesheets </dt><dd>
|
311
311
|
If you want to change how Teabag looks, or include your own stylesheets you can do that here. The default is the stylesheet for the HTML reporter.<br/><br/>
|
312
312
|
|
313
|
+
<b>Note:</b> Spec related CSS can and should be loaded using fixtures.
|
314
|
+
|
313
315
|
<b>default:</b> <code>["teabag"]</code>
|
314
316
|
</dd>
|
315
317
|
|
@@ -327,7 +329,7 @@ end
|
|
327
329
|
|
328
330
|
The best way to read about the configuration options is to generate the initializer and env, but we've included the info here as well.
|
329
331
|
|
330
|
-
**Note:** `Teabag.setup` may not be available in all environments
|
332
|
+
**Note:** `Teabag.setup` may not be available in all environments, so the generator wraps it within a check.
|
331
333
|
|
332
334
|
<dl>
|
333
335
|
|
@@ -377,6 +379,16 @@ These configuration directives are applicable only when running via the rake tas
|
|
377
379
|
</ul>
|
378
380
|
</dd>
|
379
381
|
|
382
|
+
<dt> server </dt><dd>
|
383
|
+
Specify a server to use with Rack (eg. thin, mongrel). If nil is provided Rack::Server is used.<br/><br/>
|
384
|
+
|
385
|
+
<b>default:</b> <code>nil</code>
|
386
|
+
|
387
|
+
<ul>
|
388
|
+
<li>CLI: --server SERVER</li>
|
389
|
+
<li>ENV: SERVER=thin</li>
|
390
|
+
</ul>
|
391
|
+
</dd>
|
380
392
|
|
381
393
|
<dt> server_timeout </dt><dd>
|
382
394
|
Timeout for starting the server in seconds. If your server is slow to start you may have to bump this, or you may want to lower this if you know it shouldn't take long to start.<br/><br/>
|
@@ -389,7 +401,6 @@ These configuration directives are applicable only when running via the rake tas
|
|
389
401
|
</ul>
|
390
402
|
</dd>
|
391
403
|
|
392
|
-
|
393
404
|
<dt> server_port </dt><dd>
|
394
405
|
By default Teabag will locate an open port when starting the server, but if you want to run on a specific port you can do so by providing one.<br/><br/>
|
395
406
|
|
@@ -416,7 +427,7 @@ These configuration directives are applicable only when running via the rake tas
|
|
416
427
|
<dt> formatters </dt><dd>
|
417
428
|
You can specify the formatters that Teabag will use when outputting the results.<br/><br/>
|
418
429
|
|
419
|
-
<b>available:</b> dot, tap_y, swayze_or_oprah<br/>
|
430
|
+
<b>available:</b> dot, tap, tap_y, swayze_or_oprah<br/>
|
420
431
|
<b>default:</b> <code>"dot"</code>
|
421
432
|
|
422
433
|
<ul>
|
@@ -481,6 +492,8 @@ These configuration directives are applicable only when running via the rake tas
|
|
481
492
|
|
482
493
|
[QUnit](http://qunitjs.com) We're not sure about how many people use QUnit, but we like jQuery, so we added it. Read more about [Using QUnit](https://github.com/modeset/teabag/wiki/Using-QUnit) with Teabag.
|
483
494
|
|
495
|
+
[Angular](http://angularjs.org/) This is an experimental addition, and feedback is needed. Read more about [Using Angular](https://github.com/modeset/teabag/wiki/Using-Angular) with Teabag.
|
496
|
+
|
484
497
|
|
485
498
|
## Support Libraries
|
486
499
|
|
@@ -490,6 +503,7 @@ We know that testing usually requires more than just the test framework, so we'v
|
|
490
503
|
- [ChaiJS](http://chaijs.com/) BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
|
491
504
|
- [expect.js](https://github.com/LearnBoost/expect.js) Minimalistic BDD assertion toolkit based on should.js.
|
492
505
|
- [jasmine-jquery.js](https://github.com/velesin/jasmine-jquery) A set of custom matchers for jQuery, and an API for handling HTML fixtures in your specs.
|
506
|
+
- [angular-scenario.js](https://github.com/angular/angular.js) Angular test setup.
|
493
507
|
|
494
508
|
You can require these files in your spec helper by using:
|
495
509
|
|
@@ -498,6 +512,7 @@ You can require these files in your spec helper by using:
|
|
498
512
|
//=require support/chai
|
499
513
|
//=require support/expect
|
500
514
|
//=require support/jasmine-jquery
|
515
|
+
//=require support/angular-scenario
|
501
516
|
```
|
502
517
|
|
503
518
|
|
@@ -507,7 +522,19 @@ Teabag works great on CI setups. If you're using TravisCI it just works, but if
|
|
507
522
|
|
508
523
|
If you want to generate reports that CI can use you can install istanbul for coverage reports -- and output the report using the cobertura format, which Hudson can read.
|
509
524
|
|
510
|
-
Again on hudson compatibile CI setups, you can track spec failure information/rate tracking by using
|
525
|
+
Again on hudson compatibile CI setups, you can track spec failure information/rate tracking by using the tap formatter, which can be parsed by hudson.
|
526
|
+
|
527
|
+
A good setup:
|
528
|
+
|
529
|
+
```
|
530
|
+
teabag -q --coverage-reports=cobertura --format=tap
|
531
|
+
```
|
532
|
+
|
533
|
+
Or using Rake/ENV:
|
534
|
+
|
535
|
+
```
|
536
|
+
SUPPRESS_LOG=true COVERAGE_REPORTS=cobertura FORMATTERS=tap rake
|
537
|
+
```
|
511
538
|
|
512
539
|
|
513
540
|
## License
|
@@ -2601,9 +2601,7 @@ jasmine.version_= {
|
|
2601
2601
|
"revision": 1354556913
|
2602
2602
|
};
|
2603
2603
|
(function() {
|
2604
|
-
|
2605
2604
|
this.Teabag = (function() {
|
2606
|
-
|
2607
2605
|
function Teabag() {}
|
2608
2606
|
|
2609
2607
|
Teabag.defer = false;
|
@@ -2635,6 +2633,7 @@ jasmine.version_= {
|
|
2635
2633
|
|
2636
2634
|
Teabag.resolveDependenciesFromParams = function(all) {
|
2637
2635
|
var dep, deps, file, parts, path, paths, _i, _j, _len, _len1;
|
2636
|
+
|
2638
2637
|
if (all == null) {
|
2639
2638
|
all = [];
|
2640
2639
|
}
|
@@ -2660,16 +2659,20 @@ jasmine.version_= {
|
|
2660
2659
|
};
|
2661
2660
|
|
2662
2661
|
Teabag.log = function() {
|
2662
|
+
var e;
|
2663
|
+
|
2663
2664
|
this.messages.push(arguments[0]);
|
2664
2665
|
try {
|
2665
2666
|
return console.log.apply(console, arguments);
|
2666
|
-
} catch (
|
2667
|
+
} catch (_error) {
|
2668
|
+
e = _error;
|
2667
2669
|
throw new Error("Unable to use console.log for logging");
|
2668
2670
|
}
|
2669
2671
|
};
|
2670
2672
|
|
2671
2673
|
Teabag.getMessages = function() {
|
2672
2674
|
var messages;
|
2675
|
+
|
2673
2676
|
messages = this.messages;
|
2674
2677
|
this.messages = [];
|
2675
2678
|
return messages;
|
@@ -2681,9 +2684,7 @@ jasmine.version_= {
|
|
2681
2684
|
|
2682
2685
|
}).call(this);
|
2683
2686
|
(function() {
|
2684
|
-
|
2685
2687
|
Teabag.Runner = (function() {
|
2686
|
-
|
2687
2688
|
Runner.run = false;
|
2688
2689
|
|
2689
2690
|
function Runner() {
|
@@ -2698,6 +2699,7 @@ jasmine.version_= {
|
|
2698
2699
|
|
2699
2700
|
Runner.prototype.getParams = function() {
|
2700
2701
|
var name, param, params, value, _i, _len, _ref, _ref1;
|
2702
|
+
|
2701
2703
|
params = {};
|
2702
2704
|
_ref = Teabag.location.search.substring(1).split("&");
|
2703
2705
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
@@ -2744,6 +2746,7 @@ jasmine.version_= {
|
|
2744
2746
|
|
2745
2747
|
fixture.preload = function() {
|
2746
2748
|
var url, urls, _i, _len, _results;
|
2749
|
+
|
2747
2750
|
urls = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
2748
2751
|
_results = [];
|
2749
2752
|
for (_i = 0, _len = urls.length; _i < _len; _i++) {
|
@@ -2755,6 +2758,7 @@ jasmine.version_= {
|
|
2755
2758
|
|
2756
2759
|
fixture.load = function() {
|
2757
2760
|
var append, index, url, urls, _i, _j, _len, _results;
|
2761
|
+
|
2758
2762
|
urls = 2 <= arguments.length ? __slice.call(arguments, 0, _i = arguments.length - 1) : (_i = 0, []), append = arguments[_i++];
|
2759
2763
|
if (append == null) {
|
2760
2764
|
append = false;
|
@@ -2773,6 +2777,7 @@ jasmine.version_= {
|
|
2773
2777
|
|
2774
2778
|
fixture.set = function() {
|
2775
2779
|
var append, html, htmls, index, _i, _j, _len, _results;
|
2780
|
+
|
2776
2781
|
htmls = 2 <= arguments.length ? __slice.call(arguments, 0, _i = arguments.length - 1) : (_i = 0, []), append = arguments[_i++];
|
2777
2782
|
if (append == null) {
|
2778
2783
|
append = false;
|
@@ -2805,6 +2810,7 @@ jasmine.version_= {
|
|
2805
2810
|
|
2806
2811
|
load = function(url, append, preload) {
|
2807
2812
|
var cached, value;
|
2813
|
+
|
2808
2814
|
if (preload == null) {
|
2809
2815
|
preload = false;
|
2810
2816
|
}
|
@@ -2866,6 +2872,7 @@ jasmine.version_= {
|
|
2866
2872
|
|
2867
2873
|
create = function() {
|
2868
2874
|
var _ref;
|
2875
|
+
|
2869
2876
|
Teabag.fixture.el = document.createElement("div");
|
2870
2877
|
if (typeof window.$ === 'function') {
|
2871
2878
|
Teabag.fixture.$el = $(Teabag.fixture.el);
|
@@ -2876,6 +2883,7 @@ jasmine.version_= {
|
|
2876
2883
|
|
2877
2884
|
cleanup = function() {
|
2878
2885
|
var _base, _ref, _ref1;
|
2886
|
+
|
2879
2887
|
(_base = Teabag.fixture).el || (_base.el = document.getElementById("teabag-fixtures"));
|
2880
2888
|
if ((_ref = Teabag.fixture.el) != null) {
|
2881
2889
|
if ((_ref1 = _ref.parentNode) != null) {
|
@@ -2886,16 +2894,19 @@ jasmine.version_= {
|
|
2886
2894
|
};
|
2887
2895
|
|
2888
2896
|
xhrRequest = function(url, callback) {
|
2897
|
+
var e;
|
2898
|
+
|
2889
2899
|
if (window.XMLHttpRequest) {
|
2890
2900
|
xhr = new XMLHttpRequest();
|
2891
2901
|
} else if (window.ActiveXObject) {
|
2892
2902
|
try {
|
2893
2903
|
xhr = new ActiveXObject("Msxml2.XMLHTTP");
|
2894
|
-
} catch (
|
2904
|
+
} catch (_error) {
|
2905
|
+
e = _error;
|
2895
2906
|
try {
|
2896
2907
|
xhr = new ActiveXObject("Microsoft.XMLHTTP");
|
2897
|
-
} catch (
|
2898
|
-
|
2908
|
+
} catch (_error) {
|
2909
|
+
e = _error;
|
2899
2910
|
}
|
2900
2911
|
}
|
2901
2912
|
}
|
@@ -2913,9 +2924,7 @@ jasmine.version_= {
|
|
2913
2924
|
|
2914
2925
|
}).call(this);
|
2915
2926
|
(function() {
|
2916
|
-
|
2917
2927
|
Teabag.Reporters.BaseView = (function() {
|
2918
|
-
|
2919
2928
|
function BaseView() {
|
2920
2929
|
this.elements = {};
|
2921
2930
|
this.build();
|
@@ -2935,6 +2944,7 @@ jasmine.version_= {
|
|
2935
2944
|
|
2936
2945
|
BaseView.prototype.createEl = function(type, className) {
|
2937
2946
|
var el;
|
2947
|
+
|
2938
2948
|
if (className == null) {
|
2939
2949
|
className = "";
|
2940
2950
|
}
|
@@ -2945,18 +2955,21 @@ jasmine.version_= {
|
|
2945
2955
|
|
2946
2956
|
BaseView.prototype.findEl = function(id) {
|
2947
2957
|
var _base;
|
2958
|
+
|
2948
2959
|
this.elements || (this.elements = {});
|
2949
2960
|
return (_base = this.elements)[id] || (_base[id] = document.getElementById("teabag-" + id));
|
2950
2961
|
};
|
2951
2962
|
|
2952
2963
|
BaseView.prototype.setText = function(id, value) {
|
2953
2964
|
var el;
|
2965
|
+
|
2954
2966
|
el = this.findEl(id);
|
2955
2967
|
return el.innerHTML = value;
|
2956
2968
|
};
|
2957
2969
|
|
2958
2970
|
BaseView.prototype.setHtml = function(id, value, add) {
|
2959
2971
|
var el;
|
2972
|
+
|
2960
2973
|
if (add == null) {
|
2961
2974
|
add = false;
|
2962
2975
|
}
|
@@ -2970,12 +2983,14 @@ jasmine.version_= {
|
|
2970
2983
|
|
2971
2984
|
BaseView.prototype.setClass = function(id, value) {
|
2972
2985
|
var el;
|
2986
|
+
|
2973
2987
|
el = this.findEl(id);
|
2974
2988
|
return el.className = value;
|
2975
2989
|
};
|
2976
2990
|
|
2977
2991
|
BaseView.prototype.htmlSafe = function(str) {
|
2978
2992
|
var el;
|
2993
|
+
|
2979
2994
|
el = document.createElement("div");
|
2980
2995
|
el.appendChild(document.createTextNode(str));
|
2981
2996
|
return el.innerHTML;
|
@@ -2992,14 +3007,11 @@ jasmine.version_= {
|
|
2992
3007
|
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
2993
3008
|
|
2994
3009
|
Teabag.Reporters.HTML = (function(_super) {
|
2995
|
-
|
2996
3010
|
__extends(HTML, _super);
|
2997
3011
|
|
2998
3012
|
function HTML() {
|
2999
3013
|
this.toggleConfig = __bind(this.toggleConfig, this);
|
3000
|
-
|
3001
|
-
this.reportRunnerResults = __bind(this.reportRunnerResults, this);
|
3002
|
-
this.start = new Teabag.Date().getTime();
|
3014
|
+
this.reportRunnerResults = __bind(this.reportRunnerResults, this); this.start = new Teabag.Date().getTime();
|
3003
3015
|
this.config = {
|
3004
3016
|
"use-catch": true,
|
3005
3017
|
"build-full-report": false,
|
@@ -3024,6 +3036,7 @@ jasmine.version_= {
|
|
3024
3036
|
|
3025
3037
|
HTML.prototype.build = function() {
|
3026
3038
|
var _ref;
|
3039
|
+
|
3027
3040
|
this.buildLayout();
|
3028
3041
|
this.setText("env-info", this.envInfo());
|
3029
3042
|
this.setText("version", Teabag.version);
|
@@ -3041,6 +3054,7 @@ jasmine.version_= {
|
|
3041
3054
|
|
3042
3055
|
HTML.prototype.buildLayout = function() {
|
3043
3056
|
var el;
|
3057
|
+
|
3044
3058
|
el = this.createEl("div");
|
3045
3059
|
el.id = "teabag-interface";
|
3046
3060
|
el.innerHTML = Teabag.Reporters.HTML.template;
|
@@ -3049,6 +3063,7 @@ jasmine.version_= {
|
|
3049
3063
|
|
3050
3064
|
HTML.prototype.buildSuiteSelect = function() {
|
3051
3065
|
var options, suite, _i, _len, _ref;
|
3066
|
+
|
3052
3067
|
if (Teabag.suites.all.length === 1) {
|
3053
3068
|
return "";
|
3054
3069
|
}
|
@@ -3125,6 +3140,7 @@ jasmine.version_= {
|
|
3125
3140
|
|
3126
3141
|
HTML.prototype.updateStatus = function(spec) {
|
3127
3142
|
var elapsed, result, _ref, _ref1;
|
3143
|
+
|
3128
3144
|
spec = new Teabag.Spec(spec);
|
3129
3145
|
result = spec.result();
|
3130
3146
|
if (result.skipped || result.status === "pending") {
|
@@ -3153,6 +3169,7 @@ jasmine.version_= {
|
|
3153
3169
|
|
3154
3170
|
HTML.prototype.showConfiguration = function() {
|
3155
3171
|
var key, value, _ref, _results;
|
3172
|
+
|
3156
3173
|
_ref = this.config;
|
3157
3174
|
_results = [];
|
3158
3175
|
for (key in _ref) {
|
@@ -3168,6 +3185,7 @@ jasmine.version_= {
|
|
3168
3185
|
|
3169
3186
|
HTML.prototype.setFilters = function() {
|
3170
3187
|
var link;
|
3188
|
+
|
3171
3189
|
link = [Teabag.root, Teabag.suites.active].join('/');
|
3172
3190
|
if (Teabag.params["file"]) {
|
3173
3191
|
this.filters.push("<a href='" + link + "'>remove</a> by file: " + Teabag.params["file"]);
|
@@ -3179,6 +3197,7 @@ jasmine.version_= {
|
|
3179
3197
|
|
3180
3198
|
HTML.prototype.readConfig = function() {
|
3181
3199
|
var config;
|
3200
|
+
|
3182
3201
|
if (config = this.cookie("teabag")) {
|
3183
3202
|
return this.config = config;
|
3184
3203
|
}
|
@@ -3186,6 +3205,7 @@ jasmine.version_= {
|
|
3186
3205
|
|
3187
3206
|
HTML.prototype.toggleConfig = function(e) {
|
3188
3207
|
var button, name;
|
3208
|
+
|
3189
3209
|
button = e.target;
|
3190
3210
|
if (button.tagName.toLowerCase() !== "button") {
|
3191
3211
|
return;
|
@@ -3206,6 +3226,7 @@ jasmine.version_= {
|
|
3206
3226
|
|
3207
3227
|
HTML.prototype.cookie = function(name, value) {
|
3208
3228
|
var date, match;
|
3229
|
+
|
3209
3230
|
if (value == null) {
|
3210
3231
|
value = void 0;
|
3211
3232
|
}
|
@@ -3226,15 +3247,16 @@ jasmine.version_= {
|
|
3226
3247
|
|
3227
3248
|
}).call(this);
|
3228
3249
|
(function() {
|
3229
|
-
var
|
3250
|
+
var _ref, _ref1, _ref2,
|
3251
|
+
__hasProp = {}.hasOwnProperty,
|
3230
3252
|
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
3231
3253
|
|
3232
3254
|
Teabag.Reporters.HTML.ProgressView = (function(_super) {
|
3233
|
-
|
3234
3255
|
__extends(ProgressView, _super);
|
3235
3256
|
|
3236
3257
|
function ProgressView() {
|
3237
|
-
|
3258
|
+
_ref = ProgressView.__super__.constructor.apply(this, arguments);
|
3259
|
+
return _ref;
|
3238
3260
|
}
|
3239
3261
|
|
3240
3262
|
ProgressView.create = function(displayProgress) {
|
@@ -3262,11 +3284,11 @@ jasmine.version_= {
|
|
3262
3284
|
})(Teabag.Reporters.BaseView);
|
3263
3285
|
|
3264
3286
|
Teabag.Reporters.HTML.SimpleProgressView = (function(_super) {
|
3265
|
-
|
3266
3287
|
__extends(SimpleProgressView, _super);
|
3267
3288
|
|
3268
3289
|
function SimpleProgressView() {
|
3269
|
-
|
3290
|
+
_ref1 = SimpleProgressView.__super__.constructor.apply(this, arguments);
|
3291
|
+
return _ref1;
|
3270
3292
|
}
|
3271
3293
|
|
3272
3294
|
SimpleProgressView.prototype.build = function() {
|
@@ -3276,6 +3298,7 @@ jasmine.version_= {
|
|
3276
3298
|
|
3277
3299
|
SimpleProgressView.prototype.update = function(total, run) {
|
3278
3300
|
var percent;
|
3301
|
+
|
3279
3302
|
percent = total ? Math.ceil((run * 100) / total) : 0;
|
3280
3303
|
return this.setHtml("progress-percent", "" + percent + "%");
|
3281
3304
|
};
|
@@ -3285,11 +3308,11 @@ jasmine.version_= {
|
|
3285
3308
|
})(Teabag.Reporters.HTML.ProgressView);
|
3286
3309
|
|
3287
3310
|
Teabag.Reporters.HTML.RadialProgressView = (function(_super) {
|
3288
|
-
|
3289
3311
|
__extends(RadialProgressView, _super);
|
3290
3312
|
|
3291
3313
|
function RadialProgressView() {
|
3292
|
-
|
3314
|
+
_ref2 = RadialProgressView.__super__.constructor.apply(this, arguments);
|
3315
|
+
return _ref2;
|
3293
3316
|
}
|
3294
3317
|
|
3295
3318
|
RadialProgressView.supported = !!document.createElement("canvas").getContext;
|
@@ -3300,7 +3323,8 @@ jasmine.version_= {
|
|
3300
3323
|
};
|
3301
3324
|
|
3302
3325
|
RadialProgressView.prototype.appendTo = function() {
|
3303
|
-
var canvas;
|
3326
|
+
var canvas, e;
|
3327
|
+
|
3304
3328
|
RadialProgressView.__super__.appendTo.apply(this, arguments);
|
3305
3329
|
this.size = 80;
|
3306
3330
|
try {
|
@@ -3309,13 +3333,14 @@ jasmine.version_= {
|
|
3309
3333
|
this.ctx = canvas.getContext("2d");
|
3310
3334
|
this.ctx.strokeStyle = "#fff";
|
3311
3335
|
return this.ctx.lineWidth = 1.5;
|
3312
|
-
} catch (
|
3313
|
-
|
3336
|
+
} catch (_error) {
|
3337
|
+
e = _error;
|
3314
3338
|
}
|
3315
3339
|
};
|
3316
3340
|
|
3317
3341
|
RadialProgressView.prototype.update = function(total, run) {
|
3318
3342
|
var half, percent;
|
3343
|
+
|
3319
3344
|
percent = total ? Math.ceil((run * 100) / total) : 0;
|
3320
3345
|
this.setHtml("progress-percent", "" + percent + "%");
|
3321
3346
|
if (!this.ctx) {
|
@@ -3355,6 +3380,7 @@ jasmine.version_= {
|
|
3355
3380
|
|
3356
3381
|
SpecView.prototype.build = function() {
|
3357
3382
|
var classes;
|
3383
|
+
|
3358
3384
|
classes = ["spec"];
|
3359
3385
|
if (this.spec.pending) {
|
3360
3386
|
classes.push("state-pending");
|
@@ -3367,6 +3393,7 @@ jasmine.version_= {
|
|
3367
3393
|
|
3368
3394
|
SpecView.prototype.buildParent = function() {
|
3369
3395
|
var parent, view;
|
3396
|
+
|
3370
3397
|
parent = this.spec.parent;
|
3371
3398
|
if (parent.viewId) {
|
3372
3399
|
return this.views.suites[parent.viewId];
|
@@ -3378,6 +3405,7 @@ jasmine.version_= {
|
|
3378
3405
|
|
3379
3406
|
SpecView.prototype.buildErrors = function() {
|
3380
3407
|
var div, error, html, _i, _len, _ref;
|
3408
|
+
|
3381
3409
|
div = this.createEl("div");
|
3382
3410
|
html = "";
|
3383
3411
|
_ref = this.spec.errors();
|
@@ -3391,6 +3419,7 @@ jasmine.version_= {
|
|
3391
3419
|
|
3392
3420
|
SpecView.prototype.updateState = function(state, elapsed) {
|
3393
3421
|
var classes, result, _base;
|
3422
|
+
|
3394
3423
|
result = this.spec.result();
|
3395
3424
|
classes = ["state-" + state];
|
3396
3425
|
if (elapsed > Teabag.slow) {
|
@@ -3416,7 +3445,6 @@ jasmine.version_= {
|
|
3416
3445
|
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
3417
3446
|
|
3418
3447
|
Teabag.Reporters.HTML.FailureView = (function(_super) {
|
3419
|
-
|
3420
3448
|
__extends(FailureView, _super);
|
3421
3449
|
|
3422
3450
|
function FailureView(spec) {
|
@@ -3426,6 +3454,7 @@ jasmine.version_= {
|
|
3426
3454
|
|
3427
3455
|
FailureView.prototype.build = function() {
|
3428
3456
|
var error, html, _i, _len, _ref;
|
3457
|
+
|
3429
3458
|
FailureView.__super__.build.call(this, "spec");
|
3430
3459
|
html = "<h1 class=\"teabag-clearfix\"><a href=\"" + this.spec.link + "\">" + this.spec.fullDescription + "</a></h1>";
|
3431
3460
|
_ref = this.spec.errors();
|
@@ -3471,6 +3500,7 @@ jasmine.version_= {
|
|
3471
3500
|
|
3472
3501
|
SuiteView.prototype.buildParent = function() {
|
3473
3502
|
var parent, view;
|
3503
|
+
|
3474
3504
|
parent = this.suite.parent;
|
3475
3505
|
if (!parent) {
|
3476
3506
|
return this.reporter;
|
@@ -3492,6 +3522,7 @@ jasmine.version_= {
|
|
3492
3522
|
|
3493
3523
|
SuiteView.prototype.updateState = function(state) {
|
3494
3524
|
var _base;
|
3525
|
+
|
3495
3526
|
if (this.state === "failed") {
|
3496
3527
|
return;
|
3497
3528
|
}
|
@@ -3508,7 +3539,6 @@ jasmine.version_= {
|
|
3508
3539
|
|
3509
3540
|
}).call(this);
|
3510
3541
|
(function() {
|
3511
|
-
|
3512
3542
|
Teabag.Reporters.HTML.template = "<div class=\"teabag-clearfix\">\n <div id=\"teabag-title\">\n <h1><a href=\"\" id=\"teabag-root-link\">Teabag</a></h1>\n <ul>\n <li>version: <b id=\"teabag-version\"></b></li>\n <li id=\"teabag-env-info\"></li>\n </ul>\n </div>\n <div id=\"teabag-progress\"></div>\n <ul id=\"teabag-stats\">\n <li>passes: <b id=\"teabag-stats-passes\">0</b></li>\n <li>failures: <b id=\"teabag-stats-failures\">0</b></li>\n <li>skipped: <b id=\"teabag-stats-skipped\">0</b></li>\n <li>duration: <b id=\"teabag-stats-duration\">∞</b></li>\n </ul>\n</div>\n\n<div id=\"teabag-controls\" class=\"teabag-clearfix\">\n <div id=\"teabag-toggles\">\n <button id=\"teabag-use-catch\" title=\"Toggle using try/catch wrappers when possible\">Try/Catch</button>\n <button id=\"teabag-build-full-report\" title=\"Toggle building the full report\">Full Report</button>\n <button id=\"teabag-display-progress\" title=\"Toggle displaying progress as tests run\">Progress</button>\n </div>\n <div id=\"teabag-suites\"></div>\n</div>\n\n<hr/>\n\n<div id=\"teabag-filter\">\n <h1>Filtering</h1>\n <ul id=\"teabag-filter-list\"></ul>\n</div>\n\n<div id=\"teabag-report\">\n <ol id=\"teabag-report-failures\"></ol>\n <ol id=\"teabag-report-all\"></ol>\n</div>";
|
3513
3543
|
|
3514
3544
|
}).call(this);
|
@@ -3516,10 +3546,8 @@ jasmine.version_= {
|
|
3516
3546
|
var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
|
3517
3547
|
|
3518
3548
|
Teabag.Reporters.Console = (function() {
|
3519
|
-
|
3520
3549
|
function Console() {
|
3521
|
-
this.reportRunnerResults = __bind(this.reportRunnerResults, this);
|
3522
|
-
this.start = new Teabag.Date();
|
3550
|
+
this.reportRunnerResults = __bind(this.reportRunnerResults, this); this.start = new Teabag.Date();
|
3523
3551
|
this.suites = {};
|
3524
3552
|
}
|
3525
3553
|
|
@@ -3533,6 +3561,7 @@ jasmine.version_= {
|
|
3533
3561
|
|
3534
3562
|
Console.prototype.reportSuites = function() {
|
3535
3563
|
var index, suite, _i, _len, _ref, _results;
|
3564
|
+
|
3536
3565
|
_ref = this.spec.getParents();
|
3537
3566
|
_results = [];
|
3538
3567
|
for (index = _i = 0, _len = _ref.length; _i < _len; index = ++_i) {
|
@@ -3552,6 +3581,7 @@ jasmine.version_= {
|
|
3552
3581
|
|
3553
3582
|
Console.prototype.reportSpecResults = function(spec) {
|
3554
3583
|
var result;
|
3584
|
+
|
3555
3585
|
this.spec = new Teabag.Spec(spec);
|
3556
3586
|
result = this.spec.result();
|
3557
3587
|
if (result.skipped) {
|
@@ -3576,6 +3606,7 @@ jasmine.version_= {
|
|
3576
3606
|
|
3577
3607
|
Console.prototype.trackPending = function() {
|
3578
3608
|
var result;
|
3609
|
+
|
3579
3610
|
result = this.spec.result();
|
3580
3611
|
return this.log({
|
3581
3612
|
type: "spec",
|
@@ -3588,6 +3619,7 @@ jasmine.version_= {
|
|
3588
3619
|
|
3589
3620
|
Console.prototype.trackFailure = function() {
|
3590
3621
|
var error, result, _i, _len, _ref, _results;
|
3622
|
+
|
3591
3623
|
result = this.spec.result();
|
3592
3624
|
_ref = this.spec.errors();
|
3593
3625
|
_results = [];
|
@@ -3630,15 +3662,16 @@ jasmine.version_= {
|
|
3630
3662
|
|
3631
3663
|
}).call(this);
|
3632
3664
|
(function() {
|
3633
|
-
var
|
3665
|
+
var _ref,
|
3666
|
+
__hasProp = {}.hasOwnProperty,
|
3634
3667
|
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
3635
3668
|
|
3636
3669
|
Teabag.Reporters.HTML = (function(_super) {
|
3637
|
-
|
3638
3670
|
__extends(HTML, _super);
|
3639
3671
|
|
3640
3672
|
function HTML() {
|
3641
|
-
|
3673
|
+
_ref = HTML.__super__.constructor.apply(this, arguments);
|
3674
|
+
return _ref;
|
3642
3675
|
}
|
3643
3676
|
|
3644
3677
|
HTML.prototype.readConfig = function() {
|
@@ -3648,6 +3681,7 @@ jasmine.version_= {
|
|
3648
3681
|
|
3649
3682
|
HTML.prototype.envInfo = function() {
|
3650
3683
|
var ver, verString;
|
3684
|
+
|
3651
3685
|
ver = jasmine.getEnv().version();
|
3652
3686
|
verString = [ver.major, ver.minor, ver.build].join(".");
|
3653
3687
|
return "jasmine " + verString + " revision " + ver.revision;
|
@@ -3659,12 +3693,11 @@ jasmine.version_= {
|
|
3659
3693
|
|
3660
3694
|
}).call(this);
|
3661
3695
|
(function() {
|
3662
|
-
var env,
|
3696
|
+
var env, _ref,
|
3663
3697
|
__hasProp = {}.hasOwnProperty,
|
3664
3698
|
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
3665
3699
|
|
3666
3700
|
Teabag.Runner = (function(_super) {
|
3667
|
-
|
3668
3701
|
__extends(Runner, _super);
|
3669
3702
|
|
3670
3703
|
function Runner() {
|
@@ -3674,6 +3707,7 @@ jasmine.version_= {
|
|
3674
3707
|
|
3675
3708
|
Runner.prototype.setup = function() {
|
3676
3709
|
var grep, reporter;
|
3710
|
+
|
3677
3711
|
env.updateInterval = 1000;
|
3678
3712
|
if (grep = this.params["grep"]) {
|
3679
3713
|
env.specFilter = function(spec) {
|
@@ -3700,7 +3734,6 @@ jasmine.version_= {
|
|
3700
3734
|
})(Teabag.Runner);
|
3701
3735
|
|
3702
3736
|
Teabag.Spec = (function() {
|
3703
|
-
|
3704
3737
|
function Spec(spec) {
|
3705
3738
|
this.spec = spec;
|
3706
3739
|
this.fullDescription = this.spec.getFullName();
|
@@ -3714,6 +3747,7 @@ jasmine.version_= {
|
|
3714
3747
|
|
3715
3748
|
Spec.prototype.errors = function() {
|
3716
3749
|
var item, _i, _len, _ref, _results;
|
3750
|
+
|
3717
3751
|
if (!this.spec.results) {
|
3718
3752
|
return [];
|
3719
3753
|
}
|
@@ -3734,6 +3768,7 @@ jasmine.version_= {
|
|
3734
3768
|
|
3735
3769
|
Spec.prototype.getParents = function() {
|
3736
3770
|
var parent;
|
3771
|
+
|
3737
3772
|
if (this.parents) {
|
3738
3773
|
return this.parents;
|
3739
3774
|
}
|
@@ -3749,6 +3784,7 @@ jasmine.version_= {
|
|
3749
3784
|
|
3750
3785
|
Spec.prototype.result = function() {
|
3751
3786
|
var results, status;
|
3787
|
+
|
3752
3788
|
results = this.spec.results();
|
3753
3789
|
status = "failed";
|
3754
3790
|
if (results.passed()) {
|
@@ -3768,7 +3804,6 @@ jasmine.version_= {
|
|
3768
3804
|
})();
|
3769
3805
|
|
3770
3806
|
Teabag.Suite = (function() {
|
3771
|
-
|
3772
3807
|
function Suite(suite) {
|
3773
3808
|
this.suite = suite;
|
3774
3809
|
this.fullDescription = this.suite.getFullName();
|
@@ -3783,11 +3818,11 @@ jasmine.version_= {
|
|
3783
3818
|
})();
|
3784
3819
|
|
3785
3820
|
Teabag.fixture = (function(_super) {
|
3786
|
-
|
3787
3821
|
__extends(fixture, _super);
|
3788
3822
|
|
3789
3823
|
function fixture() {
|
3790
|
-
|
3824
|
+
_ref = fixture.__super__.constructor.apply(this, arguments);
|
3825
|
+
return _ref;
|
3791
3826
|
}
|
3792
3827
|
|
3793
3828
|
window.fixture = fixture;
|
@@ -3795,6 +3830,7 @@ jasmine.version_= {
|
|
3795
3830
|
fixture.load = function() {
|
3796
3831
|
var args,
|
3797
3832
|
_this = this;
|
3833
|
+
|
3798
3834
|
args = arguments;
|
3799
3835
|
if (!(env.currentSuite || env.currentSpec)) {
|
3800
3836
|
throw "Teabag can't load fixtures outside of describe.";
|
@@ -3818,6 +3854,7 @@ jasmine.version_= {
|
|
3818
3854
|
fixture.set = function() {
|
3819
3855
|
var args,
|
3820
3856
|
_this = this;
|
3857
|
+
|
3821
3858
|
args = arguments;
|
3822
3859
|
if (!(env.currentSuite || env.currentSpec)) {
|
3823
3860
|
throw "Teabag can't load fixtures outside of describe.";
|