From 4802f26a232b2eed5f4af05a540a4735edd199ee Mon Sep 17 00:00:00 2001
From: Michael Davis <mcarsondavis@gmail.com>
Date: Sun, 27 Nov 2022 13:47:52 -0600
Subject: [PATCH] Add a test case for undo/redo across splits

---
 helix-term/tests/test/splits.rs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/helix-term/tests/test/splits.rs b/helix-term/tests/test/splits.rs
index a51de365..a34a24b7 100644
--- a/helix-term/tests/test/splits.rs
+++ b/helix-term/tests/test/splits.rs
@@ -151,5 +151,15 @@ async fn test_changes_in_splits_apply_to_all_views() -> anyhow::Result<()> {
     // was not updated and after the `kd` step, pointed outside of the document.
     test(("#[|]#", "<C-w>v[<space><C-s><C-w>wkd<C-w>qd", "#[|]#")).await?;
 
+    // Transactions are applied to the views for windows lazily when they are focused.
+    // This case panics if the transactions and inversions are not applied in the
+    // correct order as we switch between windows.
+    test((
+        "#[|]#",
+        "[<space>[<space>[<space><C-w>vuuu<C-w>wUUU<C-w>quuu",
+        "#[|]#",
+    ))
+    .await?;
+
     Ok(())
 }