From 3bc4b74f12303319e088c963a7c13486c4e4e776 Mon Sep 17 00:00:00 2001 From: William Boman Date: Fri, 13 Oct 2023 15:40:24 +0200 Subject: feat(path): add relative(from, to) --- tests/mason-core/path_spec.lua | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'tests') diff --git a/tests/mason-core/path_spec.lua b/tests/mason-core/path_spec.lua index 3d0c2e25..4aeb48f1 100644 --- a/tests/mason-core/path_spec.lua +++ b/tests/mason-core/path_spec.lua @@ -22,4 +22,55 @@ describe("path", function() assert.is_false(path.is_subdirectory("/foo/bar", "/foo/bas/baz")) assert.is_false(path.is_subdirectory("/foo/bar", "/foo/bars/baz")) end) + + describe("relative ::", function() + local matrix = { + { + from = "/home/user/dir1/fileA", + to = "/home/user/dir1/fileB", + expected = "./fileB", + }, + { + from = "/home/user/dir1/fileA", + to = "/home/user/dir2/fileC", + expected = "../dir2/fileC", + }, + { + from = "/home/user/dir1/subdir/fileD", + to = "/home/user/dir1/fileE", + expected = "../fileE", + }, + { + from = "/home/user/dir1/subdir/fileD", + to = "/home/user/dir1/subdir/fileF", + expected = "./fileF", + }, + { + from = "/home/user/dir1/fileG", + to = "/home/user/dir2/subdir/fileH", + expected = "../dir2/subdir/fileH", + }, + { + from = "/home/user/dir1/subdir1/subdir2/fileI", + to = "/home/user/dir1/fileJ", + expected = "../../fileJ", + }, + { + from = "/fileK", + to = "/home/fileL", + expected = "./home/fileL", + }, + { + from = "/home/user/fileM", + to = "/home/user/dir1/dir2/fileL", + expected = "./dir1/dir2/fileL", + }, + } + + for _, test_case in ipairs(matrix) do + it(("should resolve from %s to %s: %s"):format(test_case.from, test_case.to, test_case.expected), function() + assert.equals(test_case.expected, path.relative(test_case.from, test_case.to)) + end) + end + end) end) -- cgit v1.2.3-70-g09d2