diff options
| author | William Boman <william@redwill.se> | 2022-10-30 17:43:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-30 17:43:46 +0100 |
| commit | 37c745fa73b983c86904132efb30ef2a4a76df5e (patch) | |
| tree | c55fe52b7c5c20ed4fdbb3ee073519fd0ccbe6b2 /tests/mason-core | |
| parent | chore: update generated code (#608) (diff) | |
| download | mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.gz mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.bz2 mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.lz mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.xz mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.zst mason-37c745fa73b983c86904132efb30ef2a4a76df5e.zip | |
feat: add provider interface (#601)
Diffstat (limited to 'tests/mason-core')
| -rw-r--r-- | tests/mason-core/functional/function_spec.lua | 7 | ||||
| -rw-r--r-- | tests/mason-core/functional/list_spec.lua | 8 | ||||
| -rw-r--r-- | tests/mason-core/functional/string_spec.lua | 5 | ||||
| -rw-r--r-- | tests/mason-core/managers/pip3_spec.lua | 30 | ||||
| -rw-r--r-- | tests/mason-core/providers/provider_spec.lua | 61 |
5 files changed, 98 insertions, 13 deletions
diff --git a/tests/mason-core/functional/function_spec.lua b/tests/mason-core/functional/function_spec.lua index 4da41d40..28abce20 100644 --- a/tests/mason-core/functional/function_spec.lua +++ b/tests/mason-core/functional/function_spec.lua @@ -139,4 +139,11 @@ describe("functional: function", function() assert.is_true(_.T()) assert.is_false(_.F()) end) + + it("should tap values", function() + local fn = spy.new() + assert.equals(42, _.tap(fn, 42)) + assert.spy(fn).was_called() + assert.spy(fn).was_called_with(42) + end) end) diff --git a/tests/mason-core/functional/list_spec.lua b/tests/mason-core/functional/list_spec.lua index add9076e..bbc60763 100644 --- a/tests/mason-core/functional/list_spec.lua +++ b/tests/mason-core/functional/list_spec.lua @@ -203,4 +203,12 @@ describe("functional: list", function() { "person", "camera" }, }, _.partition(_.matches "%u", words)) end) + + it("should return head", function() + assert.equals("Head", _.head { "Head", "Tail", "Tail" }) + end) + + it("should return last", function() + assert.equals("Last", _.last { "Head", "List", "Last" }) + end) end) diff --git a/tests/mason-core/functional/string_spec.lua b/tests/mason-core/functional/string_spec.lua index 25409f64..6fb99c45 100644 --- a/tests/mason-core/functional/string_spec.lua +++ b/tests/mason-core/functional/string_spec.lua @@ -10,6 +10,11 @@ describe("functional: string", function() assert.is_false(_.matches("bar", "foobaz")) end) + it("returns string pattern matches", function() + assert.same({ "foo" }, _.match("foo", "foo")) + assert.same({ "foo", "bar", "baz" }, _.match("(foo) (bar) (baz)", "foo bar baz")) + end) + it("should format strings", function() assert.equals("Hello World!", _.format("%s", "Hello World!")) assert.equals("special manouvers", _.format("%s manouvers", "special")) diff --git a/tests/mason-core/managers/pip3_spec.lua b/tests/mason-core/managers/pip3_spec.lua index 6f78cdb4..1ec2dc28 100644 --- a/tests/mason-core/managers/pip3_spec.lua +++ b/tests/mason-core/managers/pip3_spec.lua @@ -1,5 +1,6 @@ local mock = require "luassert.mock" local spy = require "luassert.spy" +local stub = require "luassert.stub" local path = require "mason-core.path" local a = require "mason-core.async" @@ -8,6 +9,7 @@ local installer = require "mason-core.installer" local Result = require "mason-core.result" local settings = require "mason.settings" local spawn = require "mason-core.spawn" +local api = require "mason-registry.api" describe("pip3 manager", function() it("normalizes pip3 packages", function() @@ -192,11 +194,16 @@ describe("pip3 version check", function() it( "should return outdated primary package", async_test(function() + stub(api, "get") + api.get.on_call_with("/api/pypi/python-lsp-server/versions/latest").returns(Result.success { + name = "python-lsp-server", + version = "1.4.0", + }) spawn.python = spy.new(function() return Result.success { stdout = [[ -[{"name": "astroid", "version": "2.9.3", "latest_version": "2.11.0", "latest_filetype": "wheel"}, {"name": "mccabe", "version": "0.6.1", "latest_version": "0.7.0", "latest_filetype": "wheel"}, {"name": "python-lsp-server", "version": "1.3.0", "latest_version": "1.4.0", "latest_filetype": "wheel"}, {"name": "wrapt", "version": "1.13.3", "latest_version": "1.14.0", "latest_filetype": "wheel"}] - ]], + [{"name": "astroid", "version": "2.9.3"}, {"name": "mccabe", "version": "0.6.1"}, {"name": "python-lsp-server", "version": "1.3.0", "latest_version": "1.4.0", "latest_filetype": "wheel"}, {"name": "wrapt", "version": "1.13.3", "latest_version": "1.14.0", "latest_filetype": "wheel"}] + ]], } end) @@ -210,16 +217,6 @@ describe("pip3 version check", function() path.package_prefix "dummy" ) - assert.spy(spawn.python).was_called(1) - assert.spy(spawn.python).was_called_with { - "-m", - "pip", - "list", - "--outdated", - "--format=json", - cwd = path.package_prefix "dummy", - with_paths = { path.concat { path.package_prefix "dummy", "venv", "bin" } }, - } assert.is_true(result:is_success()) assert.same({ name = "python-lsp-server", @@ -236,9 +233,16 @@ describe("pip3 version check", function() async_test(function() spawn.python = spy.new(function() return Result.success { - stdout = "[]", + stdout = [[ + [{"name": "astroid", "version": "2.9.3"}, {"name": "mccabe", "version": "0.6.1"}, {"name": "python-lsp-server", "version": "1.3.0", "latest_version": "1.4.0", "latest_filetype": "wheel"}, {"name": "wrapt", "version": "1.13.3", "latest_version": "1.14.0", "latest_filetype": "wheel"}] + ]], } end) + stub(api, "get") + api.get.on_call_with("/api/pypi/python-lsp-server/versions/latest").returns(Result.success { + name = "python-lsp-server", + version = "1.3.0", + }) local result = pip3.check_outdated_primary_package( mock.new { diff --git a/tests/mason-core/providers/provider_spec.lua b/tests/mason-core/providers/provider_spec.lua new file mode 100644 index 00000000..ba2d8f1f --- /dev/null +++ b/tests/mason-core/providers/provider_spec.lua @@ -0,0 +1,61 @@ +local spy = require "luassert.spy" +local Result = require "mason-core.result" + +describe("providers", function() + ---@module "mason-core.providers" + local provider + ---@module "mason.settings" + local settings + + before_each(function() + package.loaded["mason-core.providers"] = nil + package.loaded["mason.settings"] = nil + provider = require "mason-core.providers" + settings = require "mason.settings" + end) + + it("should run provided providers", function() + package.loaded["failing-provider"] = { + github = { + get_all_release_versions = spy.new(function() + return Result.failure "Failed." + end), + }, + } + package.loaded["really-failing-provider"] = { + github = { + get_all_release_versions = spy.new(function() + error "Failed." + end), + }, + } + package.loaded["successful-provider"] = { + github = { + get_all_release_versions = spy.new(function() + return Result.success { "1.0.0", "2.0.0" } + end), + }, + } + + settings.set { + providers = { "failing-provider", "really-failing-provider", "successful-provider" }, + } + + assert.same( + Result.success { "1.0.0", "2.0.0" }, + provider.github.get_all_release_versions "sumneko/lua-language-server" + ) + assert.spy(package.loaded["failing-provider"].github.get_all_release_versions).was_called() + assert + .spy(package.loaded["failing-provider"].github.get_all_release_versions) + .was_called_with "sumneko/lua-language-server" + assert.spy(package.loaded["really-failing-provider"].github.get_all_release_versions).was_called() + assert + .spy(package.loaded["really-failing-provider"].github.get_all_release_versions) + .was_called_with "sumneko/lua-language-server" + assert.spy(package.loaded["successful-provider"].github.get_all_release_versions).was_called() + assert + .spy(package.loaded["successful-provider"].github.get_all_release_versions) + .was_called_with "sumneko/lua-language-server" + end) +end) |
