mirror of
https://github.com/kristoferssolo/telescope-frecency.nvim.git
synced 2025-10-21 20:10:38 +00:00
* refactor: unite logic for finder & async_finder * chore: fix types * chore: add sleep to show results at first * refactor: fix to find results separatedly * test: remove unnecessary ones and fix others * test: add matrix for 0.9.x & Windows * test: use forked plenary.log for Windows * test: fix to use strptime in Windows * test: run again if segmentation fault in Windows * test: loosen timeout for Perl * test: use the latest plenary.nvim again * chore: fix types * chore: change variable name * feat: watch changes of DB to reload * chore: add comments to steps * test: copy whole modules for testing in Windows * fix: make valid paths for Windows * test: add tests for Native * test: use robust way to calculate time vim.fn.strptime cannot be used in Lua loop * chore: fix comments * refactor: simplify the code * test: loosen condition to detect failures * test: disable some logging Many loggings make the test fail. * test: run tests sequentially in Windows * test: loosen timeout not to fail on Windows
47 lines
1.4 KiB
Lua
47 lines
1.4 KiB
Lua
local FS = require "frecency.fs"
|
|
local Native = require "frecency.database.native"
|
|
local async = require "plenary.async" --[[@as PlenaryAsync]]
|
|
local util = require "frecency.tests.util"
|
|
async.tests.add_to_env()
|
|
|
|
local function with_native(f)
|
|
local fs = FS.new { ignore_patterns = {} }
|
|
local dir, close = util.tmpdir()
|
|
dir:joinpath("file_frecency.bin"):touch()
|
|
return function()
|
|
local native = Native.new(fs, { root = dir.filename })
|
|
f(native)
|
|
close()
|
|
end
|
|
end
|
|
|
|
local function save_and_load(native, tbl, datetime)
|
|
native:raw_save(util.v1_table(tbl))
|
|
async.util.sleep(100)
|
|
local entries = native:get_entries(nil, datetime)
|
|
table.sort(entries, function(a, b)
|
|
return a.path < b.path
|
|
end)
|
|
return entries
|
|
end
|
|
|
|
a.describe("frecency.database.native", function()
|
|
a.describe("updated by another process", function()
|
|
a.it(
|
|
"returns valid entries",
|
|
with_native(function(native)
|
|
assert.are.same(
|
|
{
|
|
{ path = "hoge1.txt", count = 1, ages = { 60 } },
|
|
{ path = "hoge2.txt", count = 1, ages = { 60 } },
|
|
},
|
|
save_and_load(native, {
|
|
["hoge1.txt"] = { count = 1, timestamps = { "2023-08-21T00:00:00+0000" } },
|
|
["hoge2.txt"] = { count = 1, timestamps = { "2023-08-21T00:00:00+0000" } },
|
|
}, "2023-08-21T01:00:00+0000")
|
|
)
|
|
end)
|
|
)
|
|
end)
|
|
end)
|