Subject: Re: [PATCH 1/3] t/t7004-tag: add regression test for existing behavior

From: Junio C Hamano <[email-masked]>
Date: Sun, 14 May 2023 23:59:48 -0700

Kristoffer Haugsbakk <[email-masked]> writes:

> The standard tag message file is unlinked if the tag is created.
>
> Signed-off-by: Kristoffer Haugsbakk <[email-masked]>
> ---
>
> Notes (series):
>     `test_when_finished` because this test interferes with the next one
>     without it.

Use of when-finished to remove a tag makes sense.

Unlike COMMIT_EDITMSG that is documented in "git commit --help", we
do not promise the users that the temporary file that is used for
preparing a tag message is "$GIT_DIR/TAG_EDITMSG" in any of our
documentation.  That needs to be done at the same time, or before,
this new test makes such a promise.

>  t/t7004-tag.sh | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
> index 9aa1660651..550b5b1cce 100755
> --- a/t/t7004-tag.sh
> +++ b/t/t7004-tag.sh
> @@ -2127,4 +2127,13 @@ test_expect_success 'Does --[no-]contains stop at commits? Yes!' '
>  	test_cmp expected actual
>  '
>  
> +test_expect_success 'If tag is created then tag message file is unlinked' '
> +	test_when_finished "git tag -d foo" &&
> +	write_script fakeeditor <<-\EOF &&
> +	echo Message >.git/TAG_EDITMSG
> +	EOF
> +	GIT_EDITOR=./fakeeditor git tag -a foo &&
> +	! test -e .git/TAG_EDITMSG

I'd recommend using "test_path_is_missing" instead for better
test-debugging experience.

Thanks.