fix: apply managed Nginx public entry without service restart
This commit is contained in:
1 parent
36d653b32b
commit
e4f1059880
11 files changed
+338
-33
No files matched your search
@@ -0,0 +1,42 @@
|
||||
package nginxgateway
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSwapManagedSiteRestoresPreviousOnFailure(t *testing.T) {
|
||||
for _, failAt := range []string{"validate", "reload", "persist"} {
|
||||
t.Run(failAt, func(t *testing.T) {
|
||||
site := "old"
|
||||
validations, reloads := 0, 0
|
||||
write := func(content string) error { site = content; return nil }
|
||||
validate := func() error {
|
||||
validations++
|
||||
if failAt == "validate" && site == "new" {
|
||||
return errors.New("invalid nginx config")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
reload := func() error {
|
||||
reloads++
|
||||
if failAt == "reload" && site == "new" {
|
||||
return errors.New("reload failed")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
persist := func() error {
|
||||
if failAt == "persist" {
|
||||
return errors.New("save failed")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
if err := swapManagedSite("old", "new", persist, write, validate, reload); err == nil {
|
||||
t.Fatal("expected failure")
|
||||
}
|
||||
if site != "old" || validations < 2 || reloads < 1 {
|
||||
t.Fatalf("old site not restored: site=%s validations=%d reloads=%d", site, validations, reloads)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user