[agent/codex:gpt-5.3-codex-spark] Read ~/spec/code/core/go/i18n/RFC.md fully. Find ONE feature... #29

Merged
Virgil merged 1 commit from agent/read---spec-code-core-go-i18n-rfc-md-ful into dev 2026-04-01 08:17:44 +00:00
2 changed files with 45 additions and 1 deletions

View file

@ -1,6 +1,7 @@
package i18n
import (
"sync"
"testing"
"testing/fstest"
@ -72,6 +73,43 @@ func TestRegisterLocales_Good_AfterLocalesLoaded(t *testing.T) {
assert.Equal(t, "arrived late", got)
}
func TestInit_LoadsRegisteredLocales(t *testing.T) {
// Save and restore global service state.
registeredLocalesMu.Lock()
savedLocales := registeredLocales
savedLoaded := localesLoaded
registeredLocales = nil
localesLoaded = false
registeredLocalesMu.Unlock()
defaultOnce = sync.Once{}
defaultService.Store(nil)
defer func() {
registeredLocalesMu.Lock()
registeredLocales = savedLocales
localesLoaded = savedLoaded
registeredLocalesMu.Unlock()
defaultService.Store(nil)
defaultOnce = sync.Once{}
}()
fs := fstest.MapFS{
"locales/en.json": &fstest.MapFile{
Data: []byte(`{"init.registered": "loaded on init"}`),
},
}
RegisterLocales(fs, "locales")
require.NoError(t, Init())
svc := Default()
require.NotNil(t, svc)
got := svc.T("init.registered")
assert.Equal(t, "loaded on init", got)
}
func TestLoadRegisteredLocales_Good(t *testing.T) {
svc, err := New()
require.NoError(t, err)

View file

@ -136,9 +136,15 @@ func Init() error {
}
svc, err := New()
if err == nil {
// Register and load any locales queued before initialisation.
loadRegisteredLocales(svc)
// CAS prevents overwriting a concurrent SetDefault call that
// raced between the Load check above and this store.
defaultService.CompareAndSwap(nil, svc)
if !defaultService.CompareAndSwap(nil, svc) {
// If a concurrent caller already installed a service, load
// registered locales into that active default service instead.
loadRegisteredLocales(defaultService.Load())
}
}
defaultErr = err
})