When we are using a test helper anyway, my preference is to push details of the tests' implementation into the helper, so the individual test cases represent as simply as possible the different cases we are testing. In this case, that isolates knowledge of how the check_basket command is implemented into the helper.  To my mind, this makes the test cases easier to read. The helper is more complicated, but that code only shows up once.