diff --git a/server/models/GroupPermission.test.ts b/server/models/GroupPermission.test.ts new file mode 100644 index 0000000000..d6d5f26fdf --- /dev/null +++ b/server/models/GroupPermission.test.ts @@ -0,0 +1,29 @@ +import { buildCollection, buildGroup, buildUser } from "@server/test/factories"; +import GroupPermission from "./GroupPermission"; + +describe("GroupPermission", () => { + describe("withCollection scope", () => { + it("should return the collection", async () => { + const collection = await buildCollection(); + const group = await buildGroup(); + const user = await buildUser({ teamId: group.teamId }); + + await GroupPermission.create({ + createdById: user.id, + groupId: group.id, + collectionId: collection.id, + }); + + const permission = await GroupPermission.scope("withCollection").findOne({ + where: { + groupId: group.id, + collectionId: collection.id, + }, + }); + + expect(permission).toBeDefined(); + expect(permission?.collection).toBeDefined(); + expect(permission?.collection?.id).toEqual(collection.id); + }); + }); +}); diff --git a/server/models/GroupPermission.ts b/server/models/GroupPermission.ts index 960ff3689d..95ab3e9d2f 100644 --- a/server/models/GroupPermission.ts +++ b/server/models/GroupPermission.ts @@ -26,15 +26,14 @@ import Fix from "./decorators/Fix"; ], }, withCollection: { + where: { + collectionId: { + [Op.ne]: null, + }, + }, include: [ { - model: Collection, - as: "collection", - where: { - collectionId: { - [Op.ne]: null, - }, - }, + association: "collection", }, ], }, diff --git a/server/models/UserPermission.test.ts b/server/models/UserPermission.test.ts new file mode 100644 index 0000000000..eb20bf86c1 --- /dev/null +++ b/server/models/UserPermission.test.ts @@ -0,0 +1,28 @@ +import { buildCollection, buildUser } from "@server/test/factories"; +import UserPermission from "./UserPermission"; + +describe("UserPermission", () => { + describe("withCollection scope", () => { + it("should return the collection", async () => { + const collection = await buildCollection(); + const user = await buildUser({ teamId: collection.teamId }); + + await UserPermission.create({ + createdById: user.id, + userId: user.id, + collectionId: collection.id, + }); + + const permission = await UserPermission.scope("withCollection").findOne({ + where: { + userId: user.id, + collectionId: collection.id, + }, + }); + + expect(permission).toBeDefined(); + expect(permission?.collection).toBeDefined(); + expect(permission?.collection?.id).toEqual(collection.id); + }); + }); +}); diff --git a/server/models/UserPermission.ts b/server/models/UserPermission.ts index 5804f57388..9f545bdac6 100644 --- a/server/models/UserPermission.ts +++ b/server/models/UserPermission.ts @@ -25,15 +25,14 @@ import Fix from "./decorators/Fix"; ], }, withCollection: { + where: { + collectionId: { + [Op.ne]: null, + }, + }, include: [ { - model: Collection, - as: "collection", - where: { - collectionId: { - [Op.ne]: null, - }, - }, + association: "collection", }, ], },