promise-returning requires particular testing techniques