From 1cbea78bb9d25e4d5c6949f37990d29dde05efae Mon Sep 17 00:00:00 2001 From: Evan Mesterhazy Date: Tue, 2 Apr 2024 17:27:02 -0400 Subject: [PATCH] Fix issues with the jj next and jj prev tests --- cli/tests/test_next_prev_commands.rs | 58 ++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/cli/tests/test_next_prev_commands.rs b/cli/tests/test_next_prev_commands.rs index 10fea8f48b7..14ee7c2ec6d 100644 --- a/cli/tests/test_next_prev_commands.rs +++ b/cli/tests/test_next_prev_commands.rs @@ -13,6 +13,8 @@ // limitations under the License. // +use std::path::Path; + use crate::common::{get_stderr_string, get_stdout_string, TestEnvironment}; #[test] @@ -220,6 +222,17 @@ fn test_prev_fails_on_merge_commit() { test_env.jj_cmd_ok(&repo_path, &["branch", "c", "right"]); test_env.jj_cmd_ok(&repo_path, &["commit", "-m", "second"]); test_env.jj_cmd_ok(&repo_path, &["new", "left", "right"]); + + // Check that the graph looks the way we expect. + insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###" + @ yqosqzytrlsw + ├─╮ + │ ◉ zsuskulnrvyr right second + ◉ │ qpvuntsmwlqt left first + ├─╯ + ◉ zzzzzzzzzzzz + "###); + // Try to advance the working copy commit. let stderr = test_env.jj_cmd_failure(&repo_path, &["prev"]); insta::assert_snapshot!(stderr,@r###" @@ -240,7 +253,21 @@ fn test_prev_fails_on_multiple_parents() { // Create a merge commit, which has two parents. test_env.jj_cmd_ok(&repo_path, &["new", "all:@--+"]); test_env.jj_cmd_ok(&repo_path, &["commit", "-m", "merge"]); - // Advance the working copy commit. + + // Check that the graph looks the way we expect. + insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###" + @ vruxwmqvtpmx + ◉ yqosqzytrlsw merge + ├─┬─╮ + │ │ ◉ qpvuntsmwlqt first + │ ◉ │ kkmpptxzrspx second + │ ├─╯ + ◉ │ mzvwutvlkqwt third + ├─╯ + ◉ zzzzzzzzzzzz + "###); + + // Move @ backwards. let (stdout, stderr) = test_env.jj_cmd_stdin_ok(&repo_path, &["prev"], "3\n"); insta::assert_snapshot!(stdout,@r###" ambiguous prev commit, choose one to target: @@ -251,7 +278,7 @@ fn test_prev_fails_on_multiple_parents() { enter the index of the commit you want to target: "###); insta::assert_snapshot!(stderr,@r###" - Working copy now at: yostqsxw 286a9951 (empty) (no description set) + Working copy now at: znkkpsqq 94715f3c (empty) (no description set) Parent commit : qpvuntsm 69542c19 (empty) first "###); } @@ -282,18 +309,30 @@ fn test_prev_editing() { test_env.jj_cmd_ok(&repo_path, &["commit", "-m", "second"]); test_env.jj_cmd_ok(&repo_path, &["commit", "-m", "third"]); test_env.jj_cmd_ok(&repo_path, &["commit", "-m", "fourth"]); + // Edit the "fourth" commit, which becomes the tip when the empty @ commit + // is dropped. + test_env.jj_cmd_ok(&repo_path, &["edit", "@-"]); + // Check that the graph looks the way we expect. + insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###" + @ zsuskulnrvyr fourth + ◉ kkmpptxzrspx third + ◉ rlvkpnrzqnoo second + ◉ qpvuntsmwlqt first + ◉ zzzzzzzzzzzz + "###); + let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["prev", "--edit"]); - insta::assert_snapshot!(stdout, @""); + insta::assert_snapshot!(stdout, @r""); insta::assert_snapshot!(stderr, @r###" - Working copy now at: zsuskuln 009f88bf (empty) fourth - Parent commit : kkmpptxz 3fa8931e (empty) third + Working copy now at: kkmpptxz 3fa8931e (empty) third + Parent commit : rlvkpnrz 5c52832c (empty) second "###); // --edit is implied when already editing a non-head commit let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["prev"]); insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stderr, @r###" - Working copy now at: yqosqzyt d2edc95b (empty) (no description set) - Parent commit : rlvkpnrz 5c52832c (empty) second + Working copy now at: rlvkpnrz 5c52832c (empty) second + Parent commit : qpvuntsm 69542c19 (empty) first "###); } @@ -322,3 +361,8 @@ fn test_next_editing() { Parent commit : kkmpptxz 3fa8931e (empty) third "###); } + +fn get_log_output(test_env: &TestEnvironment, cwd: &Path) -> String { + let template = r#"separate(" ", change_id.short(), local_branches, description)"#; + test_env.jj_cmd_success(cwd, &["log", "-T", template]) +}