From 383b5ba6b57ad3c6c4bd0fc5fb713afb127e8f6e Mon Sep 17 00:00:00 2001 From: olimorris Date: Thu, 23 Feb 2023 20:44:05 +0000 Subject: [PATCH] feat: delete a session in a schedule.wrap func --- lua/persisted/init.lua | 7 ++++--- tests/default_settings_spec.lua | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/lua/persisted/init.lua b/lua/persisted/init.lua index 41967f2..81d213e 100644 --- a/lua/persisted/init.lua +++ b/lua/persisted/init.lua @@ -150,7 +150,6 @@ function M.save() return end - if vim.g.persisting_session == nil then vim.cmd("mks! " .. e(get_current())) else @@ -173,8 +172,10 @@ end function M.delete() local session = get_current() if session and vim.loop.fs_stat(session) ~= 0 then - M.stop() - vim.fn.system("rm " .. e(session)) + vim.schedule(function() + M.stop() + vim.fn.system("rm " .. e(session)) + end) end end diff --git a/tests/default_settings_spec.lua b/tests/default_settings_spec.lua index baf8f5e..c5b31b5 100644 --- a/tests/default_settings_spec.lua +++ b/tests/default_settings_spec.lua @@ -53,11 +53,16 @@ describe("With default settings:", function() assert.equals(path:is_path(), true) end) - - it("it deletes a session", function() - require("persisted").delete() - - assert.equals(vim.fn.system("ls tests/default_data | wc -l"):gsub("%s+", ""), "0") - end) - +end) + +local async = require("plenary.async.tests") +local util = require("plenary.async.util") + +async.describe("With default settings:", function() + async.it("it deletes a session", function() + require("persisted").delete() + util.scheduler() + + assert.equals("0", vim.fn.system("ls tests/default_data | wc -l"):gsub("%s+", "")) + end) end)