#!/bin/sh

test_description='Test submodule absorbgitdirs

This test verifies that `git submodue absorbgitdirs` moves a submodules git
directory into the superproject.
'

TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh

test_expect_success 'setup a real submodule' '
	cwd="$(pwd)" &&
	git init sub1 &&
	test_commit -C sub1 first &&
	git submodule add ./sub1 &&
	test_tick &&
	git commit -m superproject
'

test_expect_success 'absorb the git dir' '
	>expect &&
	>actual &&
	>expect.1 &&
	>expect.2 &&
	>actual.1 &&
	>actual.2 &&
	git status >expect.1 &&
	git -C sub1 rev-parse HEAD >expect.2 &&
	cat >expect <<-EOF &&
	Migrating git directory of '\''sub1'\'' from
	'\''$cwd/sub1/.git'\'' to
	'\''$cwd/.git/modules/sub1'\''
	EOF
	git submodule absorbgitdirs 2>actual &&
	test_cmp expect actual &&
	git fsck &&
	test -f sub1/.git &&
	test -d .git/modules/sub1 &&
	git status >actual.1 &&
	git -C sub1 rev-parse HEAD >actual.2 &&
	test_cmp expect.1 actual.1 &&
	test_cmp expect.2 actual.2
'

test_expect_success 'absorbing does not fail for deinitialized submodules' '
	test_when_finished "git submodule update --init" &&
	git submodule deinit --all &&
	git submodule absorbgitdirs 2>err &&
	test_must_be_empty err &&
	test -d .git/modules/sub1 &&
	test -d sub1 &&
	! test -e sub1/.git
'

test_expect_success 'setup nested submodule' '
	git init sub1/nested &&
	test_commit -C sub1/nested first_nested &&
	git -C sub1 submodule add ./nested &&
	test_tick &&
	git -C sub1 commit -m "add nested" &&
	git add sub1 &&
	git commit -m "sub1 to include nested submodule"
'

test_expect_success 'absorb the git dir in a nested submodule' '
	git status >expect.1 &&
	git -C sub1/nested rev-parse HEAD >expect.2 &&
	cat >expect <<-EOF &&
	Migrating git directory of '\''sub1/nested'\'' from
	'\''$cwd/sub1/nested/.git'\'' to
	'\''$cwd/.git/modules/sub1/modules/nested'\''
	EOF
	git submodule absorbgitdirs 2>actual &&
	test_cmp expect actual &&
	test -f sub1/nested/.git &&
	test -d .git/modules/sub1/modules/nested &&
	git status >actual.1 &&
	git -C sub1/nested rev-parse HEAD >actual.2 &&
	test_cmp expect.1 actual.1 &&
	test_cmp expect.2 actual.2
'

test_expect_success 're-setup nested submodule' '
	# un-absorb the direct submodule, to test if the nested submodule
	# is still correct (needs a rewrite of the gitfile only)
	rm -rf sub1/.git &&
	mv .git/modules/sub1 sub1/.git &&
	GIT_WORK_TREE=. git -C sub1 config --unset core.worktree &&
	# fixup the nested submodule
	echo "gitdir: ../.git/modules/nested" >sub1/nested/.git &&
	GIT_WORK_TREE=../../../nested git -C sub1/.git/modules/nested config \
		core.worktree "../../../nested" &&
	# make sure this re-setup is correct
	git status --ignore-submodules=none &&

	# also make sure this old setup does not regress
	git submodule update --init --recursive >out 2>err &&
	test_must_be_empty out &&
	test_must_be_empty err
'

test_expect_success 'absorb the git dir in a nested submodule' '
	git status >expect.1 &&
	git -C sub1/nested rev-parse HEAD >expect.2 &&
	cat >expect <<-EOF &&
	Migrating git directory of '\''sub1'\'' from
	'\''$cwd/sub1/.git'\'' to
	'\''$cwd/.git/modules/sub1'\''
	EOF
	git submodule absorbgitdirs 2>actual &&
	test_cmp expect actual &&
	test -f sub1/.git &&
	test -f sub1/nested/.git &&
	test -d .git/modules/sub1/modules/nested &&
	git status >actual.1 &&
	git -C sub1/nested rev-parse HEAD >actual.2 &&
	test_cmp expect.1 actual.1 &&
	test_cmp expect.2 actual.2
'

test_expect_success 'absorb the git dir outside of primary worktree' '
	test_when_finished "rm -rf repo-bare.git" &&
	git clone --bare . repo-bare.git &&
	test_when_finished "rm -rf repo-wt" &&
	git -C repo-bare.git worktree add ../repo-wt &&

	test_when_finished "rm -f .gitconfig" &&
	test_config_global protocol.file.allow always &&
	git -C repo-wt submodule update --init &&
	git init repo-wt/sub2 &&
	test_commit -C repo-wt/sub2 A &&
	git -C repo-wt submodule add ./sub2 sub2 &&
	cat >expect <<-EOF &&
	Migrating git directory of '\''sub2'\'' from
	'\''$cwd/repo-wt/sub2/.git'\'' to
	'\''$cwd/repo-bare.git/worktrees/repo-wt/modules/sub2'\''
	EOF
	git -C repo-wt submodule absorbgitdirs 2>actual &&
	test_cmp expect actual
'

test_expect_success 'setup a gitlink with missing .gitmodules entry' '
	git init sub2 &&
	test_commit -C sub2 first &&
	git add sub2 &&
	git commit -m superproject
'

test_expect_success 'absorbing the git dir fails for incomplete submodules' '
	git status >expect.1 &&
	git -C sub2 rev-parse HEAD >expect.2 &&
	cat >expect <<-\EOF &&
	fatal: could not lookup name for submodule '\''sub2'\''
	EOF
	test_must_fail git submodule absorbgitdirs 2>actual &&
	test_cmp expect actual &&
	git -C sub2 fsck &&
	test -d sub2/.git &&
	git status >actual &&
	git -C sub2 rev-parse HEAD >actual.2 &&
	test_cmp expect.1 actual.1 &&
	test_cmp expect.2 actual.2
'

test_expect_success 'setup a submodule with multiple worktrees' '
	# first create another unembedded git dir in a new submodule
	git init sub3 &&
	test_commit -C sub3 first &&
	git submodule add ./sub3 &&
	test_tick &&
	git commit -m "add another submodule" &&
	git -C sub3 worktree add ../sub3_second_work_tree
'

test_expect_success 'absorbing fails for a submodule with multiple worktrees' '
	cat >expect <<-\EOF &&
	fatal: could not lookup name for submodule '\''sub2'\''
	EOF
	test_must_fail git submodule absorbgitdirs 2>actual &&
	test_cmp expect actual
'

test_done
