diff --git a/src/authorization/authorization.spec.ts b/src/authorization/authorization.spec.ts index 5679caa5f..2d700f31d 100644 --- a/src/authorization/authorization.spec.ts +++ b/src/authorization/authorization.spec.ts @@ -291,6 +291,48 @@ describe('Authorization', () => { type: 'OrganizationRole', }); }); + + it('creates an organization role with resourceTypeSlug', async () => { + fetchOnce(organizationRoleFixture, { status: 201 }); + + const role = await workos.authorization.createOrganizationRole( + testOrgId, + { + slug: 'org-admin', + name: 'Org Admin', + resourceTypeSlug: 'organization', + }, + ); + + expect(fetchBody()).toEqual({ + slug: 'org-admin', + name: 'Org Admin', + resource_type_slug: 'organization', + }); + expect(role.resourceTypeSlug).toEqual('organization'); + }); + + it('creates an organization role without slug', async () => { + fetchOnce(organizationRoleFixture, { status: 201 }); + + const role = await workos.authorization.createOrganizationRole( + testOrgId, + { + name: 'Org Admin', + description: 'Organization administrator', + }, + ); + + expect(fetchBody()).toEqual({ + name: 'Org Admin', + description: 'Organization administrator', + }); + expect(role).toMatchObject({ + object: 'role', + name: 'Org Admin', + type: 'OrganizationRole', + }); + }); }); describe('listOrganizationRoles', () => { diff --git a/src/authorization/interfaces/create-organization-role-options.interface.ts b/src/authorization/interfaces/create-organization-role-options.interface.ts index 09b397e69..fa4781fa0 100644 --- a/src/authorization/interfaces/create-organization-role-options.interface.ts +++ b/src/authorization/interfaces/create-organization-role-options.interface.ts @@ -1,11 +1,13 @@ export interface CreateOrganizationRoleOptions { - slug: string; + slug?: string; name: string; description?: string; + resourceTypeSlug?: string; } export interface SerializedCreateOrganizationRoleOptions { - slug: string; + slug?: string; name: string; description?: string; + resource_type_slug?: string; } diff --git a/src/authorization/serializers/create-organization-role-options.serializer.ts b/src/authorization/serializers/create-organization-role-options.serializer.ts index f97bcebe0..f2895296c 100644 --- a/src/authorization/serializers/create-organization-role-options.serializer.ts +++ b/src/authorization/serializers/create-organization-role-options.serializer.ts @@ -9,4 +9,5 @@ export const serializeCreateOrganizationRoleOptions = ( slug: options.slug, name: options.name, description: options.description, + resource_type_slug: options.resourceTypeSlug, });