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/providers/provider_spec.lua | |
| 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/providers/provider_spec.lua')
| -rw-r--r-- | tests/mason-core/providers/provider_spec.lua | 61 |
1 files changed, 61 insertions, 0 deletions
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) |
