provider_empty_test.go

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