From 178513a3a06e17048add52c5d4304f190fb26b5f Mon Sep 17 00:00:00 2001 From: David Mehren Date: Sun, 14 Nov 2021 20:53:45 +0100 Subject: [PATCH] fix(group): add special flag to create method To make the create method more consistent with the guidelines, this commit adds the `special` flag to the parameters. As this function will only be used to create the two hard-coded groups and to handle API requests at one or two places, adding the parameter should not be too problematic. Signed-off-by: David Mehren --- src/groups/group.entity.ts | 8 ++++++-- src/groups/groups.service.spec.ts | 2 +- src/groups/groups.service.ts | 3 +-- src/notes/notes.service.spec.ts | 7 ++++--- src/permissions/permissions.service.spec.ts | 10 ++++++---- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/groups/group.entity.ts b/src/groups/group.entity.ts index 083b4fb9e..f274f90c5 100644 --- a/src/groups/group.entity.ts +++ b/src/groups/group.entity.ts @@ -43,11 +43,15 @@ export class Group { // eslint-disable-next-line @typescript-eslint/no-empty-function private constructor() {} - public static create(name: string, displayName: string): Omit { + public static create( + name: string, + displayName: string, + special: boolean, + ): Omit { const newGroup = new Group(); newGroup.name = name; newGroup.displayName = displayName; - newGroup.special = false; // this attribute should only be true for the two special groups + newGroup.special = special; // this attribute should only be true for the two special groups newGroup.members = []; return newGroup; } diff --git a/src/groups/groups.service.spec.ts b/src/groups/groups.service.spec.ts index 1a776bed2..4b6099bd2 100644 --- a/src/groups/groups.service.spec.ts +++ b/src/groups/groups.service.spec.ts @@ -39,7 +39,7 @@ describe('GroupsService', () => { service = module.get(GroupsService); groupRepo = module.get>(getRepositoryToken(Group)); - group = Group.create('testGroup', 'Superheros') as Group; + group = Group.create('testGroup', 'Superheros', false) as Group; }); it('should be defined', () => { diff --git a/src/groups/groups.service.ts b/src/groups/groups.service.ts index 9e762fd8b..c0e9605e2 100644 --- a/src/groups/groups.service.ts +++ b/src/groups/groups.service.ts @@ -35,8 +35,7 @@ export class GroupsService { displayName: string, special = false, ): Promise { - const group = Group.create(name, displayName); - group.special = special; + const group = Group.create(name, displayName, special); try { return await this.groupRepository.save(group); } catch { diff --git a/src/notes/notes.service.spec.ts b/src/notes/notes.service.spec.ts index 53ed25221..72454fce0 100644 --- a/src/notes/notes.service.spec.ts +++ b/src/notes/notes.service.spec.ts @@ -365,6 +365,7 @@ describe('NotesService', () => { const group = Group.create( groupPermissionUpate.groupname, groupPermissionUpate.groupname, + false, ) as Group; const note = Note.create(user) as Note; describe('works', () => { @@ -668,7 +669,7 @@ describe('NotesService', () => { describe('toNotePermissionsDto', () => { it('works', async () => { const user = User.create('hardcoded', 'Testy') as User; - const group = Group.create('testGroup', 'testGroup') as Group; + const group = Group.create('testGroup', 'testGroup', false) as Group; const note = Note.create(user) as Note; note.userPermissions = [ { @@ -703,7 +704,7 @@ describe('NotesService', () => { const user = User.create('hardcoded', 'Testy') as User; const author = Author.create(1); author.user = user; - const group = Group.create('testGroup', 'testGroup') as Group; + const group = Group.create('testGroup', 'testGroup', false) as Group; const content = 'testContent'; jest .spyOn(noteRepo, 'save') @@ -800,7 +801,7 @@ describe('NotesService', () => { author.user = user; const otherUser = User.create('other hardcoded', 'Testy2') as User; otherUser.username = 'other hardcoded user'; - const group = Group.create('testGroup', 'testGroup') as Group; + const group = Group.create('testGroup', 'testGroup', false) as Group; const content = 'testContent'; jest .spyOn(noteRepo, 'save') diff --git a/src/permissions/permissions.service.spec.ts b/src/permissions/permissions.service.spec.ts index d7452b6b3..981be252e 100644 --- a/src/permissions/permissions.service.spec.ts +++ b/src/permissions/permissions.service.spec.ts @@ -265,28 +265,29 @@ describe('PermissionsService', () => { const everybody: Group = Group.create( SpecialGroup.EVERYONE, SpecialGroup.EVERYONE, + true, ) as Group; - everybody.special = true; result[SpecialGroup.EVERYONE] = everybody; const loggedIn = Group.create( SpecialGroup.LOGGED_IN, SpecialGroup.LOGGED_IN, + true, ) as Group; - loggedIn.special = true; result[SpecialGroup.LOGGED_IN] = loggedIn; - const user1group = Group.create('user1group', 'user1group') as Group; + const user1group = Group.create('user1group', 'user1group', false) as Group; user1group.members = [user1]; result['user1group'] = user1group; - const user2group = Group.create('user2group', 'user2group') as Group; + const user2group = Group.create('user2group', 'user2group', false) as Group; user2group.members = [user2]; result['user2group'] = user2group; const user1and2group = Group.create( 'user1and2group', 'user1and2group', + false, ) as Group; user1and2group.members = [user1, user2]; result['user1and2group'] = user1and2group; @@ -294,6 +295,7 @@ describe('PermissionsService', () => { const user2and1group = Group.create( 'user2and1group', 'user2and1group', + false, ) as Group; user2and1group.members = [user2, user1]; result['user2and1group'] = user2and1group;