   then_ "starting state was correct", fn %{starting_state: :yes} = state ->
     {:ok, state}
   end
+
+  then_ "scenario_starting_state only ran once", fn %{starting_state_run_count: 1} = state ->
+    {:ok, state}
+  end
+
+  then_ "scenario_finalize doesnt run until the end", fn state ->
+    unless Process.get(:finalized, false) do
+      {:ok, state}
+    else
+      {:error, :already_finalized}
+    end
+  end
 end

    assert result == :ok
  end

  test "Contexts can run finalization provided by scenario_finalize method for a normal step" do
    steps = [
      %Steps.When{text: "step one"}

  when_ "step two", fn :step_one_complete ->
    {:ok, :step_two_complete}
  end

  when_ "step passthru", fn state ->
    {:ok, state}
  end


  when_ "make a failing asserstion", fn _state ->
    assert 1 == 0
