From 5b07ce76fcf1fc3279860f079b32213689f9eb4e Mon Sep 17 00:00:00 2001
From: Skyler Hawthorne <skyler@dead10ck.com>
Date: Sat, 22 Oct 2022 22:18:32 -0400
Subject: [PATCH] make TestCase::From more generic

---
 helix-term/tests/test/auto_indent.rs |  5 ++---
 helix-term/tests/test/helpers.rs     |  9 +++++++--
 helix-term/tests/test/movement.rs    | 28 ++++++++++------------------
 3 files changed, 19 insertions(+), 23 deletions(-)

diff --git a/helix-term/tests/test/auto_indent.rs b/helix-term/tests/test/auto_indent.rs
index 2d908285..e626acad 100644
--- a/helix-term/tests/test/auto_indent.rs
+++ b/helix-term/tests/test/auto_indent.rs
@@ -11,14 +11,13 @@ async fn auto_indent_c() -> anyhow::Result<()> {
         helpers::test_syntax_conf(None),
         // switches to append mode?
         (
-            helpers::platform_line("void foo() {#[|}]#").as_ref(),
+            helpers::platform_line("void foo() {#[|}]#"),
             "i<ret><esc>",
             helpers::platform_line(indoc! {"\
                 void foo() {
                   #[|\n]#\
                 }
-            "})
-            .as_ref(),
+            "}),
         ),
     )
     .await?;
diff --git a/helix-term/tests/test/helpers.rs b/helix-term/tests/test/helpers.rs
index fb12ef12..59d08bb6 100644
--- a/helix-term/tests/test/helpers.rs
+++ b/helix-term/tests/test/helpers.rs
@@ -22,8 +22,13 @@ pub struct TestCase {
     pub out_selection: Selection,
 }
 
-impl<S: Into<String>> From<(S, S, S)> for TestCase {
-    fn from((input, keys, output): (S, S, S)) -> Self {
+impl<S, R, V> From<(S, R, V)> for TestCase
+where
+    S: Into<String>,
+    R: Into<String>,
+    V: Into<String>,
+{
+    fn from((input, keys, output): (S, R, V)) -> Self {
         let (in_text, in_selection) = test::print(&input.into());
         let (out_text, out_selection) = test::print(&output.into());
 
diff --git a/helix-term/tests/test/movement.rs b/helix-term/tests/test/movement.rs
index e6ea3f95..6cc89021 100644
--- a/helix-term/tests/test/movement.rs
+++ b/helix-term/tests/test/movement.rs
@@ -395,7 +395,7 @@ async fn cursor_position_append_eof() -> anyhow::Result<()> {
     test((
         "#[foo|]#",
         "abar<esc>",
-        helpers::platform_line("#[foobar|]#\n").as_ref(),
+        helpers::platform_line("#[foobar|]#\n"),
     ))
     .await?;
 
@@ -403,7 +403,7 @@ async fn cursor_position_append_eof() -> anyhow::Result<()> {
     test((
         "#[|foo]#",
         "abar<esc>",
-        helpers::platform_line("#[foobar|]#\n").as_ref(),
+        helpers::platform_line("#[foobar|]#\n"),
     ))
     .await?;
 
@@ -425,16 +425,14 @@ async fn select_mode_tree_sitter_next_function_is_union_of_objects() -> anyhow::
                 fn inc(x: usize) -> usize { x + 1 }
                 /// Decrements
                 fn dec(x: usize) -> usize { x - 1 }
-            "})
-            .as_ref(),
+            "}),
             "]fv]f",
             helpers::platform_line(indoc! {"\
                 /// Increments
                 #[fn inc(x: usize) -> usize { x + 1 }
                 /// Decrements
                 fn dec(x: usize) -> usize { x - 1 }|]#
-            "})
-            .as_ref(),
+            "}),
         ),
     )
     .await?;
@@ -457,16 +455,14 @@ async fn select_mode_tree_sitter_prev_function_unselects_object() -> anyhow::Res
                 #[fn inc(x: usize) -> usize { x + 1 }
                 /// Decrements
                 fn dec(x: usize) -> usize { x - 1 }|]#
-            "})
-            .as_ref(),
+            "}),
             "v[f",
             helpers::platform_line(indoc! {"\
                 /// Increments
                 #[fn inc(x: usize) -> usize { x + 1 }|]#
                 /// Decrements
                 fn dec(x: usize) -> usize { x - 1 }
-            "})
-            .as_ref(),
+            "}),
         ),
     )
     .await?;
@@ -492,8 +488,7 @@ async fn select_mode_tree_sitter_prev_function_goes_backwards_to_object() -> any
                 fn dec(x: usize) -> usize { x - 1 }
                 /// Identity
                 #[fn ident(x: usize) -> usize { x }|]#
-            "})
-            .as_ref(),
+            "}),
             "v[f",
             helpers::platform_line(indoc! {"\
                 /// Increments
@@ -502,8 +497,7 @@ async fn select_mode_tree_sitter_prev_function_goes_backwards_to_object() -> any
                 #[|fn dec(x: usize) -> usize { x - 1 }
                 /// Identity
                 ]#fn ident(x: usize) -> usize { x }
-            "})
-            .as_ref(),
+            "}),
         ),
     )
     .await?;
@@ -523,8 +517,7 @@ async fn select_mode_tree_sitter_prev_function_goes_backwards_to_object() -> any
                 fn dec(x: usize) -> usize { x - 1 }
                 /// Identity
                 #[fn ident(x: usize) -> usize { x }|]#
-            "})
-            .as_ref(),
+            "}),
             "v[f[f",
             helpers::platform_line(indoc! {"\
                 /// Increments
@@ -533,8 +526,7 @@ async fn select_mode_tree_sitter_prev_function_goes_backwards_to_object() -> any
                 fn dec(x: usize) -> usize { x - 1 }
                 /// Identity
                 ]#fn ident(x: usize) -> usize { x }
-            "})
-            .as_ref(),
+            "}),
         ),
     )
     .await?;