mirror of
https://github.com/RuoJi6/ARTEX.git
synced 2026-10-27 17:03:49 +08:00
29 lines
752 B
Go
29 lines
752 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestSetSettingsAtomic(t *testing.T) {
|
|
d, err := Open(testDSN(t))
|
|
if err != nil {
|
|
t.Skipf("postgres unavailable (%v)", err)
|
|
}
|
|
defer d.Close()
|
|
prefix := fmt.Sprintf("test.atomic_settings.%d", time.Now().UnixNano())
|
|
defer func() { _, _ = d.Exec(`DELETE FROM settings WHERE key LIKE $1`, prefix+".%") }()
|
|
values := map[string]string{prefix + ".worker_pools": "[]", prefix + ".workers": "3"}
|
|
if err := d.SetSettingsAtomic(context.Background(), values); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for key, want := range values {
|
|
got, ok, err := d.GetSetting(key)
|
|
if err != nil || !ok || got != want {
|
|
t.Fatalf("key %q: value=%q ok=%v err=%v, want %q", key, got, ok, err, want)
|
|
}
|
|
}
|
|
}
|