       (card-ability state :runner salsette2 1)
       (is (not (empty? (:prompt (get-runner)))) "Prompting the runner to choose a card")
       (prompt-select :runner (find-card "Thomas Haas" (:discard (get-corp))))
-      (is (= (:cid th3) (:cid (last (:rfg (get-corp))))) "Card was removed from the game")
-      (take-credits state :runner))
+      (is (= (:cid th3) (:cid (last (:rfg (get-corp))))) "Card was removed from the game"))
     ; Set things up so we can trash the Hostile and then make sure we can't "oops I forgot on a later turn"
-    (take-credits state :corp)
-    (take-credits state :runner)
-    (take-credits state :corp)
+    (core/gain state :runner :credit 5)
     (run-empty-server state :remote2)
     (prompt-choice :runner "Yes")
     (take-credits state :runner)

    (play-from-hand state :corp "Hostile Infrastructure" "New remote")
    (play-from-hand state :corp "Thomas Haas" "New remote")
    (take-credits state :corp)
    ; Allows the main part of the test case to happen on one turn
    (play-from-hand state :runner "Hyperdriver")
    (take-credits state :runner)
    (take-credits state :corp)
    (card-ability state :runner (get-program state 0) 0)
    (play-from-hand state :runner "Salsette Slums")
    (play-from-hand state :runner "Salsette Slums")
    ; Sanity check
    (is (= 3 (:credit (get-runner))))
    (let [ts1 (get-content state :remote1 0)
          hostile2 (get-content state :remote2 0)
          th3 (get-content state :remote3 0)
          salsette1 (get-resource state 0)
          salsette2 (get-resource state 1)]
      (core/rez state :corp hostile2)
      (run-empty-server state "Server 1")
      (is (not (empty? (:prompt (get-runner)))) "Prompting to trash.")
      (card-ability state :runner salsette1 0)
      (is (empty? (:prompt (get-runner))) "All prompts done")
      (is (= 2 (count (:hand (get-runner)))) "On-trash ability of other Hostile didn't fire")
      (is (= (:cid ts1) (:cid (last (:rfg (get-corp))))) "Tech Startup was removed from game")
      (is (= 2 (:credit (get-runner))) "Runner paid the trash cost.")
      (is (not (:run @state)) "Run is over")

  "Salsette Slums - Once per turn, when the trash cost of a card is paid, optionally remove from the game"
  (do-game
    (new-game (default-corp [(qty "Hostile Infrastructure" 1) (qty "Tech Startup" 1) (qty "Thomas Haas" 1)
                             (qty "Hedge Fund" 3)])
              (default-runner [(qty "Salsette Slums" 2) (qty "Sure Gamble" 3)]))
    ; Use Hostile Infrastructure to ensure on-trash effects don't fire.
    (core/move state :corp (find-card "Hostile Infrastructure" (:deck (get-corp))) :hand)
    (core/move state :corp (find-card "Tech Startup" (:deck (get-corp))) :hand)
