Improved test coverage

Changes:
- Tests now cover most (all?) useful edge cases for the signup and payments forms.
- There are also now messages assigned to each test assertion to help with debugging. 

**Note:** There are now two failing test cases on this branch. This is due to the tests being implemented correctly, and are highlighting bugs in the implementation.