feat(testing): add abstract test class for functional testing