konacha 2.7.0 → 3.0.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/.travis.yml +0 -4
- data/Gemfile +0 -3
- data/Gemfile-rails4 +0 -3
- data/History.md +8 -0
- data/README.md +3 -35
- data/app/assets/javascripts/konacha/iframe.js +7 -0
- data/konacha.gemspec +3 -2
- data/lib/konacha.rb +1 -1
- data/lib/konacha/engine.rb +11 -0
- data/lib/konacha/runner.rb +1 -12
- data/spec/dummy/spec/javascripts/failing_spec.js +9 -0
- data/spec/engine_spec.rb +31 -0
- data/spec/runner_spec.rb +20 -17
- data/spec/spec_helper.rb +7 -0
- data/vendor/assets/javascripts/mocha.js +103 -68
- data/vendor/assets/stylesheets/mocha.css +16 -12
- metadata +22 -10
data/.travis.yml
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 1.8.7
|
4
3
|
- 1.9.3
|
5
4
|
- 2.0.0
|
6
5
|
gemfile:
|
@@ -10,8 +9,5 @@ before_script:
|
|
10
9
|
- sh -e /etc/init.d/xvfb start
|
11
10
|
- export DISPLAY=:99.0
|
12
11
|
matrix:
|
13
|
-
exclude:
|
14
|
-
- gemfile: Gemfile-rails4
|
15
|
-
rvm: 1.8.7
|
16
12
|
allow_failures:
|
17
13
|
- { gemfile: Gemfile-rails4 }
|
data/Gemfile
CHANGED
data/Gemfile-rails4
CHANGED
@@ -5,6 +5,3 @@ gem "railties", github: "rails/rails"
|
|
5
5
|
gem "activemodel", github: "rails/rails"
|
6
6
|
gem "journey", github: "rails/journey"
|
7
7
|
gem "sprockets-rails", github: "rails/sprockets-rails"
|
8
|
-
|
9
|
-
# https://github.com/jonleighton/poltergeist/issues/320
|
10
|
-
gem 'faye-websocket', '~> 0.4.4'
|
data/History.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# master
|
2
2
|
|
3
|
+
# 3.0.0
|
4
|
+
|
5
|
+
* Update mocha (1.10.0)
|
6
|
+
* Fix reporting of errors in asynchronous tests (#136)
|
7
|
+
* Add a Konacha.config option to set formatters (#137)
|
8
|
+
* Test against latest version of Poltergeist
|
9
|
+
* Ruby 1.8.7 is no longer supported
|
10
|
+
|
3
11
|
# 2.7.0
|
4
12
|
|
5
13
|
* Fix semantics of pending event for RSpec reporters (#131, #132)
|
data/README.md
CHANGED
@@ -255,42 +255,10 @@ describe("templating", function() {
|
|
255
255
|
});
|
256
256
|
```
|
257
257
|
|
258
|
-
## Upgrading from Konacha
|
258
|
+
## Upgrading from Konacha 2.x
|
259
259
|
|
260
|
-
|
261
|
-
|
262
|
-
As of Konacha 2.0, each test file is run inside an isolated iframe. For
|
263
|
-
compatibility with Konacha 1.x, the iframe's `<body>` element will have
|
264
|
-
`id="konacha"` set on it.
|
265
|
-
|
266
|
-
Previously, all test files would run in the same environment. Thus, if only
|
267
|
-
one test file pulled in an external library, all tests would be able to use
|
268
|
-
it. Now test files are run in isolation. If you encounter an undefined
|
269
|
-
JavaScript module in your test, you may be missing an explicit `//= require`
|
270
|
-
call somewhere.
|
271
|
-
|
272
|
-
### Options
|
273
|
-
|
274
|
-
In Konacha 1.x you would set `Konacha.mochaOptions` in `konacha_config.js`:
|
275
|
-
|
276
|
-
```javascript
|
277
|
-
// Old syntax
|
278
|
-
Konacha.mochaOptions.ignoreLeaks = true;
|
279
|
-
```
|
280
|
-
|
281
|
-
The `konacha_config.js` file is no longer used by Konacha 2.0. Instead, call
|
282
|
-
Mocha's own methods in [`spec_helper.js`](#spec-helper):
|
283
|
-
|
284
|
-
```javascript
|
285
|
-
// New syntax
|
286
|
-
mocha.ignoreLeaks();
|
287
|
-
```
|
288
|
-
|
289
|
-
### Global `mocha`
|
290
|
-
|
291
|
-
Konacha 2.0 ships with an upgraded Mocha. Some objects that were previously
|
292
|
-
available on the global `mocha` object might now be located on `Mocha`. If you
|
293
|
-
get an error message to this effect, adjust your code accordingly.
|
260
|
+
The only backward-incompatible change in Konacha 3.0 is that Ruby 1.8.7 is
|
261
|
+
no longer supported. Please upgrade to 1.9.3 or 2.0.
|
294
262
|
|
295
263
|
## Contributing
|
296
264
|
|
@@ -5,6 +5,13 @@ window.Konacha = {
|
|
5
5
|
}
|
6
6
|
};
|
7
7
|
|
8
|
+
// Push errors to parent iframe.
|
9
|
+
window.onerror = function() {
|
10
|
+
if (parent.onerror) {
|
11
|
+
return parent.onerror.apply(parent, arguments);
|
12
|
+
}
|
13
|
+
};
|
14
|
+
|
8
15
|
window.Mocha = Object.create(parent.Mocha);
|
9
16
|
window.mocha = Object.create(parent.mocha);
|
10
17
|
|
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 = "
|
20
|
+
gem.version = "3.0.0"
|
21
21
|
gem.license = "MIT"
|
22
22
|
|
23
23
|
gem.add_dependency "railties", ">= 3.1", "< 5"
|
@@ -32,5 +32,6 @@ the asset pipeline and engines.}
|
|
32
32
|
gem.add_development_dependency "coffee-script"
|
33
33
|
gem.add_development_dependency "ejs"
|
34
34
|
gem.add_development_dependency "tzinfo"
|
35
|
-
gem.add_development_dependency "
|
35
|
+
gem.add_development_dependency "selenium-webdriver"
|
36
|
+
gem.add_development_dependency "poltergeist", "~> 1.3.0"
|
36
37
|
end
|
data/lib/konacha.rb
CHANGED
@@ -29,7 +29,7 @@ module Konacha
|
|
29
29
|
yield config
|
30
30
|
end
|
31
31
|
|
32
|
-
delegate :port, :spec_dir, :spec_matcher, :application, :driver, :runner_port, :to => :config
|
32
|
+
delegate :port, :spec_dir, :spec_matcher, :application, :driver, :runner_port, :formatters, :to => :config
|
33
33
|
|
34
34
|
def spec_root
|
35
35
|
File.join(Rails.root, config.spec_dir)
|
data/lib/konacha/engine.rb
CHANGED
@@ -20,6 +20,16 @@ module Konacha
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
+
def self.formatters
|
24
|
+
if ENV['FORMAT']
|
25
|
+
ENV['FORMAT'].split(',').map do |string|
|
26
|
+
eval(string).new(STDOUT)
|
27
|
+
end
|
28
|
+
else
|
29
|
+
[Konacha::Formatter.new(STDOUT)]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
23
33
|
initializer "konacha.environment" do |app|
|
24
34
|
options = app.config.konacha
|
25
35
|
|
@@ -31,6 +41,7 @@ module Konacha
|
|
31
41
|
options.stylesheets ||= %w(application)
|
32
42
|
options.verbose ||= false
|
33
43
|
options.runner_port ||= nil
|
44
|
+
options.formatters ||= self.class.formatters
|
34
45
|
|
35
46
|
app.config.assets.paths << app.root.join(options.spec_dir).to_s
|
36
47
|
end
|
data/lib/konacha/runner.rb
CHANGED
@@ -11,7 +11,7 @@ module Konacha
|
|
11
11
|
|
12
12
|
def initialize(session = nil)
|
13
13
|
@session = session
|
14
|
-
@reporter = Konacha::Reporter.new(*formatters)
|
14
|
+
@reporter = Konacha::Reporter.new(*Konacha.formatters)
|
15
15
|
end
|
16
16
|
|
17
17
|
def run(path = '/')
|
@@ -40,16 +40,5 @@ module Konacha
|
|
40
40
|
def session
|
41
41
|
@session ||= Capybara::Session.new(Konacha.driver, Konacha.application)
|
42
42
|
end
|
43
|
-
|
44
|
-
private
|
45
|
-
def formatters
|
46
|
-
if ENV['FORMAT']
|
47
|
-
ENV['FORMAT'].split(',').map do |string|
|
48
|
-
eval(string).new(STDOUT)
|
49
|
-
end
|
50
|
-
else
|
51
|
-
[Konacha::Formatter.new(STDOUT)]
|
52
|
-
end
|
53
|
-
end
|
54
43
|
end
|
55
44
|
end
|
@@ -8,4 +8,13 @@ describe("failure", function(){
|
|
8
8
|
// throwing real Error objects.
|
9
9
|
throw new Error("this one errors out");
|
10
10
|
});
|
11
|
+
|
12
|
+
it("errors asynchronously", function(done) {
|
13
|
+
setTimeout(function() {
|
14
|
+
(2 + 2).should.equal(5);
|
15
|
+
}, 0);
|
16
|
+
setTimeout(function() {
|
17
|
+
done();
|
18
|
+
}, 10);
|
19
|
+
});
|
11
20
|
});
|
data/spec/engine_spec.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Konacha::Engine do
|
4
|
+
describe ".formatters" do
|
5
|
+
it "defaults to a Konacha::Formatter pointing to STDOUT" do
|
6
|
+
Konacha::Formatter.should_receive(:new).with(STDOUT) { :formatter }
|
7
|
+
Konacha::Engine.formatters.should == [:formatter]
|
8
|
+
end
|
9
|
+
|
10
|
+
context "with a FORMAT environment variable" do
|
11
|
+
before do
|
12
|
+
class TestFormatter
|
13
|
+
def initialize(io)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
ENV['FORMAT'] = 'Konacha::Formatter,TestFormatter'
|
17
|
+
end
|
18
|
+
|
19
|
+
after do
|
20
|
+
Object.send(:remove_const, :TestFormatter)
|
21
|
+
ENV.delete('FORMAT')
|
22
|
+
end
|
23
|
+
|
24
|
+
it "creates the specified formatters" do
|
25
|
+
Konacha::Formatter.should_receive(:new).with(STDOUT) { :formatter }
|
26
|
+
TestFormatter.should_receive(:new).with(STDOUT) { :test_formatter }
|
27
|
+
Konacha::Engine.formatters.should == [:formatter, :test_formatter]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/runner_spec.rb
CHANGED
@@ -3,25 +3,12 @@ require 'spec_helper'
|
|
3
3
|
describe Konacha::Runner do
|
4
4
|
before do
|
5
5
|
Konacha.mode = :runner
|
6
|
-
STDOUT.stub(:puts)
|
7
6
|
end
|
8
|
-
describe ".new" do
|
9
|
-
|
10
|
-
before do
|
11
|
-
class TestFormatter
|
12
|
-
def initialize(io)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
ENV['FORMAT'] = 'Konacha::Formatter,TestFormatter'
|
16
|
-
end
|
17
|
-
|
18
|
-
after do
|
19
|
-
Object.send(:remove_const, :TestFormatter)
|
20
|
-
ENV.delete('FORMAT')
|
21
|
-
end
|
22
7
|
|
23
|
-
|
24
|
-
|
8
|
+
describe ".new" do
|
9
|
+
it 'creates a reporter with formatters returned by Konacha.formatters' do
|
10
|
+
Konacha.should_receive(:formatters) { :formatters }
|
11
|
+
Konacha::Reporter.should_receive(:new).with(:formatters)
|
25
12
|
described_class.new
|
26
13
|
end
|
27
14
|
|
@@ -43,6 +30,7 @@ describe Konacha::Runner do
|
|
43
30
|
before do
|
44
31
|
Konacha.configure do |config|
|
45
32
|
config.driver = driver
|
33
|
+
config.formatters = [Konacha::Formatter.new(StringIO.new)]
|
46
34
|
end
|
47
35
|
end
|
48
36
|
|
@@ -101,6 +89,20 @@ describe Konacha::Runner do
|
|
101
89
|
'error' => {'message' => 'this one errors out', 'name' => 'Error'}}}
|
102
90
|
end
|
103
91
|
|
92
|
+
let(:error_async) do
|
93
|
+
{'event' => 'fail',
|
94
|
+
'type' => 'test',
|
95
|
+
'data' => {
|
96
|
+
'title' => 'errors asynchronously',
|
97
|
+
'fullTitle' => 'failure errors asynchronously',
|
98
|
+
'parentFullTitle' => 'failure',
|
99
|
+
'status' => 'failed',
|
100
|
+
'path' => 'failing_spec.js',
|
101
|
+
# Accept anything for 'message' since async errors have URLs, which
|
102
|
+
# vary on every run, and line #, which may change in Chai releases.
|
103
|
+
'error' => {'message' => anything(), 'name' => 'Error'}}}
|
104
|
+
end
|
105
|
+
|
104
106
|
let(:pass) do
|
105
107
|
{'event' => 'pass',
|
106
108
|
'type' => 'test',
|
@@ -134,6 +136,7 @@ describe Konacha::Runner do
|
|
134
136
|
subject.reporter.should_receive(:process_mocha_event).with(test)
|
135
137
|
subject.reporter.should_receive(:process_mocha_event).with(failure)
|
136
138
|
subject.reporter.should_receive(:process_mocha_event).with(error)
|
139
|
+
subject.reporter.should_receive(:process_mocha_event).with(error_async)
|
137
140
|
subject.reporter.should_receive(:process_mocha_event).with(pass)
|
138
141
|
subject.reporter.should_receive(:process_mocha_event).with(pending)
|
139
142
|
subject.reporter.should_receive(:process_mocha_event).with(end_event)
|
data/spec/spec_helper.rb
CHANGED
@@ -21,6 +21,13 @@ Capybara.configure do |config|
|
|
21
21
|
config.app = Konacha.application
|
22
22
|
end
|
23
23
|
|
24
|
+
Capybara.register_driver :poltergeist do |app|
|
25
|
+
# Work around a bug in PhantomJS where `return true` from a
|
26
|
+
# window.onerror handler does not prevent an uncaught exception
|
27
|
+
# from being reported to Ruby.
|
28
|
+
Capybara::Poltergeist::Driver.new(app, :js_errors => false)
|
29
|
+
end
|
30
|
+
|
24
31
|
module Konacha
|
25
32
|
module FeatureSpec
|
26
33
|
def app
|
@@ -1053,7 +1053,7 @@ var Suite = require('../suite')
|
|
1053
1053
|
module.exports = function(suite){
|
1054
1054
|
var suites = [suite];
|
1055
1055
|
|
1056
|
-
suite.on('pre-require', function(context){
|
1056
|
+
suite.on('pre-require', function(context, file, mocha){
|
1057
1057
|
|
1058
1058
|
/**
|
1059
1059
|
* Execute before running tests.
|
@@ -1095,6 +1095,16 @@ module.exports = function(suite){
|
|
1095
1095
|
if (suites.length > 1) suites.shift();
|
1096
1096
|
var suite = Suite.create(suites[0], title);
|
1097
1097
|
suites.unshift(suite);
|
1098
|
+
return suite;
|
1099
|
+
};
|
1100
|
+
|
1101
|
+
/**
|
1102
|
+
* Exclusive test-case.
|
1103
|
+
*/
|
1104
|
+
|
1105
|
+
context.suite.only = function(title, fn){
|
1106
|
+
var suite = context.suite(title, fn);
|
1107
|
+
mocha.grep(suite.fullTitle());
|
1098
1108
|
};
|
1099
1109
|
|
1100
1110
|
/**
|
@@ -1104,7 +1114,26 @@ module.exports = function(suite){
|
|
1104
1114
|
*/
|
1105
1115
|
|
1106
1116
|
context.test = function(title, fn){
|
1107
|
-
|
1117
|
+
var test = new Test(title, fn);
|
1118
|
+
suites[0].addTest(test);
|
1119
|
+
return test;
|
1120
|
+
};
|
1121
|
+
|
1122
|
+
/**
|
1123
|
+
* Exclusive test-case.
|
1124
|
+
*/
|
1125
|
+
|
1126
|
+
context.test.only = function(title, fn){
|
1127
|
+
var test = context.test(title, fn);
|
1128
|
+
mocha.grep(test.fullTitle());
|
1129
|
+
};
|
1130
|
+
|
1131
|
+
/**
|
1132
|
+
* Pending test case.
|
1133
|
+
*/
|
1134
|
+
|
1135
|
+
context.test.skip = function(title){
|
1136
|
+
context.test(title);
|
1108
1137
|
};
|
1109
1138
|
});
|
1110
1139
|
};
|
@@ -1815,10 +1844,7 @@ exports.list = function(failures){
|
|
1815
1844
|
|
1816
1845
|
// actual / expected diff
|
1817
1846
|
if ('string' == typeof actual && 'string' == typeof expected) {
|
1818
|
-
|
1819
|
-
|
1820
|
-
if (len < 20) msg = errorDiff(err, 'Chars', escape);
|
1821
|
-
else msg = errorDiff(err, 'Words', escape);
|
1847
|
+
msg = errorDiff(err, 'Words', escape);
|
1822
1848
|
|
1823
1849
|
// linenos
|
1824
1850
|
var lines = msg.split('\n');
|
@@ -4583,6 +4609,8 @@ Runner.prototype.run = function(fn){
|
|
4583
4609
|
|
4584
4610
|
function filterLeaks(ok, globals) {
|
4585
4611
|
return filter(globals, function(key){
|
4612
|
+
// Firefox and Chrome exposes iframes as index inside the window object
|
4613
|
+
if (/^d+/.test(key)) return false;
|
4586
4614
|
var matched = filter(ok, function(ok){
|
4587
4615
|
if (~ok.indexOf('*')) return 0 == key.indexOf(ok.split('*')[0]);
|
4588
4616
|
// Opera and IE expose global variables for HTML element IDs (issue #243)
|
@@ -5224,6 +5252,17 @@ exports.highlightTags = function(name) {
|
|
5224
5252
|
};
|
5225
5253
|
|
5226
5254
|
}); // module: utils.js
|
5255
|
+
|
5256
|
+
/**
|
5257
|
+
* Save timer references to avoid Sinon interfering (see GH-237).
|
5258
|
+
*/
|
5259
|
+
|
5260
|
+
var Date = window.Date;
|
5261
|
+
var setTimeout = window.setTimeout;
|
5262
|
+
var setInterval = window.setInterval;
|
5263
|
+
var clearTimeout = window.clearTimeout;
|
5264
|
+
var clearInterval = window.clearInterval;
|
5265
|
+
|
5227
5266
|
/**
|
5228
5267
|
* Node shims.
|
5229
5268
|
*
|
@@ -5233,7 +5272,7 @@ exports.highlightTags = function(name) {
|
|
5233
5272
|
* the browser.
|
5234
5273
|
*/
|
5235
5274
|
|
5236
|
-
process = {};
|
5275
|
+
var process = {};
|
5237
5276
|
process.exit = function(status){};
|
5238
5277
|
process.stdout = {};
|
5239
5278
|
global = window;
|
@@ -5260,79 +5299,75 @@ process.on = function(e, fn){
|
|
5260
5299
|
}
|
5261
5300
|
};
|
5262
5301
|
|
5263
|
-
|
5264
|
-
|
5265
|
-
|
5266
|
-
/**
|
5267
|
-
* Expose mocha.
|
5268
|
-
*/
|
5302
|
+
/**
|
5303
|
+
* Expose mocha.
|
5304
|
+
*/
|
5269
5305
|
|
5270
|
-
|
5271
|
-
|
5306
|
+
var Mocha = window.Mocha = require('mocha'),
|
5307
|
+
mocha = window.mocha = new Mocha({ reporter: 'html' });
|
5272
5308
|
|
5273
|
-
|
5274
|
-
|
5309
|
+
var immediateQueue = []
|
5310
|
+
, immediateTimeout;
|
5275
5311
|
|
5276
|
-
|
5277
|
-
|
5278
|
-
|
5279
|
-
|
5280
|
-
|
5281
|
-
|
5282
|
-
|
5283
|
-
|
5284
|
-
|
5285
|
-
}
|
5312
|
+
function timeslice() {
|
5313
|
+
var immediateStart = new Date().getTime();
|
5314
|
+
while (immediateQueue.length && (new Date().getTime() - immediateStart) < 100) {
|
5315
|
+
immediateQueue.shift()();
|
5316
|
+
}
|
5317
|
+
if (immediateQueue.length) {
|
5318
|
+
immediateTimeout = setTimeout(timeslice, 0);
|
5319
|
+
} else {
|
5320
|
+
immediateTimeout = null;
|
5286
5321
|
}
|
5322
|
+
}
|
5287
5323
|
|
5288
|
-
|
5289
|
-
|
5290
|
-
|
5324
|
+
/**
|
5325
|
+
* High-performance override of Runner.immediately.
|
5326
|
+
*/
|
5291
5327
|
|
5292
|
-
|
5293
|
-
|
5294
|
-
|
5295
|
-
|
5296
|
-
|
5297
|
-
|
5328
|
+
Mocha.Runner.immediately = function(callback) {
|
5329
|
+
immediateQueue.push(callback);
|
5330
|
+
if (!immediateTimeout) {
|
5331
|
+
immediateTimeout = setTimeout(timeslice, 0);
|
5332
|
+
}
|
5333
|
+
};
|
5298
5334
|
|
5299
|
-
|
5300
|
-
|
5301
|
-
|
5302
|
-
|
5335
|
+
/**
|
5336
|
+
* Override ui to ensure that the ui functions are initialized.
|
5337
|
+
* Normally this would happen in Mocha.prototype.loadFiles.
|
5338
|
+
*/
|
5303
5339
|
|
5304
|
-
|
5305
|
-
|
5306
|
-
|
5307
|
-
|
5308
|
-
|
5340
|
+
mocha.ui = function(ui){
|
5341
|
+
Mocha.prototype.ui.call(this, ui);
|
5342
|
+
this.suite.emit('pre-require', window, null, this);
|
5343
|
+
return this;
|
5344
|
+
};
|
5309
5345
|
|
5310
|
-
|
5311
|
-
|
5312
|
-
|
5346
|
+
/**
|
5347
|
+
* Setup mocha with the given setting options.
|
5348
|
+
*/
|
5313
5349
|
|
5314
|
-
|
5315
|
-
|
5316
|
-
|
5317
|
-
|
5318
|
-
|
5350
|
+
mocha.setup = function(opts){
|
5351
|
+
if ('string' == typeof opts) opts = { ui: opts };
|
5352
|
+
for (var opt in opts) this[opt](opts[opt]);
|
5353
|
+
return this;
|
5354
|
+
};
|
5319
5355
|
|
5320
|
-
|
5321
|
-
|
5322
|
-
|
5356
|
+
/**
|
5357
|
+
* Run mocha, returning the Runner.
|
5358
|
+
*/
|
5323
5359
|
|
5324
|
-
|
5325
|
-
|
5326
|
-
|
5360
|
+
mocha.run = function(fn){
|
5361
|
+
var options = mocha.options;
|
5362
|
+
mocha.globals('location');
|
5327
5363
|
|
5328
|
-
|
5329
|
-
|
5330
|
-
|
5364
|
+
var query = Mocha.utils.parseQuery(window.location.search || '');
|
5365
|
+
if (query.grep) mocha.grep(query.grep);
|
5366
|
+
if (query.invert) mocha.invert();
|
5331
5367
|
|
5332
|
-
|
5333
|
-
|
5334
|
-
|
5335
|
-
|
5336
|
-
|
5337
|
-
})();
|
5368
|
+
return Mocha.prototype.run.call(mocha, function(){
|
5369
|
+
Mocha.utils.highlightTags('code');
|
5370
|
+
if (fn) fn();
|
5371
|
+
});
|
5372
|
+
};
|
5338
5373
|
})();
|
@@ -1,8 +1,12 @@
|
|
1
1
|
@charset "utf-8";
|
2
2
|
|
3
3
|
body {
|
4
|
+
margin:0;
|
5
|
+
}
|
6
|
+
|
7
|
+
#mocha {
|
4
8
|
font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
|
5
|
-
|
9
|
+
margin: 60px 50px;
|
6
10
|
}
|
7
11
|
|
8
12
|
#mocha ul, #mocha li {
|
@@ -38,7 +42,7 @@ body {
|
|
38
42
|
font-size: .8em;
|
39
43
|
}
|
40
44
|
|
41
|
-
.hidden {
|
45
|
+
#mocha .hidden {
|
42
46
|
display: none;
|
43
47
|
}
|
44
48
|
|
@@ -59,7 +63,7 @@ body {
|
|
59
63
|
|
60
64
|
#mocha .test.pending:hover h2::after {
|
61
65
|
content: '(pending)';
|
62
|
-
font-family: arial;
|
66
|
+
font-family: arial, sans-serif;
|
63
67
|
}
|
64
68
|
|
65
69
|
#mocha .test.pass.medium .duration {
|
@@ -185,7 +189,7 @@ body {
|
|
185
189
|
|
186
190
|
#mocha-error {
|
187
191
|
color: #c00;
|
188
|
-
font-size: 1.
|
192
|
+
font-size: 1.5em;
|
189
193
|
font-weight: 100;
|
190
194
|
letter-spacing: 1px;
|
191
195
|
}
|
@@ -229,18 +233,18 @@ body {
|
|
229
233
|
height: 40px;
|
230
234
|
}
|
231
235
|
|
232
|
-
code .comment { color: #ddd }
|
233
|
-
code .init { color: #2F6FAD }
|
234
|
-
code .string { color: #5890AD }
|
235
|
-
code .keyword { color: #8A6343 }
|
236
|
-
code .number { color: #2F6FAD }
|
236
|
+
#mocha code .comment { color: #ddd }
|
237
|
+
#mocha code .init { color: #2F6FAD }
|
238
|
+
#mocha code .string { color: #5890AD }
|
239
|
+
#mocha code .keyword { color: #8A6343 }
|
240
|
+
#mocha code .number { color: #2F6FAD }
|
237
241
|
|
238
242
|
@media screen and (max-device-width: 480px) {
|
239
|
-
|
240
|
-
|
243
|
+
#mocha {
|
244
|
+
margin: 60px 0px;
|
241
245
|
}
|
242
246
|
|
243
|
-
#stats {
|
247
|
+
#mocha #stats {
|
244
248
|
position: absolute;
|
245
249
|
}
|
246
250
|
}
|
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:
|
4
|
+
version: 3.0.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: 2013-05-
|
12
|
+
date: 2013-05-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -199,6 +199,22 @@ dependencies:
|
|
199
199
|
- - ! '>='
|
200
200
|
- !ruby/object:Gem::Version
|
201
201
|
version: '0'
|
202
|
+
- !ruby/object:Gem::Dependency
|
203
|
+
name: selenium-webdriver
|
204
|
+
requirement: !ruby/object:Gem::Requirement
|
205
|
+
none: false
|
206
|
+
requirements:
|
207
|
+
- - ! '>='
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0'
|
210
|
+
type: :development
|
211
|
+
prerelease: false
|
212
|
+
version_requirements: !ruby/object:Gem::Requirement
|
213
|
+
none: false
|
214
|
+
requirements:
|
215
|
+
- - ! '>='
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
202
218
|
- !ruby/object:Gem::Dependency
|
203
219
|
name: poltergeist
|
204
220
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,7 +222,7 @@ dependencies:
|
|
206
222
|
requirements:
|
207
223
|
- - ~>
|
208
224
|
- !ruby/object:Gem::Version
|
209
|
-
version: 1.0
|
225
|
+
version: 1.3.0
|
210
226
|
type: :development
|
211
227
|
prerelease: false
|
212
228
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -214,7 +230,7 @@ dependencies:
|
|
214
230
|
requirements:
|
215
231
|
- - ~>
|
216
232
|
- !ruby/object:Gem::Version
|
217
|
-
version: 1.0
|
233
|
+
version: 1.3.0
|
218
234
|
description: ! 'Konacha is a Rails engine that allows you to test your JavaScript
|
219
235
|
with the
|
220
236
|
|
@@ -297,6 +313,7 @@ files:
|
|
297
313
|
- spec/dummy/spec/javascripts/templates/hello.jst.ejs
|
298
314
|
- spec/dummy/spec/javascripts/templating_spec.js
|
299
315
|
- spec/dummy/spec/javascripts/ui_spec.js
|
316
|
+
- spec/engine_spec.rb
|
300
317
|
- spec/error_handling_spec.rb
|
301
318
|
- spec/formatter_spec.rb
|
302
319
|
- spec/konacha_spec.rb
|
@@ -326,18 +343,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
326
343
|
- - ! '>='
|
327
344
|
- !ruby/object:Gem::Version
|
328
345
|
version: '0'
|
329
|
-
segments:
|
330
|
-
- 0
|
331
|
-
hash: 3177740356204652019
|
332
346
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
333
347
|
none: false
|
334
348
|
requirements:
|
335
349
|
- - ! '>='
|
336
350
|
- !ruby/object:Gem::Version
|
337
351
|
version: '0'
|
338
|
-
segments:
|
339
|
-
- 0
|
340
|
-
hash: 3177740356204652019
|
341
352
|
requirements: []
|
342
353
|
rubyforge_project:
|
343
354
|
rubygems_version: 1.8.23
|
@@ -377,6 +388,7 @@ test_files:
|
|
377
388
|
- spec/dummy/spec/javascripts/templates/hello.jst.ejs
|
378
389
|
- spec/dummy/spec/javascripts/templating_spec.js
|
379
390
|
- spec/dummy/spec/javascripts/ui_spec.js
|
391
|
+
- spec/engine_spec.rb
|
380
392
|
- spec/error_handling_spec.rb
|
381
393
|
- spec/formatter_spec.rb
|
382
394
|
- spec/konacha_spec.rb
|