bakineggs (owner)

Revisions

gist: 159474 Download_button fork
public
Public Clone URL: git://gist.github.com/159474.git
Embed All Files: show embed
Ruby #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# assume response.body has
# <div class="group">
# <span class="name">foo</span>
# <ul class="members">
# <li class="member">...</li>
# <li class="member">...</li>
# </ul>
# </div>
# <div class="group">
# <span class="name">bar</span>
# <ul class="members">
# <li class="member">...</li>
# </ul>
# </div>
 
# WHAT I WANT:
response.should have_tag('.group') do |group|
  group.should have_tag('.name', 'foo') # eliminates bar from further checking in this block
  group.should have_tag('.members .member', :count => 2) # passes cause foo's group has 2 members
end
 
# WHAT I GOT:
response.should have_tag('.group') do |group|
  group.should have_tag('.name', 'foo') # passes cause foo is there
  group.should have_tag('.members .member', :count => 2) # fails cause foo and bar together have 3
end
# shitty workaround (something like this that I have to spend a fkn hour figuring out each time):
response.should have_tag('.group .name', 'foo') do |name|
  group = # somehow traverse back up the document and find the .group
  group.should have_tag('.members .member', :count => 2)
end