Files
Charon/backend/internal/models/dns_provider_test.go
GitHub Actions 9a05e2f927 feat: add DNS provider management features
- Implement DNSProviderCard component for displaying individual DNS provider details.
- Create DNSProviderForm component for adding and editing DNS providers.
- Add DNSProviderSelector component for selecting DNS providers in forms.
- Introduce useDNSProviders hook for fetching and managing DNS provider data.
- Add DNSProviders page for listing and managing DNS providers.
- Update layout to include DNS Providers navigation.
- Enhance UI components with new badge styles and improved layouts.
- Add default provider schemas for various DNS providers.
- Integrate translation strings for DNS provider management.
- Update Vite configuration for improved chunking and performance.
2026-01-02 00:52:37 +00:00

59 lines
1.7 KiB
Go

package models
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
)
func TestDNSProvider_TableName(t *testing.T) {
provider := DNSProvider{}
assert.Equal(t, "dns_providers", provider.TableName())
}
func TestDNSProvider_Fields(t *testing.T) {
provider := DNSProvider{
UUID: "test-uuid",
Name: "Test Provider",
ProviderType: "cloudflare",
Enabled: true,
IsDefault: false,
PropagationTimeout: 120,
PollingInterval: 5,
SuccessCount: 0,
FailureCount: 0,
}
assert.Equal(t, "test-uuid", provider.UUID)
assert.Equal(t, "Test Provider", provider.Name)
assert.Equal(t, "cloudflare", provider.ProviderType)
assert.True(t, provider.Enabled)
assert.False(t, provider.IsDefault)
assert.Equal(t, 120, provider.PropagationTimeout)
assert.Equal(t, 5, provider.PollingInterval)
assert.Equal(t, 0, provider.SuccessCount)
assert.Equal(t, 0, provider.FailureCount)
}
func TestDNSProvider_CredentialsEncrypted_NotSerialized(t *testing.T) {
// This test verifies that the CredentialsEncrypted field has the json:"-" tag
// by checking that it's not included in JSON serialization
provider := DNSProvider{
Name: "Test",
ProviderType: "cloudflare",
CredentialsEncrypted: "encrypted-data-should-not-appear-in-json",
}
// Marshal to JSON
jsonData, err := json.Marshal(provider)
assert.NoError(t, err)
// Verify credentials are not in JSON
jsonString := string(jsonData)
assert.NotContains(t, jsonString, "credentials_encrypted")
assert.NotContains(t, jsonString, "encrypted-data-should-not-appear-in-json")
assert.Contains(t, jsonString, "Test")
assert.Contains(t, jsonString, "cloudflare")
}