8 "github.com/charmbracelet/catwalk/pkg/catwalk"
9 "github.com/stretchr/testify/require"
12type emptyProviderClient struct{}
14func (m *emptyProviderClient) GetProviders() ([]catwalk.Provider, error) {
15 return []catwalk.Provider{}, nil
18func TestProvider_loadProvidersEmptyResult(t *testing.T) {
19 client := &emptyProviderClient{}
20 tmpPath := t.TempDir() + "/providers.json"
22 providers, err := loadProviders(false, client, tmpPath)
23 require.Contains(t, err.Error(), "Crush was unable to fetch an updated list of providers")
24 require.Empty(t, providers)
25 require.Len(t, providers, 0)
27 // Check that no cache file was created for empty results
28 require.NoFileExists(t, tmpPath, "Cache file should not exist for empty results")
31func TestProvider_loadProvidersEmptyCache(t *testing.T) {
32 client := &mockProviderClient{shouldFail: false}
33 tmpPath := t.TempDir() + "/providers.json"
35 // Create an empty cache file
36 emptyProviders := []catwalk.Provider{}
37 data, err := json.Marshal(emptyProviders)
38 require.NoError(t, err)
39 require.NoError(t, os.WriteFile(tmpPath, data, 0o644))
41 // Should refresh and get real providers instead of using empty cache
42 providers, err := loadProviders(false, client, tmpPath)
43 require.NoError(t, err)
44 require.NotNil(t, providers)
45 require.Len(t, providers, 1)
46 require.Equal(t, "Mock", providers[0].Name)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list