Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The opposite of assert_select?

I am writing an app where it is desirable to check if a view does not have some functionality - in particular because that functionality must be presented only to users in certain security group. I am looking for the opposite of assert_selects in order to see that a menu is not rendered.

like image 681
Victor Pudeyev Avatar asked Jan 26 '12 21:01

Victor Pudeyev


2 Answers

Take a look at the docs here:

http://apidock.com/rails/ActionController/Assertions/SelectorAssertions/assert_select

From the docs:

assert_select is an assertion that selects elements and makes one or more equality tests.

and from the equality tests sections:

The equality test may be one of the following:

true - Assertion is true if at least one element selected.

false - Assertion is true if no element selected.

String/Regexp - Assertion is true if the text value of at least one element matches the string or regular expression.

Integer - Assertion is true if exactly that number of elements are selected.

Range - Assertion is true if the number of selected elements fit the range.

If no equality test specified, the assertion is true if at least one element selected.

And a simple example:

   # Page contains no forms
   assert_select "form", false, "This page must contain no forms"
like image 66
jordanpg Avatar answered Nov 10 '22 02:11

jordanpg


Don't forget you can always pass in the count, and set that to zero.

assert_select "a", {count: 0, text: "New"}, "This page must contain no anchors that say New"
like image 47
Gant Laborde Avatar answered Nov 10 '22 01:11

Gant Laborde