package queryapi_test import ( "fmt" "net/http" "regexp" "testing" queryapi "queryorchestration/api/queryAPI" "queryorchestration/internal/database/repository" "queryorchestration/internal/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestSetCollector(t *testing.T) { cfg := &ControllerConfig{} test.CreateDB(t, cfg) initializeTestConfig(t, cfg) acfg := test.CreateAWSContainer(t, cfg) test.SetQueueClient(t, t.Context(), cfg, acfg.ExternalEndpoint) cfg.ClientSyncURL = test.CreateQueue(t, cfg, test.ClientSyncRunnerName) svc := createControllerServices(cfg) cons := queryapi.NewControllers(svc, cfg) id := "clientid" err := cfg.GetDBQueries().CreateClient(t.Context(), &repository.CreateClientParams{ Clientid: id, Name: "client_name", }) require.NoError(t, err) queryId, err := cfg.GetDBQueries().CreateQuery(t.Context(), repository.QuerytypeContextFull) require.NoError(t, err) av := int32(1) cv := int64(1) body := queryapi.CollectorSet{ ActiveVersion: &av, MinimumCleanerVersion: &cv, Fields: &[]queryapi.CollectorField{ { Name: "a", QueryId: queryId, }, }, } ctx, rec := createContextWithJSONBody(t, body) err = cons.SetCollectorByClientId(ctx, id) require.NoError(t, err) assert.Equal(t, http.StatusOK, rec.Code) assert.Empty(t, rec.Body.String()) test.AssertMessageBody(t, cfg, cfg.GetClientSyncURL(), regexp.MustCompile(fmt.Sprintf("{\"id\":\"%s\"}", id))) } func TestGetCollectorByClientId(t *testing.T) { cfg := &ControllerConfig{} test.CreateDB(t, cfg) initializeTestConfig(t, cfg) svc := createControllerServices(cfg) cons := queryapi.NewControllers(svc, cfg) id := "clientid" err := cfg.GetDBQueries().CreateClient(t.Context(), &repository.CreateClientParams{ Clientid: id, Name: "client_name", }) require.NoError(t, err) ctx, rec := createContext(t) err = cons.GetCollectorByClientId(ctx, id) require.NoError(t, err) assert.Equal(t, http.StatusOK, rec.Code) assertBody(t, rec, queryapi.Collector{ ClientId: id, MinimumCleanerVersion: 0, MinimumTextVersion: 0, ActiveVersion: 0, LatestVersion: 0, Fields: []queryapi.CollectorField{}, }) }