konacha 1.3.1 → 1.4.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.
data/History.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # master
2
2
 
3
+ # 1.4.0
4
+
5
+ * Update mocha (1.3.0)
6
+ * Support all Mocha interfaces (set through `Konacha.mochaOptions.ui`)
7
+ * Backup spec files (.js.bak, .js.orig, etc.) are ignored
8
+
3
9
  # 1.3.1
4
10
 
5
11
  * Specs in subdirectories no longer run twice
data/README.md CHANGED
@@ -143,6 +143,10 @@ named `konacha_config.js` or `konacha_config.js.coffee` in `spec/javascripts` an
143
143
  setting properties of `Konacha.mochaOptions`:
144
144
 
145
145
  ```javascript
146
+ // set the Mocha test interface
147
+ // see http://visionmedia.github.com/mocha/#interfaces
148
+ Konacha.mochaOptions.ui = 'bdd';
149
+
146
150
  // ignore the following globals during leak detection
147
151
  Konacha.mochaOptions.globals = ['YUI'];
148
152
 
@@ -158,14 +162,16 @@ The `ui` and `reporter` Mocha options are set by Konacha and must not be modifie
158
162
  ## Test Interface and Assertions
159
163
 
160
164
  Konacha includes a vendored copy of mocha.js and the [chai](http://chaijs.com/)
161
- assertion libraries. It configures Mocha to use the "BDD" test interface, which
162
- provides `describe()`, `it()`, `before()`, `after()`, `beforeEach()`, and `afterEach()`.
165
+ assertion libraries. By default, it configures Mocha to use the "BDD" test
166
+ interface, which provides `describe()`, `it()`, `before()`, `after()`,
167
+ `beforeEach()`, and `afterEach()`.
163
168
 
164
169
  Konacha will make all three of chai's assertion styles available to you: `expect`,
165
170
  `should`, and `assert`. See the chai documentation for the details.
166
171
 
167
172
  If you use jQuery, you may want to check out [chai-jquery](https://github.com/jfirebaugh/chai-jquery)
168
- for some jQuery-specific assertions.
173
+ for some jQuery-specific assertions. You can add it painlessly with the
174
+ [chai-jquery-rails](https://github.com/wordofchristian/chai-jquery-rails) gem.
169
175
 
170
176
  ## Transactions
171
177
 
data/Rakefile CHANGED
@@ -8,8 +8,8 @@ RSpec::Core::RakeTask.new :spec
8
8
  desc 'Build and copy Mocha and Chai assets from submodules into vendor/assets'
9
9
  task :assets do
10
10
  sh 'git submodule update --init' unless File.exist?('mocha/Makefile') || File.exist?('chai/Makefile')
11
- sh 'cd mocha && make clean && make'
12
- sh 'cd chai && make clean && make'
11
+ sh 'cd mocha && npm install && make clean && make'
12
+ sh 'cd chai && npm install && make clean && make'
13
13
  mkdir_p 'vendor/assets/javascripts'
14
14
  mkdir_p 'vendor/assets/stylesheets'
15
15
  cp 'mocha/mocha.js', 'vendor/assets/javascripts/'
data/konacha.gemspec CHANGED
@@ -17,7 +17,7 @@ the asset pipeline and engines.}
17
17
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
18
  gem.name = "konacha"
19
19
  gem.require_paths = ["lib"]
20
- gem.version = "1.3.1"
20
+ gem.version = "1.4.0"
21
21
 
22
22
  gem.add_dependency "railties", "~> 3.1"
23
23
  gem.add_dependency "actionpack", "~> 3.1"
@@ -29,6 +29,5 @@ the asset pipeline and engines.}
29
29
  gem.add_development_dependency "capybara-firebug", "~> 1.1"
30
30
  gem.add_development_dependency "coffee-script"
31
31
  gem.add_development_dependency "ejs"
32
- gem.add_development_dependency "vendorer"
33
32
  gem.add_development_dependency "tzinfo"
34
33
  end
@@ -1,6 +1,6 @@
1
1
  mocha.setup(Konacha.mochaOptions);
2
2
 
3
- beforeEach(function () {
3
+ mocha.suite.beforeEach(function () {
4
4
  var e = document.getElementById('konacha');
5
5
  if (e) {
6
6
  e.parentNode.removeChild(e);
data/lib/konacha.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "tilt"
1
2
  require "konacha/engine"
2
3
  require "konacha/runner"
3
4
  require "konacha/server"
@@ -33,9 +34,14 @@ module Konacha
33
34
  end
34
35
 
35
36
  def spec_paths
36
- Dir[File.join(spec_root, "**{,/*/**}/*{_spec,_test}.*")].uniq.map do |path|
37
- path.gsub(File.join(spec_root, ''), '')
38
- end
37
+ Rails.application.assets.each_file.find_all { |pathname|
38
+ pathname.to_s.start_with?(spec_root) &&
39
+ pathname.basename.to_s =~ /_spec\.|_test\./ &&
40
+ (pathname.extname == '.js' || Tilt[pathname]) &&
41
+ Rails.application.assets.content_type_of(pathname) == 'application/javascript'
42
+ }.map { |pathname|
43
+ pathname.to_s.gsub(File.join(spec_root, ''), '')
44
+ }
39
45
  end
40
46
  end
41
47
  end
data/spec/konacha_spec.rb CHANGED
@@ -54,6 +54,14 @@ describe Konacha do
54
54
  it "includes *_test.* files" do
55
55
  subject.should include("file_ending_in_test.js")
56
56
  end
57
+
58
+ it "only includes JavaScript files" do
59
+ subject.should_not include("do_not_include_spec.png")
60
+ end
61
+
62
+ it "does not include non-asset files" do
63
+ subject.should_not include("do_not_include_spec.js.bak")
64
+ end
57
65
  end
58
66
 
59
67
  it "can be configured in an initializer" do
@@ -885,12 +885,6 @@ var path = require('browser/path');
885
885
 
886
886
  exports = module.exports = Mocha;
887
887
 
888
- /**
889
- * Library version.
890
- */
891
-
892
- exports.version = '1.2.1';
893
-
894
888
  /**
895
889
  * Expose internals.
896
890
  */
@@ -1683,7 +1677,7 @@ function HTML(runner) {
1683
1677
 
1684
1678
  // suite
1685
1679
  var url = location.protocol + '//' + location.host + location.pathname + '?grep=^' + utils.escapeRegexp(suite.fullTitle());
1686
- var el = fragment('<li class="suite"><h1><a href="%s">%s</a></h1></li>', url, suite.title);
1680
+ var el = fragment('<li class="suite"><h1><a href="%s">%s</a></h1></li>', url, escape(suite.title));
1687
1681
 
1688
1682
  // container
1689
1683
  stack[0].appendChild(el);
@@ -1701,6 +1695,8 @@ function HTML(runner) {
1701
1695
  });
1702
1696
 
1703
1697
  runner.on('test end', function(test){
1698
+ window.scrollTo(0, document.body.scrollHeight);
1699
+
1704
1700
  // TODO: add to stats
1705
1701
  var percent = stats.tests / total * 100 | 0;
1706
1702
  if (progress) progress.update(percent).draw(ctx);
@@ -1821,13 +1817,14 @@ exports.HTML = require('./html');
1821
1817
  exports.List = require('./list');
1822
1818
  exports.Min = require('./min');
1823
1819
  exports.Spec = require('./spec');
1820
+ exports.Nyan = require('./nyan');
1821
+ exports.XUnit = require('./xunit');
1824
1822
  exports.Progress = require('./progress');
1825
1823
  exports.Landing = require('./landing');
1826
1824
  exports.JSONCov = require('./json-cov');
1827
1825
  exports.HTMLCov = require('./html-cov');
1828
1826
  exports.JSONStream = require('./json-stream');
1829
- exports.XUnit = require('./xunit')
1830
- exports.Teamcity = require('./teamcity')
1827
+ exports.Teamcity = require('./teamcity');
1831
1828
 
1832
1829
  }); // module: reporters/index.js
1833
1830
 
@@ -2389,6 +2386,7 @@ function Markdown(runner) {
2389
2386
  }); // module: reporters/markdown.js
2390
2387
 
2391
2388
  require.register("reporters/min.js", function(module, exports, require){
2389
+
2392
2390
  /**
2393
2391
  * Module dependencies.
2394
2392
  */
@@ -3284,16 +3282,16 @@ Runnable.prototype.run = function(fn){
3284
3282
  }
3285
3283
 
3286
3284
  // called multiple times
3287
- function multiple() {
3285
+ function multiple(err) {
3288
3286
  if (emitted) return;
3289
3287
  emitted = true;
3290
- self.emit('error', new Error('done() called multiple times'));
3288
+ self.emit('error', err || new Error('done() called multiple times'));
3291
3289
  }
3292
3290
 
3293
3291
  // finished
3294
3292
  function done(err) {
3295
3293
  if (self.timedOut) return;
3296
- if (finished) return multiple();
3294
+ if (finished) return multiple(err);
3297
3295
  self.clearTimeout();
3298
3296
  self.duration = new Date - start;
3299
3297
  finished = true;
@@ -3393,13 +3391,15 @@ Runner.prototype.constructor = Runner;
3393
3391
  * with number of tests matched.
3394
3392
  *
3395
3393
  * @param {RegExp} re
3394
+ * @param {Boolean} invert
3396
3395
  * @return {Runner} for chaining
3397
3396
  * @api public
3398
3397
  */
3399
3398
 
3400
- Runner.prototype.grep = function(re){
3399
+ Runner.prototype.grep = function(re, invert){
3401
3400
  debug('grep %s', re);
3402
3401
  this._grep = re;
3402
+ this._invert = invert;
3403
3403
  this.total = this.grepTotal(this.suite);
3404
3404
  return this;
3405
3405
  };
@@ -3418,7 +3418,9 @@ Runner.prototype.grepTotal = function(suite) {
3418
3418
  var total = 0;
3419
3419
 
3420
3420
  suite.eachTest(function(test){
3421
- if (self._grep.test(test.fullTitle())) total++;
3421
+ var match = self._grep.test(test.fullTitle());
3422
+ if (self._invert) match = !match;
3423
+ if (match) total++;
3422
3424
  });
3423
3425
 
3424
3426
  return total;
@@ -3658,7 +3660,9 @@ Runner.prototype.runTests = function(suite, fn){
3658
3660
  if (!test) return fn();
3659
3661
 
3660
3662
  // grep
3661
- if (!self._grep.test(test.fullTitle())) return next();
3663
+ var match = self._grep.test(test.fullTitle());
3664
+ if (self._invert) match = !match;
3665
+ if (!match) return next();
3662
3666
 
3663
3667
  // pending
3664
3668
  if (test.pending) {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: konacha
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-02 00:00:00.000000000 Z
12
+ date: 2012-07-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -155,22 +155,6 @@ dependencies:
155
155
  - - ! '>='
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
- - !ruby/object:Gem::Dependency
159
- name: vendorer
160
- requirement: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - ! '>='
164
- - !ruby/object:Gem::Version
165
- version: '0'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ! '>='
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
158
  - !ruby/object:Gem::Dependency
175
159
  name: tzinfo
176
160
  requirement: !ruby/object:Gem::Requirement
@@ -241,6 +225,8 @@ files:
241
225
  - spec/dummy/spec/javascripts/array_sum_cs_spec.js.coffee
242
226
  - spec/dummy/spec/javascripts/array_sum_js_spec.js
243
227
  - spec/dummy/spec/javascripts/assert_spec.js.coffee
228
+ - spec/dummy/spec/javascripts/do_not_include_spec.js.bak
229
+ - spec/dummy/spec/javascripts/do_not_include_spec.png
244
230
  - spec/dummy/spec/javascripts/failing_spec.js
245
231
  - spec/dummy/spec/javascripts/file_ending_in_test.js
246
232
  - spec/dummy/spec/javascripts/konacha_config.js
@@ -275,7 +261,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
275
261
  version: '0'
276
262
  segments:
277
263
  - 0
278
- hash: 1466616259803470458
264
+ hash: 3335057078696497361
279
265
  required_rubygems_version: !ruby/object:Gem::Requirement
280
266
  none: false
281
267
  requirements:
@@ -284,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
270
  version: '0'
285
271
  segments:
286
272
  - 0
287
- hash: 1466616259803470458
273
+ hash: 3335057078696497361
288
274
  requirements: []
289
275
  rubyforge_project:
290
276
  rubygems_version: 1.8.24
@@ -305,6 +291,8 @@ test_files:
305
291
  - spec/dummy/spec/javascripts/array_sum_cs_spec.js.coffee
306
292
  - spec/dummy/spec/javascripts/array_sum_js_spec.js
307
293
  - spec/dummy/spec/javascripts/assert_spec.js.coffee
294
+ - spec/dummy/spec/javascripts/do_not_include_spec.js.bak
295
+ - spec/dummy/spec/javascripts/do_not_include_spec.png
308
296
  - spec/dummy/spec/javascripts/failing_spec.js
309
297
  - spec/dummy/spec/javascripts/file_ending_in_test.js
310
298
  - spec/dummy/spec/javascripts/konacha_config.js