I had to modify CanCan::Rule to be able to switch between the two code paths under test. I added a simple boolean flag as a final parameter and placed in a conditional like:
if use_flatten
@actions = [actions].flatten
@subjects = [subjects].flatten
else
@actions = Array(actions)
@subjects = Array(subjects)
end