refactor hook specs to use cassettes; move idempotent specs; apply_vat idempotent