Skip to content

Commit f20305b

Browse files
committed
Fix tests
1 parent e15478d commit f20305b

5 files changed

Lines changed: 30 additions & 7 deletions

File tree

packages/clerk-js/src/test/fixtures.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ const createBaseOrganizationSettings = (): OrganizationSettingsJSON => {
9292
slug: {
9393
disabled: true,
9494
},
95+
organization_creation_defaults: {
96+
enabled: false,
97+
},
9598
} as unknown as OrganizationSettingsJSON;
9699
};
97100

packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/CreateOrganizationScreen.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { OrganizationCreationDefaultsAlert } from './OrganizationCreationDefault
2222

2323
type CreateOrganizationScreenProps = {
2424
onCancel?: () => void;
25-
organizationCreationDefaults?: OrganizationCreationDefaultsResource;
25+
organizationCreationDefaults?: OrganizationCreationDefaultsResource | null;
2626
};
2727

2828
export const CreateOrganizationScreen = (props: CreateOrganizationScreenProps) => {

packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ describe('TaskChooseOrganization', () => {
349349
it('prefills create organization form with defaults', async () => {
350350
const { wrapper, fixtures } = await createFixtures(f => {
351351
f.withOrganizations();
352+
f.withOrganizationSlug(true);
352353
f.withForceOrganizationSelection();
353354
f.withOrganizationCreationDefaults(true);
354355
f.withUser({
@@ -368,10 +369,10 @@ describe('TaskChooseOrganization', () => {
368369
}),
369370
);
370371

371-
const { findByText } = render(<TaskChooseOrganization />, { wrapper });
372+
const { findByRole } = render(<TaskChooseOrganization />, { wrapper });
372373

373-
expect(await findByText('Test Org')).toBeInTheDocument();
374-
expect(await findByText('test-org')).toBeInTheDocument();
374+
expect(await findByRole('textbox', { name: /name/i })).toHaveValue('Test Org');
375+
expect(await findByRole('textbox', { name: /slug/i })).toHaveValue('test-org');
375376
});
376377
});
377378

packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/index.tsx

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { useClerk, useSession, useUser } from '@clerk/shared/react';
2+
import type { OrganizationCreationDefaultsResource } from '@clerk/shared/types';
23
import { useState } from 'react';
34

4-
import { useSignOutContext, withCoreSessionSwitchGuard } from '@/ui/contexts';
5+
import { useEnvironment, useSignOutContext, withCoreSessionSwitchGuard } from '@/ui/contexts';
56
import { descriptors, Flex, Flow, localizationKeys, Spinner } from '@/ui/customizables';
67
import { Card } from '@/ui/elements/Card';
78
import { withCardStateProvider } from '@/ui/elements/contexts';
89
import { Header } from '@/ui/elements/Header';
10+
import { useFetch } from '@/ui/hooks';
911
import { useMultipleSessions } from '@/ui/hooks/useMultipleSessions';
1012
import { useOrganizationListInView } from '@/ui/hooks/useOrganizationListInView';
1113

@@ -16,8 +18,17 @@ import { CreateOrganizationScreen } from './CreateOrganizationScreen';
1618
const TaskChooseOrganizationInternal = () => {
1719
const { user } = useUser();
1820
const { userMemberships, userSuggestions, userInvitations } = useOrganizationListInView();
21+
const { organizationSettings } = useEnvironment();
22+
const organizationCreationDefaults = useFetch(
23+
organizationSettings.organizationCreationDefaults?.enabled ? user?.getOrganizationCreationDefaults : undefined,
24+
'organization-creation-defaults',
25+
);
1926

20-
const isLoading = userMemberships?.isLoading || userInvitations?.isLoading || userSuggestions?.isLoading;
27+
const isLoading =
28+
userMemberships?.isLoading ||
29+
userInvitations?.isLoading ||
30+
userSuggestions?.isLoading ||
31+
organizationCreationDefaults?.isLoading;
2132
const hasExistingResources = !!(userMemberships?.count || userInvitations?.count || userSuggestions?.count);
2233
const isOrganizationCreationDisabled = !isLoading && !user?.createOrganizationEnabled && !hasExistingResources;
2334

@@ -47,7 +58,10 @@ const TaskChooseOrganizationInternal = () => {
4758
/>
4859
</Flex>
4960
) : (
50-
<TaskChooseOrganizationFlows initialFlow={hasExistingResources ? 'choose' : 'create'} />
61+
<TaskChooseOrganizationFlows
62+
initialFlow={hasExistingResources ? 'choose' : 'create'}
63+
organizationCreationDefaults={organizationCreationDefaults.data}
64+
/>
5165
)}
5266
</Card.Content>
5367

@@ -103,6 +117,7 @@ const TaskChooseOrganizationCardFooter = () => {
103117

104118
type TaskChooseOrganizationFlowsProps = {
105119
initialFlow: 'create' | 'choose';
120+
organizationCreationDefaults?: OrganizationCreationDefaultsResource | null;
106121
};
107122

108123
const TaskChooseOrganizationFlows = withCardStateProvider((props: TaskChooseOrganizationFlowsProps) => {
@@ -112,6 +127,7 @@ const TaskChooseOrganizationFlows = withCardStateProvider((props: TaskChooseOrga
112127
return (
113128
<CreateOrganizationScreen
114129
onCancel={props.initialFlow === 'choose' ? () => setCurrentFlow('choose') : undefined}
130+
organizationCreationDefaults={props.organizationCreationDefaults}
115131
/>
116132
);
117133
}

packages/shared/src/types/organizationSettings.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,8 @@ export interface OrganizationSettingsResource extends ClerkResource {
4040
slug: {
4141
disabled: boolean;
4242
};
43+
organizationCreationDefaults: {
44+
enabled: boolean;
45+
};
4346
__internal_toSnapshot: () => OrganizationSettingsJSONSnapshot;
4447
}

0 commit comments

Comments
 (0)