provider_empty_test.go 953 B

12345678910111213141516171819202122232425262728293031
  1. package config
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/charmbracelet/catwalk/pkg/catwalk"
  6. "github.com/stretchr/testify/require"
  7. )
  8. type emptyProviderClient struct{}
  9. func (m *emptyProviderClient) GetProviders(context.Context, string) ([]catwalk.Provider, error) {
  10. return []catwalk.Provider{}, nil
  11. }
  12. // TestProvider_loadProvidersEmptyResult tests that loadProviders returns an
  13. // error when the client returns an empty list. This ensures we don't cache
  14. // empty provider lists.
  15. func TestProvider_loadProvidersEmptyResult(t *testing.T) {
  16. client := &emptyProviderClient{}
  17. tmpPath := t.TempDir() + "/providers.json"
  18. providers, err := loadProviders(client, "", tmpPath)
  19. require.Contains(t, err.Error(), "empty providers list from catwalk")
  20. require.Empty(t, providers)
  21. require.Len(t, providers, 0)
  22. // Check that no cache file was created for empty results
  23. require.NoFileExists(t, tmpPath, "Cache file should not exist for empty results")
  24. }