There's a load of repetition in this spec - could you perhaps extract a matcher?