Skip to content

Commit d8ed15d

Browse files
committed
Add test suite
1 parent e96bfc3 commit d8ed15d

18 files changed

+844
-0
lines changed

Makefile

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
help:
2+
@echo "Available targets:"
3+
@echo "test Run tests"
4+
@echo "conflicts Generate example conflicts in test repository"
5+
6+
test:
7+
@TEST=1 nvim --headless --noplugin -l scripts/run_tests.lua
8+
9+
conflicts:
10+
@./scripts/make-conflicts.sh

lua/jj-diffconflicts/init.lua

+7
Original file line numberDiff line numberDiff line change
@@ -381,4 +381,11 @@ end
381381

382382
h.err = function(msg) error(msg, 0) end
383383

384+
if vim.env.TEST ~= nil then
385+
-- Export internal functions when running tests
386+
for k, v in pairs(h) do
387+
M[k] = v
388+
end
389+
end
390+
384391
return M
File renamed without changes.

scripts/run_tests.lua

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
if not vim.env.MINI_NVIM_PATH then
2+
vim.print("The $MINI_NVIM_PATH environment variable is unset.")
3+
vim.print(
4+
"Set it to the path of a local copy of https://github.com/echasnovski/mini.nvim/.\n"
5+
)
6+
os.exit(1)
7+
end
8+
9+
-- Add plugin to 'runtimepath' to be able to use it in tests
10+
vim.opt.runtimepath:append(vim.fn.getcwd())
11+
12+
-- Add 'mini.nvim' to 'runtimepath' to be able to use 'mini.test'
13+
vim.opt.runtimepath:append(vim.env.MINI_NVIM_PATH)
14+
15+
-- Set up 'mini.test'
16+
local MiniTest = require("mini.test")
17+
MiniTest.setup()
18+
19+
-- Run test suite
20+
MiniTest.run()

tests/data/base

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
X
2+
X
3+
X
4+
apple
5+
grape
6+
orange
7+
X
8+
X
9+
X

tests/data/fruits.txt

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
X
2+
X
3+
X
4+
<<<<<<< Conflict 1 of 1
5+
%%%%%%% Changes from base to side #1
6+
apple
7+
-grape
8+
+grapefruit
9+
orange
10+
+++++++ Contents of side #2
11+
APPLE
12+
GRAPE
13+
ORANGE
14+
>>>>>>> Conflict 1 of 1 ends
15+
X
16+
X
17+
X

tests/data/left

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
X
2+
X
3+
X
4+
apple
5+
grapefruit
6+
orange
7+
X
8+
X
9+
X

tests/data/long_markers.txt

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<<<<<<<<<<<<<<< Conflict 1 of 1
2+
%%%%%%%%%%%%%%% Changes from base to side #1
3+
-Heading
4+
+HEADING
5+
=======
6+
+++++++++++++++ Contents of side #2
7+
New Heading
8+
===========
9+
>>>>>>>>>>>>>>> Conflict 1 of 1 ends

tests/data/multiple_conflicts.txt

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
X
2+
X
3+
X
4+
<<<<<<< Conflict 1 of 2
5+
%%%%%%% Changes from base to side #1
6+
apple
7+
-grape
8+
+grapefruit
9+
orange
10+
+++++++ Contents of side #2
11+
APPLE
12+
GRAPE
13+
ORANGE
14+
>>>>>>> Conflict 1 of 2 ends
15+
X
16+
X
17+
X
18+
X
19+
X
20+
<<<<<<< Conflict 2 of 2
21+
%%%%%%% Changes from base to side #1
22+
apple
23+
grape
24+
-orange
25+
+blood orange
26+
+++++++ Contents of side #2
27+
APPLE
28+
GRAPE
29+
ORANGE
30+
>>>>>>> Conflict 2 of 2 ends

tests/data/right

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
X
2+
X
3+
X
4+
APPLE
5+
GRAPE
6+
ORANGE
7+
X
8+
X
9+
X

tests/screenshots/fruits_ui

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
--|---------|---------|---------|---------|---------|---------|---------|---------|
2+
01| X │ X
3+
02| X │ X
4+
03| X │ X
5+
04| apple │ APPLE
6+
05| grapefruit │ GRAPE
7+
06| orange │ ORANGE
8+
07| X │ X
9+
08| X │ X
10+
09| X │ X
11+
10|~ │~
12+
11|~ │~
13+
12|~ │~
14+
13|~ │~
15+
14|~ │~
16+
15|~ │~
17+
16|~ │~
18+
17|~ │~
19+
18|~ │~
20+
19|~ │~
21+
20|~ │~
22+
21|~ │~
23+
22|~ │~
24+
23|[No Name] [+] 4,1 All snapshot [RO] 4,1 All
25+
24|Resolve conflicts leftward then save. Use :cq to abort.
26+
27+
--|---------|---------|---------|---------|---------|---------|---------|---------|
28+
01|00111111111111111111111111111111111111120011111111111111111111111111111111111111
29+
02|00111111111111111111111111111111111111120011111111111111111111111111111111111111
30+
03|00111111111111111111111111111111111111120011111111111111111111111111111111111111
31+
04|00333334444444444444444444444444444444420033333444444444444444444444444444444444
32+
05|00333333333344444444444444444444444444420033333444444444444444444444444444444444
33+
06|00333333444444444444444444444444444444420033333344444444444444444444444444444444
34+
07|00111111111111111111111111111111111111120011111111111111111111111111111111111111
35+
08|00111111111111111111111111111111111111120011111111111111111111111111111111111111
36+
09|00111111111111111111111111111111111111120011111111111111111111111111111111111111
37+
10|00000000000000000000000000000000000000020000000000000000000000000000000000000000
38+
11|00000000000000000000000000000000000000020000000000000000000000000000000000000000
39+
12|00000000000000000000000000000000000000020000000000000000000000000000000000000000
40+
13|00000000000000000000000000000000000000020000000000000000000000000000000000000000
41+
14|00000000000000000000000000000000000000020000000000000000000000000000000000000000
42+
15|00000000000000000000000000000000000000020000000000000000000000000000000000000000
43+
16|00000000000000000000000000000000000000020000000000000000000000000000000000000000
44+
17|00000000000000000000000000000000000000020000000000000000000000000000000000000000
45+
18|00000000000000000000000000000000000000020000000000000000000000000000000000000000
46+
19|00000000000000000000000000000000000000020000000000000000000000000000000000000000
47+
20|00000000000000000000000000000000000000020000000000000000000000000000000000000000
48+
21|00000000000000000000000000000000000000020000000000000000000000000000000000000000
49+
22|00000000000000000000000000000000000000020000000000000000000000000000000000000000
50+
23|55555555555555555555555555555555555555556666666666666666666666666666666666666666
51+
24|77777777777777777777777777777777777777777777777777777778888888888888888888888888

tests/screenshots/long_markers_ui

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
--|---------|---------|---------|---------|---------|---------|---------|---------|
2+
01| HEADING │ New Heading
3+
02| ======= │ ===========
4+
03|~ │~
5+
04|~ │~
6+
05|~ │~
7+
06|~ │~
8+
07|~ │~
9+
08|~ │~
10+
09|~ │~
11+
10|~ │~
12+
11|~ │~
13+
12|~ │~
14+
13|~ │~
15+
14|~ │~
16+
15|~ │~
17+
16|~ │~
18+
17|~ │~
19+
18|~ │~
20+
19|~ │~
21+
20|~ │~
22+
21|~ │~
23+
22|~ │~
24+
23|[No Name] [+] 1,1 All snapshot [RO] 1,1 All
25+
24|Resolve conflicts leftward then save. Use :cq to abort.
26+
27+
--|---------|---------|---------|---------|---------|---------|---------|---------|
28+
01|00111111122222222222222222222222222222230011111111111222222222222222222222222222
29+
02|00222222222222222222222222222222222222230022222221111222222222222222222222222222
30+
03|00000000000000000000000000000000000000030000000000000000000000000000000000000000
31+
04|00000000000000000000000000000000000000030000000000000000000000000000000000000000
32+
05|00000000000000000000000000000000000000030000000000000000000000000000000000000000
33+
06|00000000000000000000000000000000000000030000000000000000000000000000000000000000
34+
07|00000000000000000000000000000000000000030000000000000000000000000000000000000000
35+
08|00000000000000000000000000000000000000030000000000000000000000000000000000000000
36+
09|00000000000000000000000000000000000000030000000000000000000000000000000000000000
37+
10|00000000000000000000000000000000000000030000000000000000000000000000000000000000
38+
11|00000000000000000000000000000000000000030000000000000000000000000000000000000000
39+
12|00000000000000000000000000000000000000030000000000000000000000000000000000000000
40+
13|00000000000000000000000000000000000000030000000000000000000000000000000000000000
41+
14|00000000000000000000000000000000000000030000000000000000000000000000000000000000
42+
15|00000000000000000000000000000000000000030000000000000000000000000000000000000000
43+
16|00000000000000000000000000000000000000030000000000000000000000000000000000000000
44+
17|00000000000000000000000000000000000000030000000000000000000000000000000000000000
45+
18|00000000000000000000000000000000000000030000000000000000000000000000000000000000
46+
19|00000000000000000000000000000000000000030000000000000000000000000000000000000000
47+
20|00000000000000000000000000000000000000030000000000000000000000000000000000000000
48+
21|00000000000000000000000000000000000000030000000000000000000000000000000000000000
49+
22|00000000000000000000000000000000000000030000000000000000000000000000000000000000
50+
23|44444444444444444444444444444444444444445555555555555555555555555555555555555555
51+
24|66666666666666666666666666666666666666666666666666666667777777777777777777777777
+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
--|---------|---------|---------|---------|---------|---------|---------|---------|
2+
01| X │ X
3+
02| X │ X
4+
03| X │ X
5+
04| apple │ APPLE
6+
05| grapefruit │ GRAPE
7+
06| orange │ ORANGE
8+
07| X │ X
9+
08| X │ X
10+
09| X │ X
11+
10| X │ X
12+
11| X │ X
13+
12| <<<<<<< Conflict 2 of 2 │ <<<<<<< Conflict 2 of 2
14+
13|+ +-- 10 lines: %%%%%%% Changes from ba│+ +-- 10 lines: %%%%%%% Changes from bas
15+
14|~ │~
16+
15|~ │~
17+
16|~ │~
18+
17|~ │~
19+
18|~ │~
20+
19|~ │~
21+
20|~ │~
22+
21|~ │~
23+
22|~ │~
24+
23|~ │~
25+
24|~ │~
26+
25|~ │~
27+
26|~ │~
28+
27|~ │~
29+
28|~ │~
30+
29|~ │~
31+
30|~ │~
32+
31|~ │~
33+
32|~ │~
34+
33|~ │~
35+
34|~ │~
36+
35|[No Name] [+] 4,1 All snapshot [RO] 4,1 All
37+
36|Resolve conflicts leftward then save. Use :cq to abort.
38+
39+
--|---------|---------|---------|---------|---------|---------|---------|---------|
40+
01|00111111111111111111111111111111111111120011111111111111111111111111111111111111
41+
02|00111111111111111111111111111111111111120011111111111111111111111111111111111111
42+
03|00111111111111111111111111111111111111120011111111111111111111111111111111111111
43+
04|00333334444444444444444444444444444444420033333444444444444444444444444444444444
44+
05|00333333333344444444444444444444444444420033333444444444444444444444444444444444
45+
06|00333333444444444444444444444444444444420033333344444444444444444444444444444444
46+
07|00111111111111111111111111111111111111120011111111111111111111111111111111111111
47+
08|00111111111111111111111111111111111111120011111111111111111111111111111111111111
48+
09|00111111111111111111111111111111111111120011111111111111111111111111111111111111
49+
10|00111111111111111111111111111111111111120011111111111111111111111111111111111111
50+
11|00111111111111111111111111111111111111120011111111111111111111111111111111111111
51+
12|00111111111111111111111111111111111111120011111111111111111111111111111111111111
52+
13|00555555555555555555555555555555555555520055555555555555555555555555555555555555
53+
14|00000000000000000000000000000000000000020000000000000000000000000000000000000000
54+
15|00000000000000000000000000000000000000020000000000000000000000000000000000000000
55+
16|00000000000000000000000000000000000000020000000000000000000000000000000000000000
56+
17|00000000000000000000000000000000000000020000000000000000000000000000000000000000
57+
18|00000000000000000000000000000000000000020000000000000000000000000000000000000000
58+
19|00000000000000000000000000000000000000020000000000000000000000000000000000000000
59+
20|00000000000000000000000000000000000000020000000000000000000000000000000000000000
60+
21|00000000000000000000000000000000000000020000000000000000000000000000000000000000
61+
22|00000000000000000000000000000000000000020000000000000000000000000000000000000000
62+
23|00000000000000000000000000000000000000020000000000000000000000000000000000000000
63+
24|00000000000000000000000000000000000000020000000000000000000000000000000000000000
64+
25|00000000000000000000000000000000000000020000000000000000000000000000000000000000
65+
26|00000000000000000000000000000000000000020000000000000000000000000000000000000000
66+
27|00000000000000000000000000000000000000020000000000000000000000000000000000000000
67+
28|00000000000000000000000000000000000000020000000000000000000000000000000000000000
68+
29|00000000000000000000000000000000000000020000000000000000000000000000000000000000
69+
30|00000000000000000000000000000000000000020000000000000000000000000000000000000000
70+
31|00000000000000000000000000000000000000020000000000000000000000000000000000000000
71+
32|00000000000000000000000000000000000000020000000000000000000000000000000000000000
72+
33|00000000000000000000000000000000000000020000000000000000000000000000000000000000
73+
34|00000000000000000000000000000000000000020000000000000000000000000000000000000000
74+
35|66666666666666666666666666666666666666667777777777777777777777777777777777777777
75+
36|88888888888888888888888888888888888888888888888888888889999999999999999999999999

0 commit comments

Comments
 (0)