Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ export function CreatePeopleDialog({ children, connectionId }: Props) {
input: {
...data,
organizationId,
additionalEmailAddresses: data.additionalEmailAddresses ?? [],
},
connections: [connectionId],
},
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 27 additions & 20 deletions e2e/console/people_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,12 @@ func TestPeople_Create(t *testing.T) {

err := owner.Execute(query, map[string]any{
"input": map[string]any{
"organizationId": owner.GetOrganizationID().String(),
"fullName": "John Doe",
"primaryEmailAddress": "[email protected]",
"kind": "EMPLOYEE",
"position": "Software Engineer",
"organizationId": owner.GetOrganizationID().String(),
"fullName": "John Doe",
"primaryEmailAddress": "[email protected]",
"additionalEmailAddresses": []string{},
"kind": "EMPLOYEE",
"position": "Software Engineer",
},
}, &result)
require.NoError(t, err)
Expand Down Expand Up @@ -253,52 +254,58 @@ func TestPeople_RequiredFields(t *testing.T) {
{
name: "missing organizationId",
input: map[string]any{
"fullName": "Test Person",
"primaryEmailAddress": "[email protected]",
"kind": "EMPLOYEE",
"fullName": "Test Person",
"primaryEmailAddress": "[email protected]",
"additionalEmailAddresses": []string{},
"kind": "EMPLOYEE",
},
skipOrganization: true,
wantErrorContains: "organizationId",
},
{
name: "missing fullName",
input: map[string]any{
"primaryEmailAddress": "[email protected]",
"kind": "EMPLOYEE",
"primaryEmailAddress": "[email protected]",
"additionalEmailAddresses": []string{},
"kind": "EMPLOYEE",
},
wantErrorContains: "fullName",
},
{
name: "missing primaryEmailAddress",
input: map[string]any{
"fullName": "Test Person",
"kind": "EMPLOYEE",
"fullName": "Test Person",
"additionalEmailAddresses": []string{},
"kind": "EMPLOYEE",
},
wantErrorContains: "primaryEmailAddress",
},
{
name: "missing kind",
input: map[string]any{
"fullName": "Test Person",
"primaryEmailAddress": "[email protected]",
"fullName": "Test Person",
"primaryEmailAddress": "[email protected]",
"additionalEmailAddresses": []string{},
},
wantErrorContains: "kind",
},
{
name: "empty fullName",
input: map[string]any{
"fullName": "",
"primaryEmailAddress": "[email protected]",
"kind": "EMPLOYEE",
"fullName": "",
"primaryEmailAddress": "[email protected]",
"additionalEmailAddresses": []string{},
"kind": "EMPLOYEE",
},
wantErrorContains: "full_name",
},
{
name: "invalid kind enum",
input: map[string]any{
"fullName": "Test Person",
"primaryEmailAddress": "[email protected]",
"kind": "INVALID_KIND",
"fullName": "Test Person",
"primaryEmailAddress": "[email protected]",
"additionalEmailAddresses": []string{},
"kind": "INVALID_KIND",
},
wantErrorContains: "kind",
},
Expand Down
7 changes: 3 additions & 4 deletions e2e/console/rbac_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -908,7 +908,7 @@ func TestRBAC(t *testing.T) {
client: owner,
query: createPeopleMutation,
variables: func() map[string]any {
return map[string]any{"input": map[string]any{"organizationId": owner.GetOrganizationID().String(), "fullName": factory.SafeName("Person"), "primaryEmailAddress": factory.SafeEmail(), "kind": "EMPLOYEE"}}
return map[string]any{"input": map[string]any{"organizationId": owner.GetOrganizationID().String(), "fullName": factory.SafeName("Person"), "primaryEmailAddress": factory.SafeEmail(), "additionalEmailAddresses": []string{}, "kind": "EMPLOYEE"}}
},
shouldAllow: true,
},
Expand All @@ -918,7 +918,7 @@ func TestRBAC(t *testing.T) {
client: admin,
query: createPeopleMutation,
variables: func() map[string]any {
return map[string]any{"input": map[string]any{"organizationId": owner.GetOrganizationID().String(), "fullName": factory.SafeName("Person"), "primaryEmailAddress": factory.SafeEmail(), "kind": "EMPLOYEE"}}
return map[string]any{"input": map[string]any{"organizationId": owner.GetOrganizationID().String(), "fullName": factory.SafeName("Person"), "primaryEmailAddress": factory.SafeEmail(), "additionalEmailAddresses": []string{}, "kind": "EMPLOYEE"}}
},
shouldAllow: true,
},
Expand All @@ -928,7 +928,7 @@ func TestRBAC(t *testing.T) {
client: viewer,
query: createPeopleMutation,
variables: func() map[string]any {
return map[string]any{"input": map[string]any{"organizationId": owner.GetOrganizationID().String(), "fullName": factory.SafeName("Person"), "primaryEmailAddress": factory.SafeEmail(), "kind": "EMPLOYEE"}}
return map[string]any{"input": map[string]any{"organizationId": owner.GetOrganizationID().String(), "fullName": factory.SafeName("Person"), "primaryEmailAddress": factory.SafeEmail(), "additionalEmailAddresses": []string{}, "kind": "EMPLOYEE"}}
},
shouldAllow: false,
},
Expand Down Expand Up @@ -1259,4 +1259,3 @@ func TestRBAC(t *testing.T) {
)
}
}

21 changes: 17 additions & 4 deletions e2e/internal/factory/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,18 @@ func (a Attrs) getBool(key string, defaultVal bool) bool {
return defaultVal
}

func (a Attrs) getSlice(key string, defaultVal []string) []string {
if a == nil {
return defaultVal
}
if v, ok := a[key]; ok {
if slice, ok := v.([]string); ok {
return slice
}
}
return defaultVal
}

func CreateVendor(c *testutil.Client, attrs ...Attrs) string {
c.T.Helper()

Expand Down Expand Up @@ -375,10 +387,11 @@ func CreatePeople(c *testutil.Client, attrs ...Attrs) string {
`

input := map[string]any{
"organizationId": c.GetOrganizationID().String(),
"fullName": a.getString("fullName", SafeName("Person")),
"primaryEmailAddress": a.getString("primaryEmailAddress", SafeEmail()),
"kind": a.getString("kind", "EMPLOYEE"),
"organizationId": c.GetOrganizationID().String(),
"fullName": a.getString("fullName", SafeName("Person")),
"primaryEmailAddress": a.getString("primaryEmailAddress", SafeEmail()),
"additionalEmailAddresses": a.getSlice("additionalEmailAddresses", []string{}),
"kind": a.getString("kind", "EMPLOYEE"),
}

var result struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,8 @@ export async function execute(
};
if (additionalFields.additionalEmailAddresses) {
input.additionalEmailAddresses = additionalFields.additionalEmailAddresses.split(',').map((e) => e.trim()).filter(Boolean);
} else {
input.additionalEmailAddresses = [];
}
if (additionalFields.position) input.position = additionalFields.position;
if (additionalFields.contractStartDate) input.contractStartDate = new Date(additionalFields.contractStartDate).toISOString();
Expand Down
5 changes: 5 additions & 0 deletions pkg/coredata/migrations/20260102T093953Z.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
UPDATE peoples
SET additional_email_addresses = ARRAY[]::TEXT[]
WHERE additional_email_addresses IS NULL;

ALTER TABLE peoples ALTER COLUMN additional_email_addresses SET NOT NULL;
2 changes: 1 addition & 1 deletion pkg/server/api/console/v1/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -3523,7 +3523,7 @@ input CreatePeopleInput {
organizationId: ID!
fullName: String!
primaryEmailAddress: EmailAddr!
additionalEmailAddresses: [EmailAddr!]
additionalEmailAddresses: [EmailAddr!]!
kind: PeopleKind!
position: String
contractStartDate: Datetime
Expand Down
4 changes: 2 additions & 2 deletions pkg/server/api/console/v1/schema/schema.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/server/api/console/v1/types/types.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/server/api/console/v1/v1_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -2073,7 +2073,7 @@ func (r *mutationResolver) CreatePeople(ctx context.Context, input types.CreateP
OrganizationID: input.OrganizationID,
FullName: input.FullName,
PrimaryEmailAddress: input.PrimaryEmailAddress,
AdditionalEmailAddresses: []mail.Addr{},
AdditionalEmailAddresses: input.AdditionalEmailAddresses,
Kind: input.Kind,
Position: input.Position,
ContractStartDate: input.ContractStartDate,
Expand Down
8 changes: 7 additions & 1 deletion pkg/server/api/mcp/v1/schema.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.