Add an end-to-end test