package lkgateway import ( "os" "path/filepath" "testing" ) // Автоматический режим M2M — по умолчанию: где режим не выбирали, он включается и запоминается; // явный выбор «Оператор» остаётся. func TestM2MAutoDefaultOn(t *testing.T) { dir := t.TempDir() fresh := filepath.Join(dir, "fresh.json") _ = os.WriteFile(fresh, []byte(`{"nsd":{"profile":"test3-gost"}}`), 0o600) rc, err := NewRuntimeConfig(fresh) if err != nil { t.Fatal(err) } a := rc.Snapshot().M2MAuto if !a.Enabled || a.ChangedAt.IsZero() || a.ChangedBy != "по умолчанию" { t.Fatalf("не включён по умолчанию: %+v", a) } rc2, _ := NewRuntimeConfig(fresh) // записано: при следующем запуске момент включения тот же if !rc2.Snapshot().M2MAuto.ChangedAt.Equal(a.ChangedAt) { t.Fatal("момент включения не сохранился") } manual := filepath.Join(dir, "manual.json") _ = os.WriteFile(manual, []byte(`{"m2m_auto":{"enabled":false,"changed_at":"2026-10-01T10:00:00Z","changed_by":"admin"}}`), 0o600) rc3, _ := NewRuntimeConfig(manual) if rc3.Snapshot().M2MAuto.Enabled { t.Fatal("явный выбор «Оператор» перезаписан") } }