diff options
author | eleith <eleith@users.noreply.github.com> | 2022-10-07 22:24:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-08 13:24:44 +0800 |
commit | bbbf9a4b938a3616e08a854c4b2639863fc54013 (patch) | |
tree | 93732db222a3dba0bce1761a4ba3057bf7b9edd9 /tests | |
parent | 6c53cf852f1b00fbcd5f641ebf4885f78cf1160c (diff) | |
download | gitea-bbbf9a4b938a3616e08a854c4b2639863fc54013.tar.gz gitea-bbbf9a4b938a3616e08a854c4b2639863fc54013.zip |
npm package registry support for `bin` (#21372)
Fix #21303
npm package.json supports binary packaging:
https://docs.npmjs.com/cli/v8/configuring-npm/package-json#bin
the npm registry documents that the binary references will be attached
to the abbreviated version object:
https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md#abbreviated-version-object
unfortunately their api documentation leaves this out:
https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md#abbreviated-version-objectdoc
which is likely to be the reason this was left out in gitea's initial
implementation
this response is critical for npm to install the binary in the `.bin`
folder so as to be included on the users default bin path, resulting in
immediate access to any binaries provided by the package
Diffstat (limited to 'tests')
-rw-r--r-- | tests/integration/api_packages_npm_test.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/integration/api_packages_npm_test.go b/tests/integration/api_packages_npm_test.go index 14ed681be3..4fdcf6682e 100644 --- a/tests/integration/api_packages_npm_test.go +++ b/tests/integration/api_packages_npm_test.go @@ -35,6 +35,8 @@ func TestPackageNpm(t *testing.T) { packageTag2 := "release" packageAuthor := "KN4CK3R" packageDescription := "Test Description" + packageBinName := "cli" + packageBinPath := "./cli.sh" data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA" @@ -54,6 +56,9 @@ func TestPackageNpm(t *testing.T) { "author": { "name": "` + packageAuthor + `" }, + "bin": { + "` + packageBinName + `": "` + packageBinPath + `" + }, "dist": { "integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==", "shasum": "aaa7eaf852a948b0aa05afeda35b1badca155d90" @@ -154,6 +159,7 @@ func TestPackageNpm(t *testing.T) { assert.Equal(t, packageName, pmv.Name) assert.Equal(t, packageDescription, pmv.Description) assert.Equal(t, packageAuthor, pmv.Author.Name) + assert.Equal(t, packageBinPath, pmv.Bin[packageBinName]) assert.Equal(t, "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==", pmv.Dist.Integrity) assert.Equal(t, "aaa7eaf852a948b0aa05afeda35b1badca155d90", pmv.Dist.Shasum) assert.Equal(t, fmt.Sprintf("%s%s/-/%s/%s", setting.AppURL, root[1:], packageVersion, filename), pmv.Dist.Tarball) |