Ignore empty fields, change method name (#13773)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
d66a2f90c6
Коммит
2732a0c966
@@ -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 {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user