rspec-cells 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/README.rdoc +0 -2
- data/lib/generators/rspec/cell_generator.rb +13 -0
- data/lib/generators/rspec/templates/cell_spec.erb +23 -0
- data/lib/rspec/cells/tasks.rake +2 -0
- data/lib/rspec/cells/version.rb +1 -1
- data/lib/rspec/rails/example/cell_example_group.rb +21 -8
- data/lib/rspec_cells/capybara/string_matchers.rb +45 -0
- data/rspec-cells.gemspec +0 -1
- data/spec/cells/cell_spec_spec.rb +1 -14
- data/spec/spec_helper.rb +18 -0
- metadata +8 -3
data/.gitignore
ADDED
data/README.rdoc
CHANGED
@@ -19,8 +19,6 @@ This gem runs with RSpec2 and Rails 3.0, so just add it to your app's +Gemfile+.
|
|
19
19
|
Put all your specs under <tt>spec/cells</tt> folder. Here is how a simple spec could look like.
|
20
20
|
|
21
21
|
describe PostsCell do
|
22
|
-
render_views
|
23
|
-
|
24
22
|
it "should render the posts count" do
|
25
23
|
render_cell(:posts, :count).should have_selector("p", :content => "4 posts!")
|
26
24
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'generators/cells/base'
|
2
|
+
|
3
|
+
module Rspec
|
4
|
+
module Generators
|
5
|
+
class CellGenerator < ::Cells::Generators::Base
|
6
|
+
source_root File.expand_path('../templates', __FILE__)
|
7
|
+
|
8
|
+
def create_cell_spec_file
|
9
|
+
template "cell_spec.erb", File.join("spec/cells/#{file_name}_cell_spec.rb")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe <%= class_name %>Cell do
|
4
|
+
context "cell rendering" do
|
5
|
+
<% for state in actions %>
|
6
|
+
context "rendering <%= state %>" do
|
7
|
+
subject { render_cell(:<%= file_name %>, :<%= state %>) }
|
8
|
+
|
9
|
+
it { should have_selector("h1", :text => "<%= class_name %>#<%= state %>") }
|
10
|
+
it { should have_selector("p", :text => "Find me in app/cells/<%= file_name %>/<%= state %>.html") }
|
11
|
+
end
|
12
|
+
<% end %>
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
context "cell instance" do
|
17
|
+
subject { cell(:<%= file_name %>) }
|
18
|
+
|
19
|
+
<% for state in actions %>
|
20
|
+
it { should respond_to(:<%= state %>) }
|
21
|
+
<% end %>
|
22
|
+
end
|
23
|
+
end
|
data/lib/rspec/cells/tasks.rake
CHANGED
data/lib/rspec/cells/version.rb
CHANGED
@@ -2,26 +2,31 @@ module RSpec::Rails
|
|
2
2
|
# Lets you call #render_cell in Rspec2. Move your cell specs to <tt>spec/cells/</tt>.
|
3
3
|
module CellExampleGroup
|
4
4
|
VERSION = "0.0.1"
|
5
|
-
|
5
|
+
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
extend RSpec::Rails::ModuleInclusion
|
8
8
|
|
9
9
|
include RSpec::Rails::RailsExampleGroup
|
10
|
-
include Cell::TestCase::TestMethods
|
10
|
+
include Cell::TestCase::TestMethods
|
11
11
|
include RSpec::Rails::ViewRendering
|
12
12
|
include RSpec::Rails::BrowserSimulators
|
13
|
-
|
13
|
+
|
14
14
|
webrat do
|
15
15
|
include Webrat::Matchers
|
16
16
|
include Webrat::Methods
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
capybara do
|
20
20
|
include Capybara
|
21
|
+
begin
|
22
|
+
include Capybara::RSpec::StringMatchers
|
23
|
+
rescue NameError
|
24
|
+
# Read more in the source file
|
25
|
+
require 'rspec_cells/capybara/string_matchers'
|
26
|
+
include RSpecCells::Capybara::StringMatchers
|
27
|
+
end
|
21
28
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
29
|
+
|
25
30
|
module InstanceMethods
|
26
31
|
attr_reader :controller, :routes
|
27
32
|
end
|
@@ -33,9 +38,17 @@ module RSpec::Rails
|
|
33
38
|
ActionController::Base.allow_forgery_protection = false
|
34
39
|
setup # defined in Cell::TestCase.
|
35
40
|
end
|
41
|
+
|
42
|
+
# we always render views in rspec-cells, so turn it on.
|
43
|
+
render_views
|
36
44
|
subject { controller }
|
37
45
|
end
|
38
46
|
|
39
|
-
RSpec.configure &include_self_when_dir_matches('spec','cells') # adds a filter to Configuration that includes this module in matching groups.
|
47
|
+
# RSpec.configure &include_self_when_dir_matches('spec','cells') # adds a filter to Configuration that includes this module in matching groups.
|
48
|
+
|
49
|
+
RSpec.configure do |c|
|
50
|
+
c.include self, :example_group => { :file_path => /spec\/cells/ }
|
51
|
+
end
|
52
|
+
|
40
53
|
end
|
41
54
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# This includes a backported version of the Capybara string matchers David Chelimsky
|
2
|
+
# is preparing in https://github.com/dchelimsky/capybara/tree/rspec-matchers
|
3
|
+
#
|
4
|
+
# Looks like the string matchers will be included in Capybara 0.4.2 if the feature is ready.
|
5
|
+
#
|
6
|
+
# The branch have not being merged into master because it's missing support for the capybara
|
7
|
+
# page object.
|
8
|
+
#
|
9
|
+
# When we test a rendered cell with the `render_cell` method we get an ActionView::OutputBuffer
|
10
|
+
# instance, it is in short, a safe version of String, so we are testing a String, not a capybara
|
11
|
+
# page object. So the matchers are OK and the missing features won't bother us.
|
12
|
+
#
|
13
|
+
# Follow up in http://groups.google.com/group/ruby-capybara/browse_thread/thread/c8adaa8f750b1020
|
14
|
+
module RSpecCells
|
15
|
+
module Capybara
|
16
|
+
module StringMatchers
|
17
|
+
extend ::RSpec::Matchers::DSL
|
18
|
+
|
19
|
+
%w[css xpath selector].each do |type|
|
20
|
+
matcher "have_#{type}" do |*args|
|
21
|
+
match_for_should do |string|
|
22
|
+
::Capybara::string(string).send("has_#{type}?", *args)
|
23
|
+
end
|
24
|
+
|
25
|
+
match_for_should_not do |string|
|
26
|
+
::Capybara::string(string).send("has_no_#{type}?", *args)
|
27
|
+
end
|
28
|
+
|
29
|
+
failure_message_for_should do |string|
|
30
|
+
"expected #{type} #{formatted(args)} to return something from:\n#{string}"
|
31
|
+
end
|
32
|
+
|
33
|
+
failure_message_for_should_not do |string|
|
34
|
+
"expected #{type} #{formatted(args)} not to return anything from:\n#{string}"
|
35
|
+
end
|
36
|
+
|
37
|
+
def formatted(args)
|
38
|
+
args.length == 1 ? args.first.inspect : args.inspect
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/rspec-cells.gemspec
CHANGED
@@ -1,17 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
# wycats says...
|
4
|
-
require 'bundler'
|
5
|
-
Bundler.setup
|
6
|
-
|
7
|
-
$:.unshift File.dirname(__FILE__) # add current dir to LOAD_PATHS
|
8
|
-
require "rails/all"
|
9
|
-
require '../../lib/rspec-cells'
|
10
|
-
|
11
|
-
module RSpecCells
|
12
|
-
class Application < ::Rails::Application
|
13
|
-
end
|
14
|
-
end
|
1
|
+
require 'spec_helper'
|
15
2
|
|
16
3
|
module RSpec::Rails
|
17
4
|
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
# wycats says...
|
4
|
+
require 'bundler'
|
5
|
+
Bundler.setup
|
6
|
+
|
7
|
+
#$:.unshift File.dirname(__FILE__) # add current dir to LOAD_PATHS
|
8
|
+
require "rails/all"
|
9
|
+
require 'rspec-cells'
|
10
|
+
require 'rspec/rails'
|
11
|
+
require 'cell/test_case'
|
12
|
+
require 'rspec/rails/example/cell_example_group'
|
13
|
+
|
14
|
+
|
15
|
+
module RSpecCells
|
16
|
+
class Application < ::Rails::Application
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Nick Sutterer
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-31 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -69,18 +69,23 @@ extensions: []
|
|
69
69
|
extra_rdoc_files: []
|
70
70
|
|
71
71
|
files:
|
72
|
+
- .gitignore
|
72
73
|
- CHANGES.textile
|
73
74
|
- Gemfile
|
74
75
|
- MIT-LICENSE
|
75
76
|
- README.rdoc
|
76
77
|
- Rakefile
|
78
|
+
- lib/generators/rspec/cell_generator.rb
|
79
|
+
- lib/generators/rspec/templates/cell_spec.erb
|
77
80
|
- lib/rspec-cells.rb
|
78
81
|
- lib/rspec/cells.rb
|
79
82
|
- lib/rspec/cells/tasks.rake
|
80
83
|
- lib/rspec/cells/version.rb
|
81
84
|
- lib/rspec/rails/example/cell_example_group.rb
|
85
|
+
- lib/rspec_cells/capybara/string_matchers.rb
|
82
86
|
- rspec-cells.gemspec
|
83
87
|
- spec/cells/cell_spec_spec.rb
|
88
|
+
- spec/spec_helper.rb
|
84
89
|
has_rdoc: true
|
85
90
|
homepage: http://rubygems.org/gems/rspec-cells
|
86
91
|
licenses: []
|