package integration_test import ( "context" "fmt" "time" "edge-infra.dev/pkg/edge/api/graph/model" "edge-infra.dev/pkg/edge/api/graph/setup" testApi "edge-infra.dev/pkg/edge/api/graph/test" "edge-infra.dev/pkg/edge/api/middleware" "edge-infra.dev/pkg/edge/api/types" "edge-infra.dev/test/framework" "github.com/99designs/gqlgen/client" "k8s.io/apimachinery/pkg/util/wait" ) func setupIntegrationTest(config *types.TestConfig) (*Suite, error) { // default retry for integration test defaultRetry = wait.Backoff{ Steps: 30, Duration: 3 * time.Second, Factor: 1.1, // change here for backoff Jitter: 0.1, } // Logger Setup log := setup.Log(&config.Config) //setup db connection dbConnection, _ := setup.DB(&config.Config, log) //defer dbConnection.Close() bqClient, _ := setup.BQClient(&config.Config) resolver := setup.Resolver(&config.Config, dbConnection, bqClient) gqlConfig := setup.GqlConfig(resolver) srv := setup.GqlServer(gqlConfig, &config.Config, nil) go setup.Server(log, &config.Config, srv, dbConnection, resolver) jwtSecret = config.Config.App.AppSecret testClusterVersion = config.TestK8Version token, err := middleware.CreateToken(testUser, testEmail, testOrg, jwtSecret, []string{string(model.RoleEdgeOrgAdmin)}, "bslToken", "bsl", "refreshToken") if err != nil { return nil, err } ResolverClient = NewGraphQlClient(config.TestBffEndpoint, client.AddHeader("Authorization", "Bearer "+token)) testTime := fmt.Sprintf("%d", time.Now().UnixNano()) f := framework.New("edge-backend-integration") return &Suite{ Framework: f, client: runtimeClient, ctx: context.Background(), projectID: projectID, testTime: testTime, testBannerEU: &testApi.TestBannerEU, Resolver: resolver, DB: dbConnection, Config: config, }, nil }