Skip to content

Commit 4f448fc

Browse files
Bill Leoutsakoscursoragent
authored andcommitted
fix(e2e): harden workflow readiness invariants
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 7bba0b7 commit 4f448fc

4 files changed

Lines changed: 22 additions & 10 deletions

File tree

apps/sim/app/workspace/[workspaceId]/settings/components/team-management/team-management.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ export function TeamManagement({
4242
const { data: session, isPending: isSessionPending, error: sessionError } = useSession()
4343
const {
4444
isInvitationsDisabled,
45-
isLoading: isPermissionConfigLoading,
46-
isError: isPermissionConfigError,
45+
isPermissionLoading: isPermissionConfigLoading,
46+
isPermissionError: isPermissionConfigError,
4747
} = usePermissionConfig()
4848

4949
const { data: userSubscriptionData } = useSubscriptionData()
@@ -73,14 +73,14 @@ export function TeamManagement({
7373
const hasLoadError =
7474
Boolean(sessionError) ||
7575
isOrganizationError ||
76-
isOrganizationBillingError ||
76+
(adminOrOwner && isOrganizationBillingError) ||
7777
isRosterError ||
7878
isPermissionConfigError
7979
const isMembersLoading =
8080
!hasLoadError &&
8181
(isSessionPending ||
8282
isLoading ||
83-
isOrgBillingLoading ||
83+
(adminOrOwner && isOrgBillingLoading) ||
8484
isLoadingRoster ||
8585
isPermissionConfigLoading)
8686
const dataState = hasLoadError ? 'error' : isMembersLoading ? 'loading' : 'ready'

apps/sim/app/workspace/[workspaceId]/settings/components/teammates/teammates.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ export function Teammates() {
9898
const queryClient = useQueryClient()
9999
const {
100100
isInvitationsDisabled: isInvitationsDisabledByConfig,
101-
isLoading: permissionConfigLoading,
102-
isError: permissionConfigError,
101+
isPermissionLoading: permissionConfigLoading,
102+
isPermissionError: permissionConfigError,
103103
} = usePermissionConfig()
104104

105105
const resendInvitation = useResendWorkspaceInvitation()

apps/sim/e2e/scripts/seed-world.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -641,13 +641,18 @@ async function assertTrustedWorldInvariants(world: E2EWorld): Promise<void> {
641641
throw new Error(`Persisted invitation grants do not match scenario: ${definition.key}`)
642642
}
643643
}
644-
await assertWorkflowPersonaInvariants(world)
644+
if (world.scenario.definition.namespace.world === 'settings-primary') {
645+
await assertWorkflowPersonaInvariants(world)
646+
}
645647
}
646648

647649
async function assertWorkflowPersonaInvariants(world: E2EWorld): Promise<void> {
648-
const teamTarget = world.records.users.get('team-workflow-member')
649-
const enterpriseTarget = world.records.users.get('enterprise-workflow-member')
650-
if (!teamTarget || !enterpriseTarget) return
650+
const teamTarget = required(world.records.users, 'team-workflow-member', 'Team workflow member')
651+
const enterpriseTarget = required(
652+
world.records.users,
653+
'enterprise-workflow-member',
654+
'Enterprise workflow member'
655+
)
651656

652657
const teamOrganization = required(
653658
world.records.organizations,

apps/sim/hooks/use-permission-config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ export interface PermissionConfigResult {
1818
config: PermissionGroupConfig
1919
isLoading: boolean
2020
isError: boolean
21+
/** Permission-group policy state only; excludes the independent integration allowlist query. */
22+
isPermissionLoading: boolean
23+
isPermissionError: boolean
2124
isInPermissionGroup: boolean
2225
filterBlocks: <T extends { type: string }>(blocks: T[]) => T[]
2326
filterProviders: (providerIds: string[]) => string[]
@@ -167,6 +170,8 @@ export function usePermissionConfig(): PermissionConfigResult {
167170
config: mergedConfig,
168171
isLoading,
169172
isError,
173+
isPermissionLoading,
174+
isPermissionError,
170175
isInPermissionGroup,
171176
filterBlocks,
172177
filterProviders,
@@ -181,6 +186,8 @@ export function usePermissionConfig(): PermissionConfigResult {
181186
mergedConfig,
182187
isLoading,
183188
isError,
189+
isPermissionLoading,
190+
isPermissionError,
184191
isInPermissionGroup,
185192
filterBlocks,
186193
filterProviders,

0 commit comments

Comments
 (0)