[MM-30981] Require Plugin name in manifest (#16438)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
fc60a1e8dd
Коммит
11248831b8
@@ -147,7 +147,7 @@ type Manifest struct {
|
||||
Id string `json:"id" yaml:"id"`
|
||||
|
||||
// The name to be displayed for the plugin.
|
||||
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
||||
Name string `json:"name" yaml:"name"`
|
||||
|
||||
// A description of what your plugin is and does.
|
||||
Description string `json:"description,omitempty" yaml:"description,omitempty"`
|
||||
@@ -329,6 +329,10 @@ func (m *Manifest) IsValid() error {
|
||||
return errors.New("invalid plugin ID")
|
||||
}
|
||||
|
||||
if strings.TrimSpace(m.Name) == "" {
|
||||
return errors.New("a plugin name is needed")
|
||||
}
|
||||
|
||||
if m.HomepageURL != "" && !IsValidHttpUrl(m.HomepageURL) {
|
||||
return errors.New("invalid HomepageURL")
|
||||
}
|
||||
|
||||
@@ -23,16 +23,17 @@ func TestIsValid(t *testing.T) {
|
||||
manifest *Manifest
|
||||
ExpectError bool
|
||||
}{
|
||||
{"Invalid Id", &Manifest{Id: "some id"}, true},
|
||||
{"Invalid homePageURL", &Manifest{Id: "com.company.test", HomepageURL: "some url"}, true},
|
||||
{"Invalid supportURL", &Manifest{Id: "com.company.test", SupportURL: "some url"}, true},
|
||||
{"Invalid ReleaseNotesURL", &Manifest{Id: "com.company.test", ReleaseNotesURL: "some url"}, true},
|
||||
{"Invalid version", &Manifest{Id: "com.company.test", HomepageURL: "http://someurl.com", SupportURL: "http://someotherurl.com", Version: "version"}, true},
|
||||
{"Invalid min version", &Manifest{Id: "com.company.test", HomepageURL: "http://someurl.com", SupportURL: "http://someotherurl.com", Version: "5.10.0", MinServerVersion: "version"}, true},
|
||||
{"SettingSchema error", &Manifest{Id: "com.company.test", HomepageURL: "http://someurl.com", SupportURL: "http://someotherurl.com", Version: "5.10.0", MinServerVersion: "5.10.8", SettingsSchema: &PluginSettingsSchema{
|
||||
{"Invalid Id", &Manifest{Id: "some id", Name: "some name"}, true},
|
||||
{"Invalid Name", &Manifest{Id: "com.company.test", Name: " "}, true},
|
||||
{"Invalid homePageURL", &Manifest{Id: "com.company.test", Name: "some name", HomepageURL: "some url"}, true},
|
||||
{"Invalid supportURL", &Manifest{Id: "com.company.test", Name: "some name", SupportURL: "some url"}, true},
|
||||
{"Invalid ReleaseNotesURL", &Manifest{Id: "com.company.test", Name: "some name", ReleaseNotesURL: "some url"}, true},
|
||||
{"Invalid version", &Manifest{Id: "com.company.test", Name: "some name", HomepageURL: "http://someurl.com", SupportURL: "http://someotherurl.com", Version: "version"}, true},
|
||||
{"Invalid min version", &Manifest{Id: "com.company.test", Name: "some name", HomepageURL: "http://someurl.com", SupportURL: "http://someotherurl.com", Version: "5.10.0", MinServerVersion: "version"}, true},
|
||||
{"SettingSchema error", &Manifest{Id: "com.company.test", Name: "some name", HomepageURL: "http://someurl.com", SupportURL: "http://someotherurl.com", Version: "5.10.0", MinServerVersion: "5.10.8", SettingsSchema: &PluginSettingsSchema{
|
||||
Settings: []*PluginSetting{{Type: "Invalid"}},
|
||||
}}, true},
|
||||
{"Minimal valid manifest", &Manifest{Id: "com.company.test"}, false},
|
||||
{"Minimal valid manifest", &Manifest{Id: "com.company.test", Name: "some name"}, false},
|
||||
{"Happy case", &Manifest{
|
||||
Id: "com.company.test",
|
||||
Name: "thename",
|
||||
|
||||
Ссылка в новой задаче
Block a user