From d62c8642fbb48e3a254fc28db63b946bbbaf43fc Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Mon, 24 Mar 2025 03:32:24 +0000 Subject: [PATCH] test(server): omit owner before create (#11059) --- packages/backend/server/src/__tests__/e2e/app.spec.ts | 9 +++++++++ .../backend/server/src/__tests__/mocks/workspace.mock.ts | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/backend/server/src/__tests__/e2e/app.spec.ts b/packages/backend/server/src/__tests__/e2e/app.spec.ts index 6df243f1cc..2ebe5cb2e2 100644 --- a/packages/backend/server/src/__tests__/e2e/app.spec.ts +++ b/packages/backend/server/src/__tests__/e2e/app.spec.ts @@ -1,5 +1,6 @@ import { getCurrentUserQuery } from '@affine/graphql'; +import { Mockers } from '../mocks'; import { app, e2e } from './test'; e2e('should create test app correctly', async t => { @@ -16,3 +17,11 @@ e2e('should handle gql request', async t => { const user = await app.gql({ query: getCurrentUserQuery }); t.is(user.currentUser, null); }); + +e2e('should create workspace with owner', async t => { + const user = await app.signup(); + const workspace = await app.create(Mockers.Workspace, { + owner: { id: user.id }, + }); + t.truthy(workspace); +}); diff --git a/packages/backend/server/src/__tests__/mocks/workspace.mock.ts b/packages/backend/server/src/__tests__/mocks/workspace.mock.ts index 06a3769eef..bfc1fd9446 100644 --- a/packages/backend/server/src/__tests__/mocks/workspace.mock.ts +++ b/packages/backend/server/src/__tests__/mocks/workspace.mock.ts @@ -1,5 +1,6 @@ import { faker } from '@faker-js/faker'; import type { Prisma, Workspace } from '@prisma/client'; +import { omit } from 'lodash-es'; import { WorkspaceRole } from '../../models'; import { Mocker } from './factory'; @@ -12,15 +13,17 @@ export type MockedWorkspace = Workspace; export class MockWorkspace extends Mocker { override async create(input?: Partial) { + const owner = input?.owner; + input = omit(input, 'owner'); return await this.db.workspace.create({ data: { name: faker.animal.cat(), public: false, ...input, - permissions: input?.owner + permissions: owner ? { create: { - userId: 'id' in input.owner ? input.owner.id : input.owner, + userId: owner.id, type: WorkspaceRole.Owner, status: 'Accepted', },