Introduce Promise chain for some tests.

Thinking the current tests are deep, and using Promise would be better. @lavelle, wdyt?
as well as JSDoc I think this would be more readable if these weren't abbreviated. `function` is a reserved word so I guess `func` will have to do, but `param` should probably be `parameters` to be consistent with the rest of the codebase