From f983021814487d49c57f6d9fe4560cbd7a2f0ccd Mon Sep 17 00:00:00 2001 From: Benjamin Tan Date: Wed, 14 Aug 2024 16:54:49 +0800 Subject: [PATCH] cli: add basic tests for show command --- cli/tests/test_show_command.rs | 252 +++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) diff --git a/cli/tests/test_show_command.rs b/cli/tests/test_show_command.rs index 62ba7f913f..93bcbce1f2 100644 --- a/cli/tests/test_show_command.rs +++ b/cli/tests/test_show_command.rs @@ -34,6 +34,258 @@ fn test_show() { "###); } +#[test] +fn test_show_basic() { + let test_env = TestEnvironment::default(); + test_env.jj_cmd_ok(test_env.env_root(), &["git", "init", "repo"]); + let repo_path = test_env.env_root().join("repo"); + + std::fs::write(repo_path.join("file1"), "foo\n").unwrap(); + std::fs::write(repo_path.join("file2"), "foo\nbaz qux\n").unwrap(); + test_env.jj_cmd_ok(&repo_path, &["new"]); + std::fs::remove_file(repo_path.join("file1")).unwrap(); + std::fs::write(repo_path.join("file2"), "foo\nbar\nbaz quux\n").unwrap(); + std::fs::write(repo_path.join("file3"), "foo\n").unwrap(); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + Removed regular file file1: + 1 : foo + Modified regular file file2: + 1 1: foo + 2: bar + 2 3: baz quxquux + Added regular file file3: + 1: foo + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--context=0"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + Removed regular file file1: + 1 : foo + Modified regular file file2: + 1 1: foo + 2: bar + 2 3: baz quxquux + Added regular file file3: + 1: foo + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--color=debug"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: <> + Change ID: <> + Author: <> <<>> (<>) + Committer: <> <<>> (<>) + + <> + + <> + <><><> + <> + <><><><> + <><><><> + <><><><><><><> + <> + <><><><> + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "-s"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + D file1 + M file2 + A file3 + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--types"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + F- file1 + FF file2 + -F file3 + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--git"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + diff --git a/file1 b/file1 + deleted file mode 100644 + index 257cc5642c..0000000000 + --- a/file1 + +++ /dev/null + @@ -1,1 +1,0 @@ + -foo + diff --git a/file2 b/file2 + index 523a4a9de8..485b56a572 100644 + --- a/file2 + +++ b/file2 + @@ -1,2 +1,3 @@ + foo + -baz qux + +bar + +baz quux + diff --git a/file3 b/file3 + new file mode 100644 + index 0000000000..257cc5642c + --- /dev/null + +++ b/file3 + @@ -1,0 +1,1 @@ + +foo + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--git", "--context=0"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + diff --git a/file1 b/file1 + deleted file mode 100644 + index 257cc5642c..0000000000 + --- a/file1 + +++ /dev/null + @@ -1,1 +1,0 @@ + -foo + diff --git a/file2 b/file2 + index 523a4a9de8..485b56a572 100644 + --- a/file2 + +++ b/file2 + @@ -2,1 +2,2 @@ + -baz qux + +bar + +baz quux + diff --git a/file3 b/file3 + new file mode 100644 + index 0000000000..257cc5642c + --- /dev/null + +++ b/file3 + @@ -1,0 +1,1 @@ + +foo + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--git", "--color=debug"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: <> + Change ID: <> + Author: <> <<>> (<>) + Committer: <> <<>> (<>) + + <> + + <> + <> + <> + <> + <> + <> + <><> + <> + <> + <> + <> + <> + <> + <><><> + <><> + <><><> + <> + <> + <> + <> + <> + <> + <><> + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "-s", "--git"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + D file1 + M file2 + A file3 + diff --git a/file1 b/file1 + deleted file mode 100644 + index 257cc5642c..0000000000 + --- a/file1 + +++ /dev/null + @@ -1,1 +1,0 @@ + -foo + diff --git a/file2 b/file2 + index 523a4a9de8..485b56a572 100644 + --- a/file2 + +++ b/file2 + @@ -1,2 +1,3 @@ + foo + -baz qux + +bar + +baz quux + diff --git a/file3 b/file3 + new file mode 100644 + index 0000000000..257cc5642c + --- /dev/null + +++ b/file3 + @@ -1,0 +1,1 @@ + +foo + "###); + + let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--stat"]); + insta::assert_snapshot!(stdout, @r###" + Commit ID: e34f04317a81edc6ba41fef239c0d0180f10656f + Change ID: rlvkpnrzqnoowoytxnquwvuryrwnrmlp + Author: Test User (2001-02-03 08:05:09) + Committer: Test User (2001-02-03 08:05:09) + + (no description set) + + file1 | 1 - + file2 | 3 ++- + file3 | 1 + + 3 files changed, 3 insertions(+), 2 deletions(-) + "###); +} + #[test] fn test_show_with_template() { let test_env = TestEnvironment::default();