aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-core
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-04-23 22:43:56 +0200
committerGitHub <noreply@github.com>2023-04-23 22:43:56 +0200
commit9a68a4bd997b72cee4132459e0fd99eea0cdc627 (patch)
tree9653770242717851377e4cda62be36902c1e416c /tests/mason-core
parentfix(linker): don't symlink on Windows (#1253) (diff)
downloadmason-9a68a4bd997b72cee4132459e0fd99eea0cdc627.tar
mason-9a68a4bd997b72cee4132459e0fd99eea0cdc627.tar.gz
mason-9a68a4bd997b72cee4132459e0fd99eea0cdc627.tar.bz2
mason-9a68a4bd997b72cee4132459e0fd99eea0cdc627.tar.lz
mason-9a68a4bd997b72cee4132459e0fd99eea0cdc627.tar.xz
mason-9a68a4bd997b72cee4132459e0fd99eea0cdc627.tar.zst
mason-9a68a4bd997b72cee4132459e0fd99eea0cdc627.zip
refactor(linker): copy_file instead of rename on Windows (#1254)
Renaming the file will move it from its original installation directory. While reaching into package installation directories is unsupported and not recommended, it seems to be done pretty broadly. In order to avoid unnecessarily breaking people's configs we copy the file instead, for now. (tip: use the stable locations inside $MASON/share $MASON/opt $MASON/bin, if a package is missing a link please open an issue/PR). This will be reversed back to use uv_fs_rename() in 1.x.x.
Diffstat (limited to 'tests/mason-core')
-rw-r--r--tests/mason-core/installer/linker_spec.lua15
1 files changed, 8 insertions, 7 deletions
diff --git a/tests/mason-core/installer/linker_spec.lua b/tests/mason-core/installer/linker_spec.lua
index 0a2b62ab..8bcf2607 100644
--- a/tests/mason-core/installer/linker_spec.lua
+++ b/tests/mason-core/installer/linker_spec.lua
@@ -152,7 +152,7 @@ describe("linker", function()
end)
)
- it("should rename share files on Windows", function()
+ it("should copy share files on Windows", function()
platform.is.darwin = false
platform.is.mac = false
platform.is.linux = false
@@ -163,7 +163,7 @@ describe("linker", function()
stub(fs.async, "mkdirp")
stub(fs.async, "dir_exists")
stub(fs.async, "file_exists")
- stub(fs.async, "rename")
+ stub(fs.async, "copy_file")
-- mock non-existent dest files
fs.async.file_exists.on_call_with(path.share_prefix "share-file").returns(false)
@@ -187,13 +187,14 @@ describe("linker", function()
assert.is_true(result:is_success())
- assert.spy(fs.async.rename).was_called(2)
+ assert.spy(fs.async.copy_file).was_called(2)
assert
- .spy(fs.async.rename)
- .was_called_with(path.concat { dummy:get_install_path(), "share-file" }, path.share_prefix "share-file")
- assert.spy(fs.async.rename).was_called_with(
+ .spy(fs.async.copy_file)
+ .was_called_with(path.concat { dummy:get_install_path(), "share-file" }, path.share_prefix "share-file", { excl = true })
+ assert.spy(fs.async.copy_file).was_called_with(
path.concat { dummy:get_install_path(), "nested", "path", "to", "share-file" },
- path.share_prefix "nested/path/share-file"
+ path.share_prefix "nested/path/share-file",
+ { excl = true }
)
assert.spy(fs.async.mkdirp).was_called(2)