package services import ( "context" "net/http/httptest" "os" "testing" "google.golang.org/api/option" bsltypes "edge-infra.dev/pkg/edge/api/bsl/types" "edge-infra.dev/pkg/edge/api/types" "edge-infra.dev/pkg/edge/bsl" "edge-infra.dev/pkg/edge/okta" "edge-infra.dev/pkg/lib/gcp/iam/utils" ) const ( testOrg = "test-org" testUser = "acct:emerald-edge-dev@testing" testEmail = "jd250001@ncr.com" testOrgID = "test-org-id" testUserRole = "EDGE_ORG_ADMIN" testResetURL = "https://www.example.com" testOktaClientID = "abc123" ) var ( iamservice IAMService bslMockServer *httptest.Server oktaMockServer *httptest.Server bslRoleService RoleService oktaConfig = &types.OktaConfig{ ClientID: testOktaClientID, } oktaClient *okta.Client ) func TestMain(m *testing.M) { iamHTTPClient, closer := utils.NewIAMTestServer(projectID, projectID, testServiceAccountEmail, testOauth2ClientID) iamservice = NewIAMService(option.WithHTTPClient(iamHTTPClient)) bslMockServer = GetMockBspServer(testOrg, testOrgID, testUser, testUserRole, testEmail, testResetURL) oktaMockServer = okta.MockServer(oktaConfig) config := bsltypes.BSPConfig{ Endpoint: bslMockServer.URL, ResetURL: testResetURL, } secret := &bsl.AccessKey{SecretKey: "testSecretKey", SharedKey: "testSharedKey"} bslClient := bsl.NewBSLClient(config, func(_ context.Context, _ string) (*bsl.AccessKey, error) { return secret, nil }) oktaClient = okta.New(*oktaConfig) bslRoleService = NewRoleService(config, bslClient) code := m.Run() closer() oktaMockServer.Close() os.Exit(code) }