Weird unit test async behavior.

Finishes the descibe function before finishing the it function.
Cleaned up unit tests; removed helpers.
Re-organized unit test code; wrote more tests.