The tests are difficult to read and shouldn't all be in one file. Refactor the tests to more closely match areas of responsibility.