Skip to content

Commit

Permalink
Support additional plugin manifests (#1067)
Browse files Browse the repository at this point in the history
* Add test

* Merge plugin manifests

* Remove prints

* Refactor

* Remove another print

* Refactor loop

* Fix typo, update error message

* Refactor

* refactor

* Remove extra file

* Sort releases by version desc

* Sort releases correctly

* Fix lint
  • Loading branch information
vcheung-stripe committed May 3, 2023
1 parent fdf8276 commit b1cfe3a
Show file tree
Hide file tree
Showing 11 changed files with 909 additions and 24 deletions.
12 changes: 6 additions & 6 deletions pkg/plugins/plugin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func TestInstall(t *testing.T) {
config := &TestConfig{}
config.InitConfig()
manifestContent, _ := os.ReadFile("./test_artifacts/plugins.toml")
testServers := setUpServers(t, manifestContent)
testServers := setUpServers(t, manifestContent, nil)

plugin, _ := LookUpPlugin(context.Background(), config, fs, "appA")
err := plugin.Install(context.Background(), config, fs, "2.0.1", testServers.StripeServer.URL)
Expand All @@ -42,7 +42,7 @@ func TestInstallFailsIfChecksumCouldNotBeFound(t *testing.T) {
config := &TestConfig{}
config.InitConfig()
manifestContent, _ := os.ReadFile("./test_artifacts/plugins.toml")
testServers := setUpServers(t, manifestContent)
testServers := setUpServers(t, manifestContent, nil)

plugin, _ := LookUpPlugin(context.Background(), config, fs, "appA")
err := plugin.Install(context.Background(), config, fs, "0.0.0", testServers.StripeServer.URL)
Expand All @@ -62,7 +62,7 @@ func TestInstallationFailsIfChecksumDoesNotMatch(t *testing.T) {
config := &TestConfig{}
config.InitConfig()
manifestContent, _ := os.ReadFile("./test_artifacts/plugins.toml")
testServers := setUpServers(t, manifestContent)
testServers := setUpServers(t, manifestContent, nil)

plugin, _ := LookUpPlugin(context.Background(), config, fs, "appB")
err := plugin.Install(context.Background(), config, fs, "1.2.1", testServers.StripeServer.URL)
Expand All @@ -82,7 +82,7 @@ func TestInstallCleansOtherVersionsOfPlugin(t *testing.T) {
config := &TestConfig{}
config.InitConfig()
manifestContent, _ := os.ReadFile("./test_artifacts/plugins.toml")
testServers := setUpServers(t, manifestContent)
testServers := setUpServers(t, manifestContent, nil)

// Download plugin version 0.0.1
plugin, _ := LookUpPlugin(context.Background(), config, fs, "appA")
Expand Down Expand Up @@ -111,7 +111,7 @@ func TestInstallDoesNotCleanIfInstallFails(t *testing.T) {
config := &TestConfig{}
config.InitConfig()
manifestContent, _ := os.ReadFile("./test_artifacts/plugins.toml")
testServers := setUpServers(t, manifestContent)
testServers := setUpServers(t, manifestContent, nil)

// Download valid plugin
plugin, _ := LookUpPlugin(context.Background(), config, fs, "appA")
Expand All @@ -138,7 +138,7 @@ func TestUninstall(t *testing.T) {
config := &TestConfig{}
config.InitConfig()
manifestContent, _ := os.ReadFile("./test_artifacts/plugins.toml")
testServers := setUpServers(t, manifestContent)
testServers := setUpServers(t, manifestContent, nil)

// install a plugin to be uninstalled
plugin, _ := LookUpPlugin(context.Background(), config, fs, "appA")
Expand Down
134 changes: 134 additions & 0 deletions pkg/plugins/test_artifacts/plugins-2-merged-foo-1.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
[[Plugin]]
Shortname = "appA"
Binary = "stripe-cli-app-a"
MagicCookieValue = "0337A75A-C3C4-4DCF-A9EF-E7A144E5A291"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin]]
Shortname = "appB"
Binary = "stripe-cli-app-b"
MagicCookieValue = "FDBE6FB9-A149-44BD-9639-4D33D8B594E8"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin]]
Shortname = "foo"
Binary = "stripe-cli-foo"
MagicCookieValue = "6C5CFD81-F43C-447B-BBCF-803FF31CD3D1"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "0.0.2"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "0.0.2"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"
126 changes: 126 additions & 0 deletions pkg/plugins/test_artifacts/plugins-2.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# This is a made up manifest file for unit test purposes.
# The checksums are the same for all OS versions of a single release for testing simplicity
# The checksums for appA were generated to match the response returned in the test servers (see ../test_utils.go)
# The checksums for appB do not match the actual contents returned from the test server.
[[Plugin]]
Shortname = "appA"
Binary = "stripe-cli-app-a"
MagicCookieValue = "0337A75A-C3C4-4DCF-A9EF-E7A144E5A291"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "1.0.1"
Sum = "3c909ec628b7d32536a65fd15545db527a7509e734995d4ef4806694fbd89c3a"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "2.0.1"
Sum = "3752e4e3a9f1b17f85b542b355893b8614ad8662a3fb8eba6ebed66d1f9e2a87"

[[Plugin]]
Shortname = "appB"
Binary = "stripe-cli-app-b"
MagicCookieValue = "FDBE6FB9-A149-44BD-9639-4D33D8B594E8"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin.Release]]
Arch = "amd64"
OS = "linux"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin.Release]]
Arch = "amd64"
OS = "windows"
Version = "1.2.1"
Sum = "2f05d4b689d270cafb02285f35f44866f7dc8a2d368a3f9d1124373eeab31fb1"

[[Plugin]]
Shortname = "foo"
Binary = "stripe-cli-foo"
MagicCookieValue = "6C5CFD81-F43C-447B-BBCF-803FF31CD3D1"

[[Plugin.Release]]
Arch = "amd64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"

[[Plugin.Release]]
Arch = "arm64"
OS = "darwin"
Version = "0.0.1"
Sum = "125653c37803a51a048f6687f7f66d511be614f675f199cd6c71928b74875238"
Loading

0 comments on commit b1cfe3a

Please sign in to comment.