Ignore empty fields, change method name (#13773)

Этот коммит содержится в:
Shobhit Gupta
2020-01-31 05:17:26 -08:00
коммит произвёл GitHub
родитель d66a2f90c6
Коммит 2732a0c966
2 изменённых файлов: 19 добавлений и 15 удалений

Просмотреть файл

@@ -325,39 +325,43 @@ func (m *Manifest) IsValid() error {
return errors.New("invalid plugin ID") return errors.New("invalid plugin ID")
} }
if m.HomepageURL == "" || !IsValidHttpUrl(m.HomepageURL) { if m.HomepageURL != "" && !IsValidHttpUrl(m.HomepageURL) {
return errors.New("invalid HomepageURL") return errors.New("invalid HomepageURL")
} }
if m.SupportURL == "" || !IsValidHttpUrl(m.SupportURL) { if m.SupportURL != "" && !IsValidHttpUrl(m.SupportURL) {
return errors.New("invalid SupportURL") return errors.New("invalid SupportURL")
} }
if m.ReleaseNotesURL != "" && !IsValidHttpUrl(m.ReleaseNotesURL) { if m.ReleaseNotesURL != "" && !IsValidHttpUrl(m.ReleaseNotesURL) {
return errors.New("invalid SupportURL") return errors.New("invalid ReleaseNotesURL")
} }
_, err := semver.Parse(m.Version) if m.Version != "" {
if err != nil { _, err := semver.Parse(m.Version)
return errors.Wrap(err, "failed to parse Version") if err != nil {
return errors.Wrap(err, "failed to parse Version")
}
} }
_, err2 := semver.Parse(m.MinServerVersion) if m.MinServerVersion != "" {
if err2 != nil { _, err := semver.Parse(m.MinServerVersion)
return errors.Wrap(err2, "failed to parse MinServerVersion") if err != nil {
return errors.Wrap(err, "failed to parse MinServerVersion")
}
} }
if m.SettingsSchema != nil { if m.SettingsSchema != nil {
err3 := m.SettingsSchema.isValidSchema() err := m.SettingsSchema.isValid()
if err3 != nil { if err != nil {
return errors.Wrap(err3, "invalid settings schema") return errors.Wrap(err, "invalid settings schema")
} }
} }
return nil return nil
} }
func (s *PluginSettingsSchema) isValidSchema() error { func (s *PluginSettingsSchema) isValid() error {
for _, setting := range s.Settings { for _, setting := range s.Settings {
err := setting.isValid() err := setting.isValid()
if err != nil { if err != nil {

Просмотреть файл

@@ -32,6 +32,7 @@ func TestIsValid(t *testing.T) {
{"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{ {"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{
Settings: []*PluginSetting{{Type: "Invalid"}}, Settings: []*PluginSetting{{Type: "Invalid"}},
}}, true}, }}, true},
{"Minimal valid manifest", &Manifest{Id: "com.company.test"}, false},
{"Happy case", &Manifest{ {"Happy case", &Manifest{
Id: "com.company.test", Id: "com.company.test",
Name: "thename", Name: "thename",
@@ -46,7 +47,6 @@ func TestIsValid(t *testing.T) {
}, },
Webapp: &ManifestWebapp{ Webapp: &ManifestWebapp{
BundlePath: "thebundlepath", BundlePath: "thebundlepath",
BundleHash: []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
}, },
SettingsSchema: &PluginSettingsSchema{ SettingsSchema: &PluginSettingsSchema{
Header: "theheadertext", Header: "theheadertext",
@@ -94,7 +94,7 @@ func TestIsValidSettingsSchema(t *testing.T) {
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.Title, func(t *testing.T) { t.Run(tc.Title, func(t *testing.T) {
err := tc.settingsSchema.isValidSchema() err := tc.settingsSchema.isValid()
if tc.ExpectError { if tc.ExpectError {
assert.Error(t, err) assert.Error(t, err)
} else { } else {