chore: clean .gitignore cache
This commit is contained in:
@@ -1,65 +0,0 @@
|
||||
package crowdsec
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFetchIndexParsesRawIndexFormat(t *testing.T) {
|
||||
svc := NewHubService(nil, nil, t.TempDir())
|
||||
svc.HubBaseURL = "http://example.com"
|
||||
|
||||
// This JSON represents the "raw" index format (map of maps) which has no "items" field.
|
||||
// json.Unmarshal into HubIndex will succeed but result in empty Items.
|
||||
// The fix should detect this and fall back to parseRawIndex.
|
||||
rawIndexBody := `{
|
||||
"collections": {
|
||||
"crowdsecurity/base-http-scenarios": {
|
||||
"path": "collections/crowdsecurity/base-http-scenarios.yaml",
|
||||
"version": "0.1",
|
||||
"description": "Base HTTP scenarios"
|
||||
}
|
||||
},
|
||||
"parsers": {
|
||||
"crowdsecurity/nginx-logs": {
|
||||
"path": "parsers/s01-parse/crowdsecurity/nginx-logs.yaml",
|
||||
"version": "1.0",
|
||||
"description": "Parse Nginx logs"
|
||||
}
|
||||
}
|
||||
}`
|
||||
|
||||
svc.HTTPClient = &http.Client{Transport: roundTripperFunc(func(req *http.Request) (*http.Response, error) {
|
||||
if req.URL.String() == "http://example.com"+defaultHubIndexPath {
|
||||
resp := newResponse(http.StatusOK, rawIndexBody)
|
||||
resp.Header.Set("Content-Type", "application/json")
|
||||
return resp, nil
|
||||
}
|
||||
return newResponse(http.StatusNotFound, ""), nil
|
||||
})}
|
||||
|
||||
idx, err := svc.FetchIndex(context.Background())
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, idx.Items)
|
||||
|
||||
// Verify we found the items
|
||||
foundCollection := false
|
||||
foundParser := false
|
||||
for _, item := range idx.Items {
|
||||
if item.Name == "crowdsecurity/base-http-scenarios" {
|
||||
foundCollection = true
|
||||
require.Equal(t, "collections", item.Type)
|
||||
require.Equal(t, "0.1", item.Version)
|
||||
}
|
||||
if item.Name == "crowdsecurity/nginx-logs" {
|
||||
foundParser = true
|
||||
require.Equal(t, "parsers", item.Type)
|
||||
require.Equal(t, "1.0", item.Version)
|
||||
}
|
||||
}
|
||||
require.True(t, foundCollection, "should find collection from raw index")
|
||||
require.True(t, foundParser, "should find parser from raw index")
|
||||
}
|
||||
Reference in New Issue
Block a user