-
-
Notifications
You must be signed in to change notification settings - Fork 86
/
fb_git_spec.lua
104 lines (98 loc) · 3.7 KB
/
fb_git_spec.lua
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
93
94
95
96
97
98
99
100
101
102
103
104
local git = require "telescope._extensions.file_browser.git"
local utils = require "telescope._extensions.file_browser.utils"
describe("parse_status_output unix", function()
if utils.iswin then
return
end
local cwd = "/project/root/dir"
it("works in the root dir", function()
local git_status = {
"M .gitignore",
" M README.md",
" M lua/telescope/_extensions/file_browser/finders.lua",
"?? lua/tests/",
}
local expect = {
[cwd .. "/.gitignore"] = "M ",
[cwd .. "/README.md"] = " M",
[cwd .. "/lua/telescope/_extensions/file_browser/finders.lua"] = " M",
[cwd .. "/lua/tests/"] = "??",
}
local actual = git.parse_status_output(git_status, cwd)
assert.are.same(expect, actual)
end)
it("works in a sub dir", function()
local git_status = {
" M lua/telescope/_extensions/file_browser/finders.lua",
"?? lua/tests/",
}
local expect = {
[cwd .. "/lua/telescope/_extensions/file_browser/finders.lua"] = " M",
[cwd .. "/lua/tests/"] = "??",
}
local actual = git.parse_status_output(git_status, cwd)
assert.are.same(expect, actual)
end)
it("parses renamed and copied status", function()
local git_status = {
"R lua/telescope/_extensions/file_browser/stats.lua -> lua/telescope/_extensions/file_browser/fs_stat.lua",
"C lua/telescope/_extensions/file_browser/stats.lua -> lua/telescope/_extensions/file_browser/fs_stat.lua",
" M lua/telescope/_extensions/file_browser/make_entry.lua",
}
local expect = {
[cwd .. "/lua/telescope/_extensions/file_browser/fs_stat.lua"] = "R ",
[cwd .. "/lua/telescope/_extensions/file_browser/fs_stat.lua"] = "C ",
[cwd .. "/lua/telescope/_extensions/file_browser/make_entry.lua"] = " M",
}
local actual = git.parse_status_output(git_status, cwd)
assert.are.same(expect, actual)
end)
end)
describe("parse_status_output windows", function()
if not utils.iswin then
return
end
local cwd = "C:\\project\\root\\dir"
it("works in the root dir", function()
local git_status = {
"M .gitignore",
" M README.md",
" M lua\\telescope\\_extensions\\file_browser\\finders.lua",
"?? lua\\tests\\",
}
local expect = {
[cwd .. "\\.gitignore"] = "M ",
[cwd .. "\\README.md"] = " M",
[cwd .. "\\lua\\telescope\\_extensions\\file_browser\\finders.lua"] = " M",
[cwd .. "\\lua\\tests\\"] = "??",
}
local actual = git.parse_status_output(git_status, cwd)
assert.are.same(expect, actual)
end)
it("works in a sub dir", function()
local git_status = {
" M lua\\telescope\\_extensions\\file_browser\\finders.lua",
"?? lua\\tests\\",
}
local expect = {
[cwd .. "\\lua\\telescope\\_extensions\\file_browser\\finders.lua"] = " M",
[cwd .. "\\lua\\tests\\"] = "??",
}
local actual = git.parse_status_output(git_status, cwd)
assert.are.same(expect, actual)
end)
it("parses renamed and copied status", function()
local git_status = {
"R lua\\telescope\\_extensions\\file_browser\\stats.lua -> lua\\telescope\\_extensions\\file_browser\\fs_stat.lua",
"C lua\\telescope\\_extensions\\file_browser\\stats.lua -> lua\\telescope\\_extensions\\file_browser\\fs_stat.lua",
" M lua\\telescope\\_extensions\\file_browser\\make_entry.lua",
}
local expect = {
[cwd .. "\\lua\\telescope\\_extensions\\file_browser\\fs_stat.lua"] = "R ",
[cwd .. "\\lua\\telescope\\_extensions\\file_browser\\fs_stat.lua"] = "C ",
[cwd .. "\\lua\\telescope\\_extensions\\file_browser\\make_entry.lua"] = " M",
}
local actual = git.parse_status_output(git_status, cwd)
assert.are.same(expect, actual)
end)
end)