Integration tests: test that components interact correctly