File: git-continue.bats

package info (click to toggle)
git-extras 7.4.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 2,120 kB
  • sloc: sh: 4,312; python: 994; makefile: 146
file content (92 lines) | stat: -rwxr-xr-x 1,574 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/env bats

source "$BATS_TEST_DIRNAME/test_util.sh"

setup_file() {
	test_util.setup_file
}

setup() {
	test_util.cd_test

	test_util.git_init
	git commit -m 'Initial commit' --allow-empty

	git switch -c A main
	printf '%s\n' 'a' >> ./tmp_file
	git add ./tmp_file
	git commit -m 'A'

	git switch -c B main
	printf '%s\n' 'b' >> ./tmp_file
	git add ./tmp_file
	git commit -m 'B'
}

@test "works with cherry pick" {
	run git cherry-pick A
	assert_failure

	run git status
	assert_line -p 'Unmerged paths:'
	assert_success

	git add .
	GIT_EDITOR=cat run git continue
	assert_success

	run git status
	assert_line -p 'nothing to commit, working tree clean'
	assert_success
}

@test "works with merge" {
	run git merge A
	assert_failure

	run git status
	assert_line -p 'Unmerged paths:'
	assert_success

	git add .
	GIT_EDITOR=cat run git continue
	assert_success

	run git status
	assert_line -p 'nothing to commit, working tree clean'
	assert_success
}

@test "works with rebase" {
	run git rebase A
	assert_failure

	run git status
	assert_line -p 'Unmerged paths:'
	assert_success

	git add .
	GIT_EDITOR=cat run git continue
	assert_success

	run git status
	assert_line -p 'nothing to commit, working tree clean'
	assert_success
}

@test "works with revert" {
	run git revert A
	assert_failure

	run git status
	assert_line -p 'Unmerged paths:'
	assert_success

	git add .
	GIT_EDITOR=cat run git continue
	assert_failure # TODO: Git seems to do nothing and error out?

	run git status
	assert_line -p 'nothing to commit, working tree clean'
	assert_success
}