From 05795741895ee16062eabeb0d89bff7cbcd693fa Mon Sep 17 00:00:00 2001 From: William Boman Date: Fri, 21 Jul 2023 18:13:49 +0200 Subject: fix(installer): retain unmapped source fields (#1399) Fixes #1398. --- .../installer/registry/installer_spec.lua | 22 ++++++++++++++++++++++ .../registry/providers/github/release_spec.lua | 12 ++++++++++++ 2 files changed, 34 insertions(+) (limited to 'tests') diff --git a/tests/mason-core/installer/registry/installer_spec.lua b/tests/mason-core/installer/registry/installer_spec.lua index 6ac25da9..51d9035e 100644 --- a/tests/mason-core/installer/registry/installer_spec.lua +++ b/tests/mason-core/installer/registry/installer_spec.lua @@ -56,11 +56,32 @@ describe("registry installer :: parsing", function() version = "v1.2.3", }, parsed.purl) assert.same({ + id = "pkg:dummy/package-name@v1.2.3", package = "package-name", extra_info = "here", }, parsed.source) end) + it("should keep unmapped fields", function() + installer.register_provider("dummy", dummy_provider) + + local result = installer.parse({ + schema = "registry+v1", + source = { + id = "pkg:dummy/package-name@v1.2.3", + bin = "node:server.js", + }, + }, {}) + local parsed = result:get_or_nil() + + assert.is_true(result:is_success()) + assert.same({ + id = "pkg:dummy/package-name@v1.2.3", + package = "package-name", + bin = "node:server.js", + }, parsed.source) + end) + it("should reject incompatible schema versions", function() installer.register_provider("dummy", dummy_provider) @@ -277,6 +298,7 @@ describe("registry installer :: compiling", function() name = "package-name", version = "v1.2.3", }, { + id = "pkg:dummy/package-name@v1.2.3", package = "package-name", }) end diff --git a/tests/mason-core/installer/registry/providers/github/release_spec.lua b/tests/mason-core/installer/registry/providers/github/release_spec.lua index 47ac47c8..909eb36f 100644 --- a/tests/mason-core/installer/registry/providers/github/release_spec.lua +++ b/tests/mason-core/installer/registry/providers/github/release_spec.lua @@ -225,6 +225,7 @@ describe("github provider :: release :: parsing", function() assert.is_true(result:is_success()) assert.same({ + id = "pkg:github/owner/repo@1.2.3", asset = { target = "darwin_x64", file = "old-asset.tar.gz", @@ -235,6 +236,17 @@ describe("github provider :: release :: parsing", function() out_file = "old-asset.tar.gz", }, }, + version_overrides = { + { + constraint = "semver:<=1.0.0", + asset = { + { + target = "darwin_x64", + file = "old-asset.tar.gz", + }, + }, + }, + }, repo = "owner/repo", }, parsed.source) end) -- cgit v1.2.3-70-g09d2