package filesafety import ( "testing" "github.com/tinode/chat/server/store" "github.com/tinode/chat/server/store/types" ) type fakeThirdPartyConfig map[string]string func (f fakeThirdPartyConfig) Get(group string, keys ...string) (map[string]string, error) { result := map[string]string{} for _, key := range keys { if value, ok := f[key]; ok { result[key] = value } } return result, nil } func TestLoadConfig(t *testing.T) { original := store.ThirdPartyConfig store.ThirdPartyConfig = fakeThirdPartyConfig{ "file_review_content_enabled": "1", "file_review_content_provider": types.FileReviewProviderAliyunGreen, "aliyun_green_region_id": "cn-shanghai", "aliyun_green_endpoint": "green-cip.cn-shanghai.aliyuncs.com", "aliyun_green_document_service": "document_detection", "file_review_malware_enabled": "true", "file_review_malware_provider": types.FileReviewProviderAliyunSAS, "aliyun_sas_region_id": "cn-shanghai", "aliyun_access_key_id": "ak", "aliyun_access_key_secret": "sk", } defer func() { store.ThirdPartyConfig = original }() config, err := LoadConfig() if err != nil { t.Fatalf("LoadConfig failed: %v", err) } if !config.Content.Enabled || config.Content.Provider != types.FileReviewProviderAliyunGreen { t.Fatalf("unexpected content config: %+v", config.Content) } if !config.Malware.Enabled || config.Malware.Provider != types.FileReviewProviderAliyunSAS { t.Fatalf("unexpected malware config: %+v", config.Malware) } if config.Content.Green.AccessKeyID != "ak" || config.Content.Green.RegionID != "cn-shanghai" { t.Fatalf("unexpected green config: %+v", config.Content.Green) } }