konacha 0.9.1 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.md +8 -1
- data/README.md +3 -3
- data/app/helpers/konacha/specs_helper.rb +1 -1
- data/app/views/konacha/specs/specs.html.erb +4 -4
- data/konacha.gemspec +1 -1
- data/lib/konacha/runner.rb +2 -0
- data/lib/tasks/konacha.rake +2 -2
- data/spec/dummy/config/environments/development.rb +27 -0
- data/spec/spec_helper.rb +4 -20
- data/spec/views/specs/specs.html.erb_spec.rb +25 -0
- metadata +21 -20
- data/spec/dummy/config/environments/test.rb +0 -29
data/History.md
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
# master
|
2
2
|
|
3
|
+
# 0.10.0
|
4
|
+
|
5
|
+
* Rename `konacha:ci` and `konacha:server` task to `konacha:run` and
|
6
|
+
`konacha:serve`
|
7
|
+
* Really don't require spec dependencies multiple times (#3)
|
8
|
+
|
3
9
|
# 0.9.1
|
4
10
|
|
5
11
|
* Support foo_spec.coffee files (without .js)
|
6
|
-
* Rename Konacha::Spec#basename to #asset_name
|
7
12
|
* Switch default port to 3500 to avoid collisions with HTTP proxies (like Charles)
|
8
13
|
* Update vendored copies of mocha (0.14.0+) and chai (0.4.2+)
|
9
14
|
* Do not require spec dependencies multiple times (#3)
|
10
15
|
* Support running a subset of specs via a subdirectory path
|
16
|
+
* Move #test div off screen: It's still layouted and CSS-visible,
|
17
|
+
but not actually visible in the browser window
|
11
18
|
|
12
19
|
# 0.9.0
|
13
20
|
|
data/README.md
CHANGED
@@ -56,12 +56,12 @@ Or, if you prefer CoffeeScript, in `spec/javascripts/array_sum_spec.js.coffee`:
|
|
56
56
|
it "returns the sum of numeric elements", ->
|
57
57
|
[1,2,3].sum().should.equal(6)
|
58
58
|
|
59
|
-
The `konacha:
|
59
|
+
The `konacha:serve` rake task starts a server for your tests. You can go to the root
|
60
60
|
page to run all specs (e.g. `http://localhost:3500/`), a sub page to run an individual
|
61
61
|
spec file (e.g. `http://localhost:3500/array_sum_spec`), or a path to a subdirectory to
|
62
62
|
run a subset of specs (e.g. `http://localhost:3500/models`).
|
63
63
|
|
64
|
-
Alternatively, you can run the specs headlessly with the `konacha:
|
64
|
+
Alternatively, you can run the specs headlessly with the `konacha:run` task.
|
65
65
|
|
66
66
|
## Spec Helper
|
67
67
|
|
@@ -103,7 +103,7 @@ environment.
|
|
103
103
|
|
104
104
|
The `spec_dir` option tells Konacha where to find JavaScript specs. The `interface`
|
105
105
|
option specifies the test interface used by Mocha (see below). `driver` names a
|
106
|
-
Capybara driver used for the
|
106
|
+
Capybara driver used for the `run` task (try `:webkit`, after installing
|
107
107
|
[capybara-webkit](https://github.com/thoughtbot/capybara-webkit)).
|
108
108
|
|
109
109
|
The values above are the defaults.
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
|
5
|
-
<title>
|
6
|
-
<%= stylesheet_link_tag "mocha" %>
|
7
|
-
<%= stylesheet_link_tag "konacha" %>
|
8
|
-
<%= javascript_include_tag "jquery", "mocha", "chai", "konacha/#{Konacha.mode}" %>
|
5
|
+
<title>Konacha Tests</title>
|
6
|
+
<%= stylesheet_link_tag "mocha", :debug => false %>
|
7
|
+
<%= stylesheet_link_tag "konacha", :debug => false %>
|
8
|
+
<%= javascript_include_tag "jquery", "mocha", "chai", "konacha/#{Konacha.mode}", :debug => false %>
|
9
9
|
<script>
|
10
10
|
mocha.setup(<%= raw Konacha.interface.to_json %>);
|
11
11
|
var expect = chai.expect,
|
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 = "0.
|
20
|
+
gem.version = "0.10.0"
|
21
21
|
|
22
22
|
gem.add_dependency "jquery-rails"
|
23
23
|
gem.add_dependency "rails", "~> 3.1"
|
data/lib/konacha/runner.rb
CHANGED
data/lib/tasks/konacha.rake
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
namespace :konacha do
|
2
2
|
desc "Run JavaScript specs interactively"
|
3
|
-
task :
|
3
|
+
task :serve => :environment do
|
4
4
|
Konacha.serve
|
5
5
|
end
|
6
6
|
|
7
7
|
desc "Run JavaScript specs non-interactively"
|
8
|
-
task :
|
8
|
+
task :run => :environment do
|
9
9
|
Konacha.run
|
10
10
|
end
|
11
11
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb
|
3
|
+
|
4
|
+
# In the development environment your application's code is reloaded on
|
5
|
+
# every request. This slows down response time but is perfect for development
|
6
|
+
# since you don't have to restart the web server when you make code changes.
|
7
|
+
config.cache_classes = false
|
8
|
+
|
9
|
+
# Log error messages when you accidentally call methods on nil.
|
10
|
+
config.whiny_nils = true
|
11
|
+
|
12
|
+
# Show full error reports and disable caching
|
13
|
+
config.consider_all_requests_local = true
|
14
|
+
config.action_controller.perform_caching = false
|
15
|
+
|
16
|
+
# Print deprecation notices to the Rails logger
|
17
|
+
config.active_support.deprecation = :log
|
18
|
+
|
19
|
+
# Only use best-standards-support built into browsers
|
20
|
+
config.action_dispatch.best_standards_support = :builtin
|
21
|
+
|
22
|
+
# Do not compress assets
|
23
|
+
config.assets.compress = false
|
24
|
+
|
25
|
+
# Expands the lines which load the assets
|
26
|
+
config.assets.debug = true
|
27
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
|
1
|
+
# In a real-world app, `rake konacha:serve` and `rake konacha:run` will use
|
2
|
+
# the development environment, so we test with the development defaults.
|
3
|
+
# In particular, it is important to test with `config.assets.debug = true`.
|
4
|
+
ENV["RAILS_ENV"] = "development"
|
2
5
|
|
3
6
|
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
4
7
|
require "rspec/rails"
|
@@ -16,22 +19,3 @@ Capybara.configure do |config|
|
|
16
19
|
config.default_driver = :selenium_with_firebug
|
17
20
|
config.app = Konacha.application
|
18
21
|
end
|
19
|
-
|
20
|
-
module SpecDoubleHelpers
|
21
|
-
def asset_double(asset_name, dependencies = [])
|
22
|
-
asset = double("asset called '#{asset_name}'")
|
23
|
-
asset.stub(:to_a).and_return([dependencies, asset].flatten)
|
24
|
-
asset.stub(:logical_path).and_return(asset_name)
|
25
|
-
view.asset_paths.stub(:asset_for).with(asset_name, "js").and_return(asset)
|
26
|
-
asset
|
27
|
-
end
|
28
|
-
|
29
|
-
def spec_double(asset_name, dependencies = [])
|
30
|
-
asset_double(asset_name, dependencies)
|
31
|
-
double("spec called '#{asset_name}'", :asset_name => asset_name)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
RSpec.configure do |config|
|
36
|
-
config.include SpecDoubleHelpers, :type => :view
|
37
|
-
end
|
@@ -13,6 +13,19 @@ describe "konacha/specs/specs" do
|
|
13
13
|
rendered.should have_css("script[src='/assets/konacha/runner.js']")
|
14
14
|
end
|
15
15
|
|
16
|
+
def asset_double(asset_name, dependencies = [])
|
17
|
+
asset = double("asset called '#{asset_name}'")
|
18
|
+
asset.stub(:to_a).and_return([dependencies, asset].flatten)
|
19
|
+
asset.stub(:logical_path).and_return(asset_name)
|
20
|
+
view.asset_paths.stub(:asset_for).with(asset_name, "js").and_return(asset)
|
21
|
+
asset
|
22
|
+
end
|
23
|
+
|
24
|
+
def spec_double(asset_name, dependencies = [])
|
25
|
+
asset_double(asset_name, dependencies)
|
26
|
+
double("spec called '#{asset_name}'", :asset_name => asset_name)
|
27
|
+
end
|
28
|
+
|
16
29
|
let(:dependency) { asset_double("dependency") }
|
17
30
|
|
18
31
|
it "renders a script tag for each spec in @specs" do
|
@@ -42,4 +55,16 @@ describe "konacha/specs/specs" do
|
|
42
55
|
|
43
56
|
rendered.should have_selector("script[src='/assets/dependency.js?body=1']", :count => 1)
|
44
57
|
end
|
58
|
+
|
59
|
+
it "renders only one script tag for dependencies of dependencies" do
|
60
|
+
dependency_a = asset_double("dependency_a")
|
61
|
+
dependency_b = asset_double("dependency_b", [dependency_a])
|
62
|
+
|
63
|
+
assign(:specs, [spec_double("a_spec", [dependency_a, dependency_b])])
|
64
|
+
|
65
|
+
render
|
66
|
+
|
67
|
+
rendered.should have_selector("script[src='/assets/dependency_a.js?body=1']", :count => 1)
|
68
|
+
rendered.should have_selector("script[src='/assets/dependency_b.js?body=1']", :count => 1)
|
69
|
+
end
|
45
70
|
end
|
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: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jquery-rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70262855227300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70262855227300
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &70262855225660 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '3.1'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70262855225660
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: capybara
|
38
|
-
requirement: &
|
38
|
+
requirement: &70262855224940 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70262855224940
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec-rails
|
49
|
-
requirement: &
|
49
|
+
requirement: &70262855224000 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70262855224000
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: capybara-firebug
|
60
|
-
requirement: &
|
60
|
+
requirement: &70262855223340 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '1.1'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70262855223340
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: coffee-script
|
71
|
-
requirement: &
|
71
|
+
requirement: &70262855222780 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70262855222780
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: ejs
|
82
|
-
requirement: &
|
82
|
+
requirement: &70262855222000 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70262855222000
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: vendorer
|
93
|
-
requirement: &
|
93
|
+
requirement: &70262855220680 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70262855220680
|
102
102
|
description: ! 'Konacha is a Rails engine that allows you to test your JavaScript
|
103
103
|
with the
|
104
104
|
|
@@ -142,7 +142,7 @@ files:
|
|
142
142
|
- spec/dummy/config/application.rb
|
143
143
|
- spec/dummy/config/boot.rb
|
144
144
|
- spec/dummy/config/environment.rb
|
145
|
-
- spec/dummy/config/environments/
|
145
|
+
- spec/dummy/config/environments/development.rb
|
146
146
|
- spec/dummy/config/initializers/konacha.rb
|
147
147
|
- spec/dummy/spec/javascripts/array_sum_cs_spec.js.coffee
|
148
148
|
- spec/dummy/spec/javascripts/array_sum_js_spec.js
|
@@ -200,7 +200,7 @@ test_files:
|
|
200
200
|
- spec/dummy/config/application.rb
|
201
201
|
- spec/dummy/config/boot.rb
|
202
202
|
- spec/dummy/config/environment.rb
|
203
|
-
- spec/dummy/config/environments/
|
203
|
+
- spec/dummy/config/environments/development.rb
|
204
204
|
- spec/dummy/config/initializers/konacha.rb
|
205
205
|
- spec/dummy/spec/javascripts/array_sum_cs_spec.js.coffee
|
206
206
|
- spec/dummy/spec/javascripts/array_sum_js_spec.js
|
@@ -218,3 +218,4 @@ test_files:
|
|
218
218
|
- spec/server_spec.rb
|
219
219
|
- spec/spec_helper.rb
|
220
220
|
- spec/views/specs/specs.html.erb_spec.rb
|
221
|
+
has_rdoc:
|
@@ -1,29 +0,0 @@
|
|
1
|
-
Dummy::Application.configure do
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
3
|
-
|
4
|
-
# The test environment is used exclusively to run your application's
|
5
|
-
# test suite. You never need to work with it otherwise. Remember that
|
6
|
-
# your test database is "scratch space" for the test suite and is wiped
|
7
|
-
# and recreated between test runs. Don't rely on the data there!
|
8
|
-
config.cache_classes = true
|
9
|
-
|
10
|
-
# Configure static asset server for tests with Cache-Control for performance
|
11
|
-
config.serve_static_assets = true
|
12
|
-
config.static_cache_control = "public, max-age=3600"
|
13
|
-
|
14
|
-
# Log error messages when you accidentally call methods on nil
|
15
|
-
config.whiny_nils = true
|
16
|
-
|
17
|
-
# Show full error reports and disable caching
|
18
|
-
config.consider_all_requests_local = true
|
19
|
-
config.action_controller.perform_caching = false
|
20
|
-
|
21
|
-
# Raise exceptions instead of rendering exception templates
|
22
|
-
config.action_dispatch.show_exceptions = false
|
23
|
-
|
24
|
-
# Disable request forgery protection in test environment
|
25
|
-
config.action_controller.allow_forgery_protection = false
|
26
|
-
|
27
|
-
# Print deprecation notices to the stderr
|
28
|
-
config.active_support.deprecation = :stderr
|
29
|
-
end
|