konacha 2.7.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|