add settings permissions update (#11377)

Fixes https://github.com/twentyhq/core-team-issues/issues/710
This commit is contained in:
Weiko
2025-04-04 17:40:14 +02:00
committed by GitHub
parent 6142e193ce
commit e1f6c61651
23 changed files with 528 additions and 165 deletions

View File

@ -550,25 +550,24 @@ describe('roles permissions', () => {
});
});
describe('upsertSettingPermission', () => {
const upsertSettingPermissionMutation = ({
describe('upsertSettingPermissions', () => {
const upsertSettingPermissionsMutation = ({
roleId,
}: {
roleId: string;
}) => `
mutation UpsertSettingPermissions {
upsertOneSettingPermission(upsertSettingPermissionInput: {roleId: "${roleId}", setting: ${SettingPermissionType.DATA_MODEL}, canUpdateSetting: true}) {
upsertSettingPermissions(upsertSettingPermissionsInput: {roleId: "${roleId}", settingPermissionKeys: [${SettingPermissionType.DATA_MODEL}]}) {
id
roleId
setting
canUpdateSetting
}
}
`;
it('should throw a permission error when user does not have permission to upsert object permission (member role)', async () => {
it('should throw a permission error when user does not have permission to upsert setting permission (member role)', async () => {
const query = {
query: upsertSettingPermissionMutation({
query: upsertSettingPermissionsMutation({
roleId: guestRoleId,
}),
};
@ -578,7 +577,7 @@ describe('roles permissions', () => {
it('should throw an error when role is not editable', async () => {
const query = {
query: upsertSettingPermissionMutation({
query: upsertSettingPermissionsMutation({
roleId: adminRoleId,
}),
};
@ -602,7 +601,7 @@ describe('roles permissions', () => {
it('should upsert a setting permission when user has permission', async () => {
const query = {
query: upsertSettingPermissionMutation({
query: upsertSettingPermissionsMutation({
roleId: createdEditableRoleId,
}),
};
@ -615,14 +614,13 @@ describe('roles permissions', () => {
.expect((res) => {
expect(res.body.data).toBeDefined();
expect(res.body.errors).toBeUndefined();
expect(res.body.data.upsertOneSettingPermission.roleId).toBe(
createdEditableRoleId,
);
expect(
res.body.data.upsertOneSettingPermission.canUpdateSetting,
).toBe(true);
expect(res.body.data.upsertOneSettingPermission.setting).toBe(
SettingPermissionType.DATA_MODEL,
expect(res.body.data.upsertSettingPermissions).toEqual(
expect.arrayContaining([
expect.objectContaining({
roleId: createdEditableRoleId,
setting: SettingPermissionType.DATA_MODEL,
}),
]),
);
});
});