More Roles Tests

Let's learn how to write tests for users and roles.

We'll cover the following

Adding more roles test

In the previous lesson, we created a custom matcher, be_able_to_see, which takes in a list of projects and validates the can_view? and visible_projects in parallel, thereby asserting that the two methods stay in sync. It also validates that projects that aren’t specified are not visible. We get around the fixture data by explicitly specifying the universe of all_projects. (In Minitest we’d use a custom assertion. We can see an example in the sample code at /test/models/user_test.rb).

At this point, our original integration test is still failing because we haven’t integrated the controller with the new model function. The controller method still calls Project.all, but we can fix that:

Get hands-on with 1200+ tech skills courses.