persisted.nvim/tests/git_branching/git_branching_spec.lua

49 lines
1.6 KiB
Lua

pcall(vim.fn.system, "rm -rf tests/git_branch_data")
local session_dir = vim.fn.getcwd() .. "/tests/git_branch_data/"
require("persisted").setup({
save_dir = session_dir,
use_git_branch = true,
})
describe("Git Branching", function()
it("creates a session", function()
vim.fn.system("mkdir tests/git_branch_data")
vim.fn.system("cd tests/git_branch_data && git init")
assert.equals(vim.fn.system("ls tests/git_branch_data | wc -l"):gsub("%s+", ""), "0")
vim.cmd(":e tests/stubs/test_git_branching.txt")
vim.cmd(":w tests/git_branch_data/test_git_branching.txt")
require("persisted").save()
assert.equals(vim.fn.system("ls tests/git_branch_data | wc -l"):gsub("%s+", ""), "2")
end)
it("ensures the session has the branch name in", function()
if vim.fn.isdirectory(session_dir .. "/.git") == 0 then
vim.fn.system("mkdir -p " .. session_dir)
vim.fn.system("cd " .. session_dir .. " && git init")
end
local branch_name = require("persisted").branch()
-- Check if branch_name is valid
if not branch_name then
print("Failed to get branch name.")
branch_name = ""
else
branch_name = "@@" .. branch_name
end
-- Workout what the name should be
local pattern = "/"
local name = vim.fn.getcwd():gsub(pattern, "%%") .. branch_name .. ".vim"
local session = vim.fn.glob(session_dir .. "*.vim", true, true)[1]
session:gsub(session_dir .. "/", "")
assert.equals(session, vim.fn.getcwd() .. "/tests/git_branch_data/" .. name)
-- assert.equals(sessions[1]:gsub(pattern, "%%"), name)
end)
end)