This commit is contained in:
parent
ffa7378480
commit
00a87948c2
@ -252,6 +252,7 @@ func SetDatabaseSettingsWithOptions(ctx *context.Context, settings DatabaseSetti
|
||||
|
||||
previousConfig := *configData
|
||||
candidateConfig := *configData
|
||||
markSetupInProgress(&candidateConfig)
|
||||
candidateConfig.DbType = dbType
|
||||
candidateConfig.DbDSN = dbDSN
|
||||
if err = config.WriteConfig(&candidateConfig); err != nil {
|
||||
@ -269,6 +270,16 @@ func SetDatabaseSettingsWithOptions(ctx *context.Context, settings DatabaseSetti
|
||||
return nil
|
||||
}
|
||||
|
||||
func markSetupInProgress(cfg *config.Config) {
|
||||
if cfg == nil {
|
||||
return
|
||||
}
|
||||
cfg.IsInit = false
|
||||
if !cfg.SetupState.Valid() {
|
||||
cfg.SetupState = config.SetupStateBootstrap
|
||||
}
|
||||
}
|
||||
|
||||
func closeDatabaseInstance() {
|
||||
if db.Instance == nil {
|
||||
return
|
||||
|
||||
@ -10,10 +10,37 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.pcux.cn/xuans/Smail/config"
|
||||
"github.com/go-sql-driver/mysql"
|
||||
"github.com/lib/pq"
|
||||
)
|
||||
|
||||
func TestMarkSetupInProgressClearsLegacyInitializationFlag(t *testing.T) {
|
||||
cfg := &config.Config{IsInit: true}
|
||||
|
||||
markSetupInProgress(cfg)
|
||||
|
||||
if cfg.IsInit {
|
||||
t.Fatal("legacy initialization flag must be cleared during setup")
|
||||
}
|
||||
if cfg.SetupState != config.SetupStateBootstrap {
|
||||
t.Fatalf("setup state = %q, want %q", cfg.SetupState, config.SetupStateBootstrap)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMarkSetupInProgressPreservesExplicitSetupState(t *testing.T) {
|
||||
cfg := &config.Config{IsInit: true, SetupState: config.SetupStateNew}
|
||||
|
||||
markSetupInProgress(cfg)
|
||||
|
||||
if cfg.IsInit {
|
||||
t.Fatal("legacy initialization flag must be cleared during setup")
|
||||
}
|
||||
if cfg.SetupState != config.SetupStateNew {
|
||||
t.Fatalf("setup state = %q, want %q", cfg.SetupState, config.SetupStateNew)
|
||||
}
|
||||
}
|
||||
|
||||
type fakeSetupDB struct {
|
||||
pingErrors []error
|
||||
pingCalls int
|
||||
|
||||
@ -21,6 +21,7 @@ func SetDomainSettings(smtpDomain, webDomain, multiDomains string) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
markSetupInProgress(configData)
|
||||
|
||||
smtpDomain, err = validation.NormalizeDomain(smtpDomain)
|
||||
if err != nil {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user