Skip to content

Commit dc5e301

Browse files
committed
fix(projects): align integration fixtures with membership constraints
1 parent 523338a commit dc5e301

93 files changed

Lines changed: 374 additions & 163 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎apps/sim/app/api/knowledge/connectors/member-sync/route.integration.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { deleteWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
12
/**
23
* The member sync scheduler's reclaim against real PostgreSQL: a members-mode connector whose
34
* member lease went stale is put back on the failure ladder, and a connector in any other access
@@ -51,7 +52,7 @@ describe('member sync reclaim in PostgreSQL', () => {
5152
})
5253

5354
afterAll(async () => {
54-
await db.delete(workspace).where(eq(workspace.id, ids.workspaceId))
55+
await deleteWorkspaceFixture(db, eq(workspace.id, ids.workspaceId))
5556
await db.delete(organization).where(eq(organization.id, ids.organizationId))
5657
await db.delete(user).where(inArray(user.id, [ids.aliceId, ids.bobId]))
5758
await db.$client.end()

‎apps/sim/app/api/v1/knowledge/route.integration.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import type { Principal } from '@sim/auth/principal'
88
import { db } from '@sim/db'
99
import { document, organization, user, workspace } from '@sim/db/schema'
10+
import { deleteWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
1011
import { authMock, authMockFns, createMockRequest } from '@sim/testing'
1112
import { generateId } from '@sim/utils/id'
1213
import { eq, inArray } from 'drizzle-orm'
@@ -85,7 +86,7 @@ describe('knowledge-base document totals in PostgreSQL', () => {
8586
})
8687

8788
afterAll(async () => {
88-
await db.delete(workspace).where(eq(workspace.id, ids.workspaceId))
89+
await deleteWorkspaceFixture(db, eq(workspace.id, ids.workspaceId))
8990
await db.delete(organization).where(eq(organization.id, ids.organizationId))
9091
await db.delete(user).where(inArray(user.id, [ids.aliceId, ids.bobId]))
9192
vi.unstubAllGlobals()

‎apps/sim/background/cleanup-table-row-ttl.integration.ts‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,12 @@ describe.skipIf(!migrated)('Expiration with real PostgreSQL transactions', () =>
110110
beforeAll(async () => {
111111
await control`INSERT INTO "user" (id, name, email, email_verified, created_at, updated_at)
112112
VALUES (${userId}, 'Expiration integration fixture', ${`${userId}@example.test`}, true, now(), now())`
113-
await control`INSERT INTO workspace (id, name, owner_id, billed_account_user_id)
113+
await control.begin(async (tx) => {
114+
await tx`INSERT INTO workspace (id, name, owner_id, billed_account_user_id)
114115
VALUES (${workspaceId}, 'Expiration integration fixtures', ${userId}, ${userId})`
116+
await tx`INSERT INTO project (id, name, owner_id) VALUES (${workspaceId}, 'Fixture project', ${userId})`
117+
await tx`INSERT INTO project_workspace (project_id, workspace_id) VALUES (${workspaceId}, ${workspaceId})`
118+
})
115119
})
116120

117121
beforeEach(async () => {
@@ -126,7 +130,10 @@ describe.skipIf(!migrated)('Expiration with real PostgreSQL transactions', () =>
126130
})
127131

128132
afterAll(async () => {
129-
await control`DELETE FROM workspace WHERE id = ${workspaceId}`
133+
await control.begin(async (tx) => {
134+
await tx`DELETE FROM workspace WHERE id = ${workspaceId}`
135+
await tx`DELETE FROM project WHERE id = ${workspaceId}`
136+
})
130137
await control`DELETE FROM "user" WHERE id = ${userId}`
131138
writeFileSync(
132139
join(tmpdir(), 'expiration-qa-measurements.json'),

‎apps/sim/lib/credentials/__integration__/organization-personal-tokens.integration.ts‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
user,
1212
workspace,
1313
} from '@sim/db/schema'
14+
import { deleteWorkspaceFixture, insertWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
1415
import { sha256Hex } from '@sim/security/hash'
1516
import { generateId } from '@sim/utils/id'
1617
import { and, eq, inArray } from 'drizzle-orm'
@@ -106,7 +107,8 @@ describe('organization personal tokens', () => {
106107
{ id: generateId(), organizationId: ids.org, userId: ids.owner, role: 'member' },
107108
{ id: generateId(), organizationId: ids.org, userId: ids.other, role: 'admin' },
108109
])
109-
await db.insert(workspace).values(
110+
await insertWorkspaceFixture(
111+
db,
110112
[ids.first, ids.second, ids.foreign].map((id) => ({
111113
id,
112114
name: 'Token fixture workspace',
@@ -187,7 +189,7 @@ describe('organization personal tokens', () => {
187189
await db
188190
.delete(credentialGroup)
189191
.where(inArray(credentialGroup.id, [ids.group, ids.legacyGroup]))
190-
await db.delete(workspace).where(inArray(workspace.id, [ids.first, ids.second, ids.foreign]))
192+
await deleteWorkspaceFixture(db, inArray(workspace.id, [ids.first, ids.second, ids.foreign]))
191193
await db.delete(organization).where(inArray(organization.id, [ids.org, ids.foreignOrg]))
192194
await db.delete(user).where(inArray(user.id, [ids.owner, ids.other]))
193195
})
@@ -287,7 +289,7 @@ describe('organization personal tokens', () => {
287289
expect.objectContaining({ id: ids.token, workspaceId: null, organizationId: ids.org }),
288290
])
289291
}
290-
await db.delete(workspace).where(eq(workspace.id, ids.first))
292+
await deleteWorkspaceFixture(db, eq(workspace.id, ids.first))
291293
await expect(resolve()).resolves.toMatchObject({ accessToken: tokenSecret })
292294
})
293295

‎apps/sim/lib/environment/execution-environment.integration.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66
import { db } from '@sim/db'
77
import { environment, permissions, user, workspace, workspaceEnvironment } from '@sim/db/schema'
8+
import { deleteWorkspaceFixture, insertWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
89
import { generateId } from '@sim/utils/id'
910
import { eq, inArray } from 'drizzle-orm'
1011
import { afterAll, beforeAll, describe, expect, it } from 'vitest'
@@ -41,7 +42,7 @@ beforeAll(async () => {
4142
...(id === suspended ? { banned: true } : {}),
4243
}))
4344
)
44-
await db.insert(workspace).values({
45+
await insertWorkspaceFixture(db, {
4546
id: workspaceId,
4647
name: 'Environment',
4748
ownerId: owner,
@@ -73,7 +74,7 @@ beforeAll(async () => {
7374
})
7475

7576
afterAll(async () => {
76-
await db.delete(workspace).where(eq(workspace.id, workspaceId))
77+
await deleteWorkspaceFixture(db, eq(workspace.id, workspaceId))
7778
await db.delete(user).where(inArray(user.id, userIds))
7879
})
7980

‎apps/sim/lib/knowledge/__integration__/application-acl.integration.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {
2525
user,
2626
workspace,
2727
} from '@sim/db/schema'
28+
import { deleteWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
2829
import { generateId } from '@sim/utils/id'
2930
import { and, eq } from 'drizzle-orm'
3031
import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'
@@ -278,7 +279,7 @@ describe('indexed source content through real application access', () => {
278279
CONFLUENCE_CLIENT_ID: previousConfluenceClient.id,
279280
CONFLUENCE_CLIENT_SECRET: previousConfluenceClient.secret,
280281
})
281-
await db.delete(workspace).where(eq(workspace.id, workspaceId))
282+
await deleteWorkspaceFixture(db, eq(workspace.id, workspaceId))
282283
await db.delete(user).where(eq(user.id, aliceId))
283284
await db.delete(user).where(eq(user.id, bobId))
284285
await rm(fixtures.storageRoot, { recursive: true, force: true })

‎apps/sim/lib/knowledge/__integration__/coda-live.integration.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
user,
1818
workspace,
1919
} from '@sim/db/schema'
20+
import { deleteWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
2021
import { sleep } from '@sim/utils/helpers'
2122
import { generateId } from '@sim/utils/id'
2223
import { serializeSignedCookie } from 'better-call'
@@ -225,7 +226,7 @@ describe.skipIf(!tokenPath || !fixturePath || !secondEmail)(
225226
.where(eq(document.knowledgeBaseId, ids.knowledgeBaseId))
226227
for (const row of rows)
227228
if (row.storageKey) await deleteFile({ key: row.storageKey, context: 'knowledge-base' })
228-
await db.delete(workspace).where(eq(workspace.id, ids.workspaceId))
229+
await deleteWorkspaceFixture(db, eq(workspace.id, ids.workspaceId))
229230
await db.delete(organization).where(eq(organization.id, ids.organizationId))
230231
await db.delete(user).where(eq(user.id, ids.aliceId))
231232
await db.delete(user).where(eq(user.id, ids.bobId))

‎apps/sim/lib/knowledge/__integration__/confluence-enrollment.integration.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
user,
1616
workspace,
1717
} from '@sim/db/schema'
18+
import { deleteWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
1819
import { generateId } from '@sim/utils/id'
1920
import { and, eq } from 'drizzle-orm'
2021
import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest'
@@ -99,7 +100,7 @@ describe('Confluence mirrored-identity self-enrollment', () => {
99100
CONFLUENCE_CLIENT_SECRET: previousClient.secret,
100101
})
101102
for (const fixture of [ids, foreign]) {
102-
await db.delete(workspace).where(eq(workspace.id, fixture.workspaceId))
103+
await deleteWorkspaceFixture(db, eq(workspace.id, fixture.workspaceId))
103104
await db.delete(user).where(eq(user.id, fixture.aliceId))
104105
await db.delete(user).where(eq(user.id, fixture.bobId))
105106
}

‎apps/sim/lib/knowledge/__integration__/confluence-identity.integration.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
user,
1010
workspace,
1111
} from '@sim/db/schema'
12+
import { deleteWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
1213
import { generateId } from '@sim/utils/id'
1314
import { eq } from 'drizzle-orm'
1415
import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'
@@ -181,7 +182,7 @@ describe('Confluence identities with hidden directory email', () => {
181182
afterAll(async () => {
182183
vi.unstubAllGlobals()
183184
Object.assign(env, previousConfluenceClient)
184-
await db.delete(workspace).where(eq(workspace.id, ids.workspaceId))
185+
await deleteWorkspaceFixture(db, eq(workspace.id, ids.workspaceId))
185186
await db.delete(user).where(eq(user.id, ids.aliceId))
186187
await db.delete(user).where(eq(user.id, ids.bobId))
187188
await db.$client.end()

‎apps/sim/lib/knowledge/__integration__/connector-deferral.integration.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
user,
99
workspace,
1010
} from '@sim/db/schema'
11+
import { deleteWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
1112
import { generateId } from '@sim/utils/id'
1213
import { eq, inArray } from 'drizzle-orm'
1314
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
@@ -88,7 +89,7 @@ describe('durable connector capacity deferrals', () => {
8889
})
8990
afterAll(async () => {
9091
await db.delete(knowledgeBase).where(eq(knowledgeBase.id, ids.knowledgeBaseId))
91-
await db.delete(workspace).where(eq(workspace.id, ids.workspaceId))
92+
await deleteWorkspaceFixture(db, eq(workspace.id, ids.workspaceId))
9293
await db.delete(user).where(inArray(user.id, [ids.aliceId, ids.bobId]))
9394
vi.restoreAllMocks()
9495
vi.unstubAllGlobals()

0 commit comments

Comments
 (0)