mirror of
https://github.com/folke/snacks.nvim
synced 2025-07-07 21:25:11 +00:00
39 lines
1.5 KiB
Lua
39 lines
1.5 KiB
Lua
---@module 'luassert'
|
|
|
|
local Git = require("snacks.picker.source.git")
|
|
|
|
describe("git status", function()
|
|
-- git status codes are always 2 characters
|
|
local tests = {
|
|
-- Unmerged cases
|
|
["AA"] = { xy = "AA", status = "added", unmerged = true },
|
|
["UU"] = { xy = "UU", status = "modified", unmerged = true },
|
|
["AU"] = { xy = "AU", status = "added", unmerged = true },
|
|
["DD"] = { xy = "DD", status = "deleted", unmerged = true },
|
|
["UD"] = { xy = "UD", status = "deleted", unmerged = true },
|
|
["DU"] = { xy = "DU", status = "deleted", unmerged = true },
|
|
["UA"] = { xy = "UA", status = "added", unmerged = true },
|
|
|
|
-- Regular cases
|
|
[" M"] = { xy = " M", status = "modified" },
|
|
[" D"] = { xy = " D", status = "deleted" },
|
|
[" R"] = { xy = " R", status = "renamed" },
|
|
["??"] = { xy = "??", status = "untracked" },
|
|
["!!"] = { xy = "!!", status = "ignored" },
|
|
|
|
-- Staged cases
|
|
["M "] = { xy = "M ", status = "modified", staged = true },
|
|
["T "] = { xy = "T ", status = "modified", staged = true },
|
|
["D "] = { xy = "D ", status = "deleted", staged = true },
|
|
["A "] = { xy = "A ", status = "added", staged = true },
|
|
["AD"] = { xy = "AD", status = "added", staged = true },
|
|
["C "] = { xy = "C ", status = "copied", staged = true },
|
|
}
|
|
for _, test in pairs(tests) do
|
|
it("should parse `" .. test.xy .. "`", function()
|
|
local status = Git.git_status(test.xy)
|
|
status.priority = nil
|
|
assert.are.same(test, status)
|
|
end)
|
|
end
|
|
end)
|