|
|
|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
import { Team, TeamCollection as DBTeamCollection } from '@prisma/client';
|
|
|
|
|
import { mockDeep, mockReset } from 'jest-mock-extended';
|
|
|
|
|
import {
|
|
|
|
|
TEAM_COLL_DATA_INVALID,
|
|
|
|
|
TEAM_COLL_DEST_SAME,
|
|
|
|
|
TEAM_COLL_INVALID_JSON,
|
|
|
|
|
TEAM_COLL_IS_PARENT_COLL,
|
|
|
|
|
@@ -17,6 +18,7 @@ import { PrismaService } from 'src/prisma/prisma.service';
|
|
|
|
|
import { PubSubService } from 'src/pubsub/pubsub.service';
|
|
|
|
|
import { AuthUser } from 'src/types/AuthUser';
|
|
|
|
|
import { TeamCollectionService } from './team-collection.service';
|
|
|
|
|
import { TeamCollection } from './team-collection.model';
|
|
|
|
|
|
|
|
|
|
const mockPrisma = mockDeep<PrismaService>();
|
|
|
|
|
const mockPubSub = mockDeep<PubSubService>();
|
|
|
|
|
@@ -51,35 +53,60 @@ const rootTeamCollection: DBTeamCollection = {
|
|
|
|
|
id: '123',
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
parentID: null,
|
|
|
|
|
data: {},
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const rootTeamCollectionsCasted: TeamCollection = {
|
|
|
|
|
id: rootTeamCollection.id,
|
|
|
|
|
title: rootTeamCollection.title,
|
|
|
|
|
parentID: rootTeamCollection.parentID,
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const rootTeamCollection_2: DBTeamCollection = {
|
|
|
|
|
id: 'erv',
|
|
|
|
|
orderIndex: 2,
|
|
|
|
|
parentID: null,
|
|
|
|
|
data: {},
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const rootTeamCollection_2Casted: TeamCollection = {
|
|
|
|
|
id: 'erv',
|
|
|
|
|
parentID: null,
|
|
|
|
|
data: JSON.stringify(rootTeamCollection_2.data),
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const childTeamCollection: DBTeamCollection = {
|
|
|
|
|
id: 'rfe',
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
title: 'Child Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const childTeamCollectionCasted: TeamCollection = {
|
|
|
|
|
id: 'rfe',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify(childTeamCollection.data),
|
|
|
|
|
title: 'Child Collection 1',
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const childTeamCollection_2: DBTeamCollection = {
|
|
|
|
|
id: 'bgdz',
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
data: {},
|
|
|
|
|
parentID: rootTeamCollection_2.id,
|
|
|
|
|
title: 'Child Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
@@ -87,11 +114,20 @@ const childTeamCollection_2: DBTeamCollection = {
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const childTeamCollection_2Casted: TeamCollection = {
|
|
|
|
|
id: 'bgdz',
|
|
|
|
|
data: JSON.stringify(childTeamCollection_2.data),
|
|
|
|
|
parentID: rootTeamCollection_2.id,
|
|
|
|
|
title: 'Child Collection 1',
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
{
|
|
|
|
|
id: 'fdv',
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
parentID: null,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -102,6 +138,8 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
orderIndex: 2,
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -111,6 +149,8 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
orderIndex: 3,
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -119,6 +159,8 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: 'bre3',
|
|
|
|
|
orderIndex: 4,
|
|
|
|
|
parentID: null,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -129,6 +171,8 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
orderIndex: 5,
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -139,6 +183,8 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
},
|
|
|
|
|
@@ -148,6 +194,8 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
},
|
|
|
|
|
@@ -156,6 +204,7 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
orderIndex: 8,
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -165,6 +214,7 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
orderIndex: 9,
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -175,17 +225,83 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
data: {},
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const rootTeamCollectionListCasted: TeamCollection[] = [
|
|
|
|
|
{
|
|
|
|
|
id: 'fdv',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 'fbbg',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 'fgbfg',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 'bre3',
|
|
|
|
|
parentID: null,
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 'hghgf',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '123',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '54tyh',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '234re',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '34rtg',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '45tgh',
|
|
|
|
|
parentID: null,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
{
|
|
|
|
|
id: '123',
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -195,6 +311,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
orderIndex: 2,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -204,6 +322,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
orderIndex: 3,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
updatedOn: currentTime,
|
|
|
|
|
@@ -212,6 +332,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: '567',
|
|
|
|
|
orderIndex: 4,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -221,6 +343,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: '123',
|
|
|
|
|
orderIndex: 5,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -230,6 +354,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: '678',
|
|
|
|
|
orderIndex: 6,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -239,6 +365,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: '789',
|
|
|
|
|
orderIndex: 7,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -248,6 +376,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: '890',
|
|
|
|
|
orderIndex: 8,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -257,6 +387,7 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: '012',
|
|
|
|
|
orderIndex: 9,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -266,6 +397,8 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
id: '0bhu',
|
|
|
|
|
orderIndex: 10,
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: {},
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
teamID: team.id,
|
|
|
|
|
createdOn: currentTime,
|
|
|
|
|
@@ -273,6 +406,75 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const childTeamCollectionListCasted: TeamCollection[] = [
|
|
|
|
|
{
|
|
|
|
|
id: '123',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '345',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '456',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '567',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '123',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '678',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '789',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '890',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '012',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '0bhu',
|
|
|
|
|
parentID: rootTeamCollection.id,
|
|
|
|
|
data: JSON.stringify({}),
|
|
|
|
|
|
|
|
|
|
title: 'Root Collection 1',
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
|
mockReset(mockPrisma);
|
|
|
|
|
mockPubSub.publish.mockClear();
|
|
|
|
|
@@ -311,7 +513,7 @@ describe('getParentOfCollection', () => {
|
|
|
|
|
const result = await teamCollectionService.getParentOfCollection(
|
|
|
|
|
childTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqual(rootTeamCollection);
|
|
|
|
|
expect(result).toEqual(rootTeamCollectionsCasted);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('should return null successfully for a root collection with valid collectionID', async () => {
|
|
|
|
|
@@ -347,7 +549,7 @@ describe('getChildrenOfCollection', () => {
|
|
|
|
|
null,
|
|
|
|
|
10,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqual(childTeamCollectionList);
|
|
|
|
|
expect(result).toEqual(childTeamCollectionListCasted);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('should return a list of 3 child collections successfully with cursor being equal to the 7th item in the list', async () => {
|
|
|
|
|
@@ -363,9 +565,9 @@ describe('getChildrenOfCollection', () => {
|
|
|
|
|
10,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqual([
|
|
|
|
|
{ ...childTeamCollectionList[7] },
|
|
|
|
|
{ ...childTeamCollectionList[8] },
|
|
|
|
|
{ ...childTeamCollectionList[9] },
|
|
|
|
|
{ ...childTeamCollectionListCasted[7] },
|
|
|
|
|
{ ...childTeamCollectionListCasted[8] },
|
|
|
|
|
{ ...childTeamCollectionListCasted[9] },
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -392,7 +594,7 @@ describe('getTeamRootCollections', () => {
|
|
|
|
|
null,
|
|
|
|
|
10,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqual(rootTeamCollectionList);
|
|
|
|
|
expect(result).toEqual(rootTeamCollectionListCasted);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('should return a list of 3 root collections successfully with cursor being equal to the 7th item in the list', async () => {
|
|
|
|
|
@@ -408,9 +610,9 @@ describe('getTeamRootCollections', () => {
|
|
|
|
|
10,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqual([
|
|
|
|
|
{ ...rootTeamCollectionList[7] },
|
|
|
|
|
{ ...rootTeamCollectionList[8] },
|
|
|
|
|
{ ...rootTeamCollectionList[9] },
|
|
|
|
|
{ ...rootTeamCollectionListCasted[7] },
|
|
|
|
|
{ ...rootTeamCollectionListCasted[8] },
|
|
|
|
|
{ ...rootTeamCollectionListCasted[9] },
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -464,6 +666,7 @@ describe('createCollection', () => {
|
|
|
|
|
const result = await teamCollectionService.createCollection(
|
|
|
|
|
rootTeamCollection.teamID,
|
|
|
|
|
'ab',
|
|
|
|
|
JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
rootTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualLeft(TEAM_COLL_SHORT_TITLE);
|
|
|
|
|
@@ -478,11 +681,27 @@ describe('createCollection', () => {
|
|
|
|
|
const result = await teamCollectionService.createCollection(
|
|
|
|
|
rootTeamCollection.teamID,
|
|
|
|
|
'abcd',
|
|
|
|
|
JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
rootTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualLeft(TEAM_NOT_OWNER);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('should throw TEAM_COLL_DATA_INVALID when parent TeamCollection does not belong to the team', async () => {
|
|
|
|
|
// isOwnerCheck
|
|
|
|
|
mockPrisma.teamCollection.findFirstOrThrow.mockResolvedValueOnce(
|
|
|
|
|
rootTeamCollection,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const result = await teamCollectionService.createCollection(
|
|
|
|
|
rootTeamCollection.teamID,
|
|
|
|
|
'abcd',
|
|
|
|
|
'{',
|
|
|
|
|
rootTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualLeft(TEAM_COLL_DATA_INVALID);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('should successfully create a new root TeamCollection with valid inputs', async () => {
|
|
|
|
|
// isOwnerCheck
|
|
|
|
|
mockPrisma.teamCollection.findFirstOrThrow.mockResolvedValueOnce(
|
|
|
|
|
@@ -496,9 +715,10 @@ describe('createCollection', () => {
|
|
|
|
|
const result = await teamCollectionService.createCollection(
|
|
|
|
|
rootTeamCollection.teamID,
|
|
|
|
|
'abcdefg',
|
|
|
|
|
JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
rootTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualRight(rootTeamCollection);
|
|
|
|
|
expect(result).toEqualRight(rootTeamCollectionsCasted);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('should successfully create a new child TeamCollection with valid inputs', async () => {
|
|
|
|
|
@@ -514,9 +734,10 @@ describe('createCollection', () => {
|
|
|
|
|
const result = await teamCollectionService.createCollection(
|
|
|
|
|
childTeamCollection.teamID,
|
|
|
|
|
childTeamCollection.title,
|
|
|
|
|
JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
rootTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualRight(childTeamCollection);
|
|
|
|
|
expect(result).toEqualRight(childTeamCollectionCasted);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('should send pubsub message to "team_coll/<teamID>/coll_added" if child TeamCollection is created successfully', async () => {
|
|
|
|
|
@@ -532,11 +753,13 @@ describe('createCollection', () => {
|
|
|
|
|
const result = await teamCollectionService.createCollection(
|
|
|
|
|
childTeamCollection.teamID,
|
|
|
|
|
childTeamCollection.title,
|
|
|
|
|
JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
|
|
|
|
|
rootTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${childTeamCollection.teamID}/coll_added`,
|
|
|
|
|
childTeamCollection,
|
|
|
|
|
childTeamCollectionCasted,
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -553,11 +776,13 @@ describe('createCollection', () => {
|
|
|
|
|
const result = await teamCollectionService.createCollection(
|
|
|
|
|
rootTeamCollection.teamID,
|
|
|
|
|
'abcdefg',
|
|
|
|
|
JSON.stringify(rootTeamCollection.data),
|
|
|
|
|
|
|
|
|
|
rootTeamCollection.id,
|
|
|
|
|
);
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${rootTeamCollection.teamID}/coll_added`,
|
|
|
|
|
rootTeamCollection,
|
|
|
|
|
rootTeamCollectionsCasted,
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
@@ -587,7 +812,7 @@ describe('renameCollection', () => {
|
|
|
|
|
'NewTitle',
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualRight({
|
|
|
|
|
...rootTeamCollection,
|
|
|
|
|
...rootTeamCollectionsCasted,
|
|
|
|
|
title: 'NewTitle',
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
@@ -625,7 +850,7 @@ describe('renameCollection', () => {
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${rootTeamCollection.teamID}/coll_updated`,
|
|
|
|
|
{
|
|
|
|
|
...rootTeamCollection,
|
|
|
|
|
...rootTeamCollectionsCasted,
|
|
|
|
|
title: 'NewTitle',
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
@@ -832,9 +1057,8 @@ describe('moveCollection', () => {
|
|
|
|
|
null,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualRight({
|
|
|
|
|
...childTeamCollection,
|
|
|
|
|
...childTeamCollectionCasted,
|
|
|
|
|
parentID: null,
|
|
|
|
|
orderIndex: 2,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -890,9 +1114,8 @@ describe('moveCollection', () => {
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${childTeamCollection.teamID}/coll_moved`,
|
|
|
|
|
{
|
|
|
|
|
...childTeamCollection,
|
|
|
|
|
...childTeamCollectionCasted,
|
|
|
|
|
parentID: null,
|
|
|
|
|
orderIndex: 2,
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
@@ -931,9 +1154,8 @@ describe('moveCollection', () => {
|
|
|
|
|
childTeamCollection_2.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualRight({
|
|
|
|
|
...rootTeamCollection,
|
|
|
|
|
parentID: childTeamCollection_2.id,
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
...rootTeamCollectionsCasted,
|
|
|
|
|
parentID: childTeamCollection_2Casted.id,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -973,9 +1195,8 @@ describe('moveCollection', () => {
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${childTeamCollection_2.teamID}/coll_moved`,
|
|
|
|
|
{
|
|
|
|
|
...rootTeamCollection,
|
|
|
|
|
parentID: childTeamCollection_2.id,
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
...rootTeamCollectionsCasted,
|
|
|
|
|
parentID: childTeamCollection_2Casted.id,
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
@@ -1014,9 +1235,8 @@ describe('moveCollection', () => {
|
|
|
|
|
childTeamCollection_2.id,
|
|
|
|
|
);
|
|
|
|
|
expect(result).toEqualRight({
|
|
|
|
|
...childTeamCollection,
|
|
|
|
|
parentID: childTeamCollection_2.id,
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
...childTeamCollectionCasted,
|
|
|
|
|
parentID: childTeamCollection_2Casted.id,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -1056,9 +1276,8 @@ describe('moveCollection', () => {
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${childTeamCollection.teamID}/coll_moved`,
|
|
|
|
|
{
|
|
|
|
|
...childTeamCollection,
|
|
|
|
|
parentID: childTeamCollection_2.id,
|
|
|
|
|
orderIndex: 1,
|
|
|
|
|
...childTeamCollectionCasted,
|
|
|
|
|
parentID: childTeamCollection_2Casted.id,
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
@@ -1154,7 +1373,7 @@ describe('updateCollectionOrder', () => {
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${childTeamCollectionList[4].teamID}/coll_order_updated`,
|
|
|
|
|
{
|
|
|
|
|
collection: rootTeamCollectionList[4],
|
|
|
|
|
collection: rootTeamCollectionListCasted[4],
|
|
|
|
|
nextCollection: null,
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
@@ -1235,8 +1454,8 @@ describe('updateCollectionOrder', () => {
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${childTeamCollectionList[2].teamID}/coll_order_updated`,
|
|
|
|
|
{
|
|
|
|
|
collection: childTeamCollectionList[4],
|
|
|
|
|
nextCollection: childTeamCollectionList[2],
|
|
|
|
|
collection: childTeamCollectionListCasted[4],
|
|
|
|
|
nextCollection: childTeamCollectionListCasted[2],
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
@@ -1302,7 +1521,7 @@ describe('importCollectionsFromJSON', () => {
|
|
|
|
|
);
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${rootTeamCollection.teamID}/coll_added`,
|
|
|
|
|
rootTeamCollection,
|
|
|
|
|
rootTeamCollectionsCasted,
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
@@ -1421,7 +1640,7 @@ describe('replaceCollectionsWithJSON', () => {
|
|
|
|
|
);
|
|
|
|
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
|
|
|
|
`team_coll/${rootTeamCollection.teamID}/coll_added`,
|
|
|
|
|
rootTeamCollection,
|
|
|
|
|
rootTeamCollectionsCasted,
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|