aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-core/fetch_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mason-core/fetch_spec.lua')
-rw-r--r--tests/mason-core/fetch_spec.lua207
1 files changed, 102 insertions, 105 deletions
diff --git a/tests/mason-core/fetch_spec.lua b/tests/mason-core/fetch_spec.lua
index 107b6417..5a890318 100644
--- a/tests/mason-core/fetch_spec.lua
+++ b/tests/mason-core/fetch_spec.lua
@@ -6,118 +6,115 @@ local stub = require "luassert.stub"
local version = require "mason.version"
describe("fetch", function()
- it(
- "should exhaust all candidates",
- async_test(function()
- stub(spawn, "wget")
- stub(spawn, "curl")
- spawn.wget.returns(Result.failure "wget failure")
- spawn.curl.returns(Result.failure "curl failure")
+ local snapshot
- local result = fetch("https://api.github.com", {
- headers = { ["X-Custom-Header"] = "here" },
- })
- assert.is_true(result:is_failure())
- assert.spy(spawn.wget).was_called(1)
- assert.spy(spawn.curl).was_called(1)
- assert.spy(spawn.wget).was_called_with {
- {
- ("--header=User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(
- version.VERSION
- ),
- "--header=X-Custom-Header: here",
- },
- "-nv",
- "-o",
- "/dev/null",
- "-O",
- "-",
- "--timeout=30",
- "--method=GET",
- vim.NIL, -- body-data
- "https://api.github.com",
- }
+ before_each(function()
+ snapshot = assert.snapshot()
+ end)
- assert.spy(spawn.curl).was_called_with(match.tbl_containing {
- match.same {
- {
- "-H",
- ("User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(
- version.VERSION
- ),
- },
- {
- "-H",
- "X-Custom-Header: here",
- },
- },
- "-fsSL",
- match.same { "-X", "GET" },
- vim.NIL, -- data
- vim.NIL, -- out file
- match.same { "--connect-timeout", 30 },
- "https://api.github.com",
- on_spawn = match.is_function(),
- })
- end)
- )
+ after_each(function()
+ snapshot:revert()
+ end)
- it(
- "should return stdout",
- async_test(function()
- stub(spawn, "wget")
- spawn.wget.returns(Result.success {
- stdout = [[{"data": "here"}]],
- })
- local result = fetch "https://api.github.com/data"
- assert.is_true(result:is_success())
- assert.equals([[{"data": "here"}]], result:get_or_throw())
- end)
- )
+ it("should exhaust all candidates", function()
+ stub(spawn, "wget")
+ stub(spawn, "curl")
+ spawn.wget.returns(Result.failure "wget failure")
+ spawn.curl.returns(Result.failure "curl failure")
- it(
- "should respect out_file opt",
- async_test(function()
- stub(spawn, "wget")
- stub(spawn, "curl")
- spawn.wget.returns(Result.failure "wget failure")
- spawn.curl.returns(Result.failure "curl failure")
- fetch("https://api.github.com/data", { out_file = "/test.json" })
+ local result = fetch("https://api.github.com", {
+ headers = { ["X-Custom-Header"] = "here" },
+ })
+ assert.is_true(result:is_failure())
+ assert.spy(spawn.wget).was_called(1)
+ assert.spy(spawn.curl).was_called(1)
+ assert.spy(spawn.wget).was_called_with {
+ {
+ ("--header=User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(
+ version.VERSION
+ ),
+ "--header=X-Custom-Header: here",
+ },
+ "-nv",
+ "-o",
+ "/dev/null",
+ "-O",
+ "-",
+ "--timeout=30",
+ "--method=GET",
+ vim.NIL, -- body-data
+ "https://api.github.com",
+ }
- assert.spy(spawn.wget).was_called_with {
+ assert.spy(spawn.curl).was_called_with(match.tbl_containing {
+ match.same {
+ {
+ "-H",
+ ("User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(version.VERSION),
+ },
{
- ("--header=User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(
- version.VERSION
- ),
+ "-H",
+ "X-Custom-Header: here",
},
- "-nv",
- "-o",
- "/dev/null",
- "-O",
- "/test.json",
- "--timeout=30",
- "--method=GET",
- vim.NIL, -- body-data
- "https://api.github.com/data",
- }
+ },
+ "-fsSL",
+ match.same { "-X", "GET" },
+ vim.NIL, -- data
+ vim.NIL, -- out file
+ match.same { "--connect-timeout", 30 },
+ "https://api.github.com",
+ on_spawn = match.is_function(),
+ })
+ end)
- assert.spy(spawn.curl).was_called_with(match.tbl_containing {
- match.same {
- {
- "-H",
- ("User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(
- version.VERSION
- ),
- },
+ it("should return stdout", function()
+ stub(spawn, "curl")
+ spawn.curl.returns(Result.success {
+ stdout = [[{"data": "here"}]],
+ })
+ local result = fetch "https://api.github.com/data"
+ assert.is_true(result:is_success())
+ assert.equals([[{"data": "here"}]], result:get_or_throw())
+ end)
+
+ it("should respect out_file opt", function()
+ stub(spawn, "wget")
+ stub(spawn, "curl")
+ spawn.wget.returns(Result.failure "wget failure")
+ spawn.curl.returns(Result.failure "curl failure")
+ fetch("https://api.github.com/data", { out_file = "/test.json" })
+
+ assert.spy(spawn.wget).was_called_with {
+ {
+ ("--header=User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(
+ version.VERSION
+ ),
+ },
+ "-nv",
+ "-o",
+ "/dev/null",
+ "-O",
+ "/test.json",
+ "--timeout=30",
+ "--method=GET",
+ vim.NIL, -- body-data
+ "https://api.github.com/data",
+ }
+
+ assert.spy(spawn.curl).was_called_with(match.tbl_containing {
+ match.same {
+ {
+ "-H",
+ ("User-Agent: mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(version.VERSION),
},
- "-fsSL",
- match.same { "-X", "GET" },
- vim.NIL, -- data
- match.same { "-o", "/test.json" },
- match.same { "--connect-timeout", 30 },
- "https://api.github.com/data",
- on_spawn = match.is_function(),
- })
- end)
- )
+ },
+ "-fsSL",
+ match.same { "-X", "GET" },
+ vim.NIL, -- data
+ match.same { "-o", "/test.json" },
+ match.same { "--connect-timeout", 30 },
+ "https://api.github.com/data",
+ on_spawn = match.is_function(),
+ })
+ end)
end)