   }
 
   func testSwiping() {
-    withEnvironment(apiService: service) {
+    let viewModel = PlaylistViewModel(initialPlaylist: playlist, currentProject: project)
 
-      let viewModel = PlaylistViewModel(initialPlaylist: playlist, currentProject: project)
+    let projectNameTest = TestObserver<String, NoError>()
+    viewModel.outputs.projectName.start(projectNameTest.observer)
 
-      let projectNameTest = TestObserver<String, NoError>()
-      viewModel.outputs.projectName.start(projectNameTest.observer)
+    viewModel.inputs.swipeEnded(translation: CGPoint(x: 100.0, y: 0.0))
+    XCTAssertEqual(1, projectNameTest.nextValues.count)
 
-      viewModel.inputs.swipeEnded(translation: CGPoint(x: 100.0, y: 0.0))
-      XCTAssertEqual(1, projectNameTest.nextValues.count)
+    viewModel.inputs.swipeEnded(translation: CGPoint(x: 2_000.0, y: 0.0))
+    XCTAssertEqual(2, projectNameTest.nextValues.count)
 
-      viewModel.inputs.swipeEnded(translation: CGPoint(x: 2_000.0, y: 0.0))
-      XCTAssertEqual(2, projectNameTest.nextValues.count)
-
-      viewModel.inputs.swipeEnded(translation: CGPoint(x: -2_000.0, y: 0.0))
-      XCTAssertEqual(3, projectNameTest.nextValues.count)
-    }
+    viewModel.inputs.swipeEnded(translation: CGPoint(x: -2_000.0, y: 0.0))
+    XCTAssertEqual(3, projectNameTest.nextValues.count)
   }
 }

  }

  func testBackgroundImageFailure() {
    withEnvironment(apiService: service, assetImageGeneratorType: MockFailureAssetImageGenerator.self) {

      let viewModel = PlaylistViewModel(initialPlaylist: playlist, currentProject: project)


  func testLongRunningBackgroundImage() {
    let scheduler = TestScheduler()

    withEnvironment(debounceScheduler: scheduler, assetImageGeneratorType: MockLongRunningAssetImageGenerator.self) {

      let viewModel = PlaylistViewModel(initialPlaylist: playlist, currentProject: project)

