Hi,
I am trying to write custom matcher which accepts block to spec views
with forms/fieldsets/inputs eg
view:
---
<form action='/users'>
<fieldset>
<legend>Personal Information</legend>
<ol>
<li>
<label>First name</label>
<input type="text" name="user[first_name]" />
</li>
...
</ol>
</fieldset>
</form>
spec:
---
it "should have form with input fields" do
render ...
response.should have_form(users_path) do
with_field_set 'Personal Information' do
with_text_field 'First name', 'user[first_name]'
...
end
end
end
matches? of have_form:
---
def matches?(response, &block)
@block = block if block
response.should @scope.have_tag('form[action=?]', @action) do
@block.call.matches?(response)
end
end matches? of have_field_set: ---
def matches?(response, &block)
@block = block if block
response.should @scope.with_tag('fieldset') do
@scope.with_tag('legend', @legend) if @legend
@scope.with_tag('ol') do
@block.call.matches?(response)
end
end
end but I get: NoMethodError in '/users/new should have form with
input fields' undefined method `matches?' for true:TrueClass
./spec/views/users/../../custom_ui_matchers/with_field_set.rb:10:in
`matches?'
./spec/views/users/../../custom_ui_matchers/have_form.rb:11:in
`matches?'
./spec/views/users/../../custom_ui_matchers/have_form.rb:10:in
`matches?' ./spec/views/users/new.html.haml_spec.rb:17:
/usr/lib64/ruby/1.8/timeout.rb:53:in `timeout' something wrong with
yielding block? Gist: http://gist.github.com/62562 Thanks in advance, Yury
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users