Fix e2e tests

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-02-18 12:05:53 +04:00
parent b49747f3ba
commit ab5fe8e5e2
30 changed files with 874 additions and 715 deletions

View File

@@ -29,8 +29,7 @@ import (
func TestDatum_Create(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
tests := []struct {
name string
@@ -103,7 +102,7 @@ func TestDatum_Create(t *testing.T) {
input := map[string]any{
"organizationId": owner.GetOrganizationID().String(),
"ownerId": profileID.String(),
"ownerId": profileID,
}
for k, v := range tt.input {
input[k] = v
@@ -140,8 +139,7 @@ func TestDatum_Create(t *testing.T) {
func TestDatum_Create_Validation(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
tests := []struct {
name string
@@ -277,8 +275,7 @@ func TestDatum_Create_Validation(t *testing.T) {
func TestDatum_Update(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
tests := []struct {
name string
@@ -290,7 +287,7 @@ func TestDatum_Update(t *testing.T) {
{
name: "update name",
setup: func() string {
return factory.NewDatum(owner, profileID.String()).
return factory.NewDatum(owner, profileID).
WithName("Datum to Update").
Create()
},
@@ -306,7 +303,7 @@ func TestDatum_Update(t *testing.T) {
{
name: "update to PUBLIC classification",
setup: func() string {
return factory.NewDatum(owner, profileID.String()).
return factory.NewDatum(owner, profileID).
WithName("Classification Test").
WithDataClassification("INTERNAL").
Create()
@@ -320,7 +317,7 @@ func TestDatum_Update(t *testing.T) {
{
name: "update to SECRET classification",
setup: func() string {
return factory.NewDatum(owner, profileID.String()).
return factory.NewDatum(owner, profileID).
WithName("Classification Test").
Create()
},
@@ -375,9 +372,8 @@ func TestDatum_Update(t *testing.T) {
func TestDatum_Update_Validation(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
baseDatumID := factory.NewDatum(owner, profileID.String()).WithName("Validation Test Datum").Create()
profileID := factory.CreateUser(owner)
baseDatumID := factory.NewDatum(owner, profileID).WithName("Validation Test Datum").Create()
tests := []struct {
name string
@@ -491,11 +487,10 @@ func TestDatum_Update_Validation(t *testing.T) {
func TestDatum_Delete(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
t.Run("delete existing datum", func(t *testing.T) {
datumID := factory.NewDatum(owner, profileID.String()).WithName("Datum to Delete").Create()
datumID := factory.NewDatum(owner, profileID).WithName("Datum to Delete").Create()
query := `
mutation DeleteDatum($input: DeleteDatumInput!) {
@@ -557,12 +552,11 @@ func TestDatum_Delete_Validation(t *testing.T) {
func TestDatum_List(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
datumNames := []string{"Datum A", "Datum B", "Datum C"}
for _, name := range datumNames {
factory.NewDatum(owner, profileID.String()).WithName(name).Create()
factory.NewDatum(owner, profileID).WithName(name).Create()
}
query := `
@@ -630,8 +624,7 @@ func TestDatum_Query(t *testing.T) {
func TestDatum_Timestamps(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
t.Run("createdAt and updatedAt are set on create", func(t *testing.T) {
beforeCreate := time.Now().Add(-time.Second)
@@ -665,7 +658,7 @@ func TestDatum_Timestamps(t *testing.T) {
err := owner.Execute(query, map[string]any{
"input": map[string]any{
"organizationId": owner.GetOrganizationID().String(),
"ownerId": profileID.String(),
"ownerId": profileID,
"name": "Timestamp Test Datum",
"dataClassification": "INTERNAL",
},
@@ -677,7 +670,7 @@ func TestDatum_Timestamps(t *testing.T) {
})
t.Run("updatedAt changes on update", func(t *testing.T) {
datumID := factory.NewDatum(owner, profileID.String()).WithName("Timestamp Update Test").Create()
datumID := factory.NewDatum(owner, profileID).WithName("Timestamp Update Test").Create()
getQuery := `
query($id: ID!) {
@@ -741,9 +734,8 @@ func TestDatum_Timestamps(t *testing.T) {
func TestDatum_SubResolvers(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("SubResolver Test Datum").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("SubResolver Test Datum").Create()
t.Run("owner sub-resolver", func(t *testing.T) {
query := `
@@ -772,7 +764,7 @@ func TestDatum_SubResolvers(t *testing.T) {
err := owner.Execute(query, map[string]any{"id": datumID}, &result)
require.NoError(t, err)
assert.Equal(t, profileID.String(), result.Node.Owner.ID)
assert.Equal(t, profileID, result.Node.Owner.ID)
})
t.Run("organization sub-resolver", func(t *testing.T) {
@@ -813,8 +805,7 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("create", func(t *testing.T) {
t.Run("owner can create", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
_, err := owner.Do(`
mutation CreateDatum($input: CreateDatumInput!) {
@@ -825,7 +816,7 @@ func TestDatum_RBAC(t *testing.T) {
`, map[string]any{
"input": map[string]any{
"organizationId": owner.GetOrganizationID().String(),
"ownerId": profileID.String(),
"ownerId": profileID,
"name": "RBAC Test Datum",
"dataClassification": "INTERNAL",
},
@@ -836,8 +827,7 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("admin can create", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
admin := testutil.NewClientInOrg(t, testutil.RoleAdmin, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
_, err := admin.Do(`
mutation CreateDatum($input: CreateDatumInput!) {
@@ -848,7 +838,7 @@ func TestDatum_RBAC(t *testing.T) {
`, map[string]any{
"input": map[string]any{
"organizationId": admin.GetOrganizationID().String(),
"ownerId": profileID.String(),
"ownerId": profileID,
"name": "RBAC Test Datum",
"dataClassification": "INTERNAL",
},
@@ -859,8 +849,7 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("viewer cannot create", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
viewer := testutil.NewClientInOrg(t, testutil.RoleViewer, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
_, err := viewer.Do(`
mutation CreateDatum($input: CreateDatumInput!) {
@@ -871,7 +860,7 @@ func TestDatum_RBAC(t *testing.T) {
`, map[string]any{
"input": map[string]any{
"organizationId": viewer.GetOrganizationID().String(),
"ownerId": profileID.String(),
"ownerId": profileID,
"name": "RBAC Test Datum",
"dataClassification": "INTERNAL",
},
@@ -883,9 +872,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("update", func(t *testing.T) {
t.Run("owner can update", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Update Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Update Test").Create()
_, err := owner.Do(`
mutation UpdateDatum($input: UpdateDatumInput!) {
@@ -905,9 +893,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("admin can update", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
admin := testutil.NewClientInOrg(t, testutil.RoleAdmin, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Update Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Update Test").Create()
_, err := admin.Do(`
mutation UpdateDatum($input: UpdateDatumInput!) {
@@ -927,9 +914,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("viewer cannot update", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
viewer := testutil.NewClientInOrg(t, testutil.RoleViewer, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Update Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Update Test").Create()
_, err := viewer.Do(`
mutation UpdateDatum($input: UpdateDatumInput!) {
@@ -950,9 +936,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("delete", func(t *testing.T) {
t.Run("owner can delete", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Delete Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Delete Test").Create()
_, err := owner.Do(`
mutation DeleteDatum($input: DeleteDatumInput!) {
@@ -969,9 +954,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("admin can delete", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
admin := testutil.NewClientInOrg(t, testutil.RoleAdmin, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Delete Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Delete Test").Create()
_, err := admin.Do(`
mutation DeleteDatum($input: DeleteDatumInput!) {
@@ -988,9 +972,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("viewer cannot delete", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
viewer := testutil.NewClientInOrg(t, testutil.RoleViewer, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Delete Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Delete Test").Create()
_, err := viewer.Do(`
mutation DeleteDatum($input: DeleteDatumInput!) {
@@ -1008,9 +991,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("read", func(t *testing.T) {
t.Run("owner can read", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Read Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Read Test").Create()
var result struct {
Node *struct {
@@ -1033,9 +1015,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("admin can read", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
admin := testutil.NewClientInOrg(t, testutil.RoleAdmin, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Read Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Read Test").Create()
var result struct {
Node *struct {
@@ -1058,9 +1039,8 @@ func TestDatum_RBAC(t *testing.T) {
t.Run("viewer can read", func(t *testing.T) {
owner := testutil.NewClient(t, testutil.RoleOwner)
viewer := testutil.NewClientInOrg(t, testutil.RoleViewer, owner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
datumID := factory.NewDatum(owner, profileID.String()).WithName("RBAC Read Test").Create()
profileID := factory.CreateUser(owner)
datumID := factory.NewDatum(owner, profileID).WithName("RBAC Read Test").Create()
var result struct {
Node *struct {
@@ -1085,8 +1065,7 @@ func TestDatum_RBAC(t *testing.T) {
func TestDatum_MaxLength_Validation(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
longName := strings.Repeat("a", 1001)
@@ -1104,7 +1083,7 @@ func TestDatum_MaxLength_Validation(t *testing.T) {
_, err := owner.Do(query, map[string]any{
"input": map[string]any{
"organizationId": owner.GetOrganizationID().String(),
"ownerId": profileID.String(),
"ownerId": profileID,
"name": longName,
"dataClassification": "INTERNAL",
},
@@ -1114,7 +1093,7 @@ func TestDatum_MaxLength_Validation(t *testing.T) {
})
t.Run("update", func(t *testing.T) {
datumID := factory.NewDatum(owner, profileID.String()).WithName("Max Length Test").Create()
datumID := factory.NewDatum(owner, profileID).WithName("Max Length Test").Create()
query := `
mutation UpdateDatum($input: UpdateDatumInput!) {
@@ -1138,11 +1117,10 @@ func TestDatum_MaxLength_Validation(t *testing.T) {
func TestDatum_Pagination(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
for i := 0; i < 5; i++ {
factory.NewDatum(owner, profileID.String()).
factory.NewDatum(owner, profileID).
WithName(fmt.Sprintf("Pagination Datum %d", i)).
Create()
}
@@ -1288,9 +1266,8 @@ func TestDatum_TenantIsolation(t *testing.T) {
org1Owner := testutil.NewClient(t, testutil.RoleOwner)
org2Owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, org1Owner).GetProfileID()
datumID := factory.NewDatum(org1Owner, profileID.String()).WithName("Org1 Datum").Create()
profileID := factory.CreateUser(org1Owner)
datumID := factory.NewDatum(org1Owner, profileID).WithName("Org1 Datum").Create()
t.Run("cannot read datum from another organization", func(t *testing.T) {
query := `
@@ -1396,11 +1373,10 @@ func TestDatum_TenantIsolation(t *testing.T) {
func TestDatum_Ordering(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
// TODO: right now we need to invite and accept invite to get new profile.
profileID := testutil.NewClientInOrg(t, testutil.RoleViewer, owner).GetProfileID()
profileID := factory.CreateUser(owner)
factory.NewDatum(owner, profileID.String()).WithName("AAA Order Test").Create()
factory.NewDatum(owner, profileID.String()).WithName("ZZZ Order Test").Create()
factory.NewDatum(owner, profileID).WithName("AAA Order Test").Create()
factory.NewDatum(owner, profileID).WithName("ZZZ Order Test").Create()
t.Run("order by created_at descending", func(t *testing.T) {
query := `