ref(tests): separate unit tests from functional tests

That way we can fail faster if the unit tests fail.