chore: refactored all existing testcases in user-collection to reflect new changes
This commit is contained in:
@@ -1016,8 +1016,10 @@ export class TeamCollectionService {
|
|||||||
newTitle: string = null,
|
newTitle: string = null,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
|
if (newTitle != null) {
|
||||||
const isTitleValid = isValidLength(newTitle, this.TITLE_LENGTH);
|
const isTitleValid = isValidLength(newTitle, this.TITLE_LENGTH);
|
||||||
if (!isTitleValid) return E.left(TEAM_COLL_SHORT_TITLE);
|
if (!isTitleValid) return E.left(TEAM_COLL_SHORT_TITLE);
|
||||||
|
}
|
||||||
|
|
||||||
if (collectionData) {
|
if (collectionData) {
|
||||||
const jsonReq = stringToJson(collectionData);
|
const jsonReq = stringToJson(collectionData);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { UserCollection } from '@prisma/client';
|
import { UserCollection as DBUserCollection } from '@prisma/client';
|
||||||
import { mockDeep, mockReset } from 'jest-mock-extended';
|
import { mockDeep, mockReset } from 'jest-mock-extended';
|
||||||
import {
|
import {
|
||||||
USER_COLL_DEST_SAME,
|
USER_COLL_DEST_SAME,
|
||||||
@@ -17,6 +17,7 @@ import { PubSubService } from 'src/pubsub/pubsub.service';
|
|||||||
import { AuthUser } from 'src/types/AuthUser';
|
import { AuthUser } from 'src/types/AuthUser';
|
||||||
import { ReqType } from 'src/types/RequestTypes';
|
import { ReqType } from 'src/types/RequestTypes';
|
||||||
import { UserCollectionService } from './user-collection.service';
|
import { UserCollectionService } from './user-collection.service';
|
||||||
|
import { UserCollection } from './user-collections.model';
|
||||||
|
|
||||||
const mockPrisma = mockDeep<PrismaService>();
|
const mockPrisma = mockDeep<PrismaService>();
|
||||||
const mockPubSub = mockDeep<PubSubService>();
|
const mockPubSub = mockDeep<PubSubService>();
|
||||||
@@ -41,7 +42,7 @@ const user: AuthUser = {
|
|||||||
currentRESTSession: {},
|
currentRESTSession: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const rootRESTUserCollection: UserCollection = {
|
const rootRESTUserCollection: DBUserCollection = {
|
||||||
id: '123',
|
id: '123',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
parentID: null,
|
parentID: null,
|
||||||
@@ -50,9 +51,19 @@ const rootRESTUserCollection: UserCollection = {
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const rootGQLUserCollection: UserCollection = {
|
const rootRESTUserCollectionCasted: UserCollection = {
|
||||||
|
id: '123',
|
||||||
|
parentID: null,
|
||||||
|
userID: user.uid,
|
||||||
|
title: 'Root Collection 1',
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify(rootRESTUserCollection.data),
|
||||||
|
};
|
||||||
|
|
||||||
|
const rootGQLUserCollection: DBUserCollection = {
|
||||||
id: '123',
|
id: '123',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
parentID: null,
|
parentID: null,
|
||||||
@@ -61,9 +72,19 @@ const rootGQLUserCollection: UserCollection = {
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const rootRESTUserCollection_2: UserCollection = {
|
const rootGQLUserCollectionCasted: UserCollection = {
|
||||||
|
id: '123',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 1',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify(rootGQLUserCollection.data),
|
||||||
|
};
|
||||||
|
|
||||||
|
const rootRESTUserCollection_2: DBUserCollection = {
|
||||||
id: '4gf',
|
id: '4gf',
|
||||||
orderIndex: 2,
|
orderIndex: 2,
|
||||||
parentID: null,
|
parentID: null,
|
||||||
@@ -72,9 +93,19 @@ const rootRESTUserCollection_2: UserCollection = {
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const rootGQLUserCollection_2: UserCollection = {
|
const rootRESTUserCollection_2Casted: UserCollection = {
|
||||||
|
id: '4gf',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify(rootRESTUserCollection_2.data),
|
||||||
|
};
|
||||||
|
|
||||||
|
const rootGQLUserCollection_2: DBUserCollection = {
|
||||||
id: '4gf',
|
id: '4gf',
|
||||||
orderIndex: 2,
|
orderIndex: 2,
|
||||||
parentID: null,
|
parentID: null,
|
||||||
@@ -83,9 +114,19 @@ const rootGQLUserCollection_2: UserCollection = {
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const childRESTUserCollection: UserCollection = {
|
const rootGQLUserCollection_2Casted: UserCollection = {
|
||||||
|
id: '4gf',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify(rootGQLUserCollection_2.data),
|
||||||
|
};
|
||||||
|
|
||||||
|
const childRESTUserCollection: DBUserCollection = {
|
||||||
id: '234',
|
id: '234',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
parentID: rootRESTUserCollection.id,
|
parentID: rootRESTUserCollection.id,
|
||||||
@@ -94,9 +135,19 @@ const childRESTUserCollection: UserCollection = {
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const childGQLUserCollection: UserCollection = {
|
const childRESTUserCollectionCasted: UserCollection = {
|
||||||
|
id: '234',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 1',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
};
|
||||||
|
|
||||||
|
const childGQLUserCollection: DBUserCollection = {
|
||||||
id: '234',
|
id: '234',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
parentID: rootRESTUserCollection.id,
|
parentID: rootRESTUserCollection.id,
|
||||||
@@ -105,9 +156,19 @@ const childGQLUserCollection: UserCollection = {
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const childRESTUserCollection_2: UserCollection = {
|
const childGQLUserCollectionCasted: UserCollection = {
|
||||||
|
id: '234',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 1',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
};
|
||||||
|
|
||||||
|
const childRESTUserCollection_2: DBUserCollection = {
|
||||||
id: '0kn',
|
id: '0kn',
|
||||||
orderIndex: 2,
|
orderIndex: 2,
|
||||||
parentID: rootRESTUserCollection_2.id,
|
parentID: rootRESTUserCollection_2.id,
|
||||||
@@ -116,9 +177,19 @@ const childRESTUserCollection_2: UserCollection = {
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const childGQLUserCollection_2: UserCollection = {
|
const childRESTUserCollection_2Casted: UserCollection = {
|
||||||
|
id: '0kn',
|
||||||
|
parentID: rootRESTUserCollection_2.id,
|
||||||
|
title: 'Child Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
};
|
||||||
|
|
||||||
|
const childGQLUserCollection_2: DBUserCollection = {
|
||||||
id: '0kn',
|
id: '0kn',
|
||||||
orderIndex: 2,
|
orderIndex: 2,
|
||||||
parentID: rootRESTUserCollection_2.id,
|
parentID: rootRESTUserCollection_2.id,
|
||||||
@@ -127,9 +198,19 @@ const childGQLUserCollection_2: UserCollection = {
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
const childRESTUserCollectionList: UserCollection[] = [
|
const childGQLUserCollection_2Casted: UserCollection = {
|
||||||
|
id: '0kn',
|
||||||
|
parentID: rootRESTUserCollection_2.id,
|
||||||
|
title: 'Child Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
};
|
||||||
|
|
||||||
|
const childRESTUserCollectionList: DBUserCollection[] = [
|
||||||
{
|
{
|
||||||
id: '234',
|
id: '234',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
@@ -139,6 +220,7 @@ const childRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '345',
|
id: '345',
|
||||||
@@ -149,6 +231,7 @@ const childRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '456',
|
id: '456',
|
||||||
@@ -159,6 +242,7 @@ const childRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '567',
|
id: '567',
|
||||||
@@ -169,6 +253,7 @@ const childRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '678',
|
id: '678',
|
||||||
@@ -179,10 +264,54 @@ const childRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const childGQLUserCollectionList: UserCollection[] = [
|
const childRESTUserCollectionListCasted: UserCollection[] = [
|
||||||
|
{
|
||||||
|
id: '234',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 1',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '345',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '456',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 3',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '567',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 4',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '678',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 5',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const childGQLUserCollectionList: DBUserCollection[] = [
|
||||||
{
|
{
|
||||||
id: '234',
|
id: '234',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
@@ -192,6 +321,7 @@ const childGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '345',
|
id: '345',
|
||||||
@@ -202,6 +332,7 @@ const childGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '456',
|
id: '456',
|
||||||
@@ -212,6 +343,7 @@ const childGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '567',
|
id: '567',
|
||||||
@@ -222,6 +354,7 @@ const childGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '678',
|
id: '678',
|
||||||
@@ -232,10 +365,54 @@ const childGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const rootRESTUserCollectionList: UserCollection[] = [
|
const childGQLUserCollectionListCasted: UserCollection[] = [
|
||||||
|
{
|
||||||
|
id: '234',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 1',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '345',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '456',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 3',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '567',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 4',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '678',
|
||||||
|
parentID: rootRESTUserCollection.id,
|
||||||
|
title: 'Child Collection 5',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const rootRESTUserCollectionList: DBUserCollection[] = [
|
||||||
{
|
{
|
||||||
id: '123',
|
id: '123',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
@@ -245,6 +422,7 @@ const rootRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '234',
|
id: '234',
|
||||||
@@ -255,6 +433,7 @@ const rootRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '345',
|
id: '345',
|
||||||
@@ -265,6 +444,7 @@ const rootRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '456',
|
id: '456',
|
||||||
@@ -275,6 +455,7 @@ const rootRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '567',
|
id: '567',
|
||||||
@@ -285,10 +466,54 @@ const rootRESTUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.REST,
|
type: ReqType.REST,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const rootGQLGQLUserCollectionList: UserCollection[] = [
|
const rootRESTUserCollectionListCasted: UserCollection[] = [
|
||||||
|
{
|
||||||
|
id: '123',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 1',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '234',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '345',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 3',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '456',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 4',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '567',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 5',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.REST,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const rootGQLUserCollectionList: DBUserCollection[] = [
|
||||||
{
|
{
|
||||||
id: '123',
|
id: '123',
|
||||||
orderIndex: 1,
|
orderIndex: 1,
|
||||||
@@ -298,6 +523,7 @@ const rootGQLGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '234',
|
id: '234',
|
||||||
@@ -308,6 +534,7 @@ const rootGQLGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '345',
|
id: '345',
|
||||||
@@ -318,6 +545,7 @@ const rootGQLGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '456',
|
id: '456',
|
||||||
@@ -328,6 +556,7 @@ const rootGQLGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '567',
|
id: '567',
|
||||||
@@ -338,6 +567,50 @@ const rootGQLGQLUserCollectionList: UserCollection[] = [
|
|||||||
type: ReqType.GQL,
|
type: ReqType.GQL,
|
||||||
createdOn: currentTime,
|
createdOn: currentTime,
|
||||||
updatedOn: currentTime,
|
updatedOn: currentTime,
|
||||||
|
data: {},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const rootGQLUserCollectionListCasted: UserCollection[] = [
|
||||||
|
{
|
||||||
|
id: '123',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 1',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '234',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 2',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '345',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 3',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '456',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 4',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '567',
|
||||||
|
parentID: null,
|
||||||
|
title: 'Root Collection 5',
|
||||||
|
userID: user.uid,
|
||||||
|
type: ReqType.GQL,
|
||||||
|
data: JSON.stringify({}),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -356,7 +629,7 @@ describe('getParentOfUserCollection', () => {
|
|||||||
const result = await userCollectionService.getParentOfUserCollection(
|
const result = await userCollectionService.getParentOfUserCollection(
|
||||||
childRESTUserCollection.id,
|
childRESTUserCollection.id,
|
||||||
);
|
);
|
||||||
expect(result).toEqual(rootRESTUserCollection);
|
expect(result).toEqual(rootRESTUserCollectionCasted);
|
||||||
});
|
});
|
||||||
test('should return null with invalid collectionID', async () => {
|
test('should return null with invalid collectionID', async () => {
|
||||||
mockPrisma.userCollection.findUnique.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUnique.mockResolvedValueOnce(
|
||||||
@@ -367,7 +640,7 @@ describe('getParentOfUserCollection', () => {
|
|||||||
'invalidId',
|
'invalidId',
|
||||||
);
|
);
|
||||||
//TODO: check it not null
|
//TODO: check it not null
|
||||||
expect(result).toEqual(undefined);
|
expect(result).toEqual(null);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -383,7 +656,7 @@ describe('getChildrenOfUserCollection', () => {
|
|||||||
10,
|
10,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(result).toEqual(childRESTUserCollectionList);
|
expect(result).toEqual(childRESTUserCollectionListCasted);
|
||||||
});
|
});
|
||||||
test('should return a list of paginated child GQL user-collections with valid collectionID', async () => {
|
test('should return a list of paginated child GQL user-collections with valid collectionID', async () => {
|
||||||
mockPrisma.userCollection.findMany.mockResolvedValueOnce(
|
mockPrisma.userCollection.findMany.mockResolvedValueOnce(
|
||||||
@@ -396,7 +669,7 @@ describe('getChildrenOfUserCollection', () => {
|
|||||||
10,
|
10,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(result).toEqual(childGQLUserCollectionList);
|
expect(result).toEqual(childGQLUserCollectionListCasted);
|
||||||
});
|
});
|
||||||
test('should return a empty array with a invalid REST collectionID', async () => {
|
test('should return a empty array with a invalid REST collectionID', async () => {
|
||||||
mockPrisma.userCollection.findMany.mockResolvedValueOnce([]);
|
mockPrisma.userCollection.findMany.mockResolvedValueOnce([]);
|
||||||
@@ -455,11 +728,11 @@ describe('getUserRootCollections', () => {
|
|||||||
10,
|
10,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(result).toEqual(rootRESTUserCollectionList);
|
expect(result).toEqual(rootRESTUserCollectionListCasted);
|
||||||
});
|
});
|
||||||
test('should return a list of paginated root GQL user-collections with valid collectionID', async () => {
|
test('should return a list of paginated root GQL user-collections with valid collectionID', async () => {
|
||||||
mockPrisma.userCollection.findMany.mockResolvedValueOnce(
|
mockPrisma.userCollection.findMany.mockResolvedValueOnce(
|
||||||
rootGQLGQLUserCollectionList,
|
rootGQLUserCollectionList,
|
||||||
);
|
);
|
||||||
|
|
||||||
const result = await userCollectionService.getUserRootCollections(
|
const result = await userCollectionService.getUserRootCollections(
|
||||||
@@ -468,7 +741,7 @@ describe('getUserRootCollections', () => {
|
|||||||
10,
|
10,
|
||||||
ReqType.GQL,
|
ReqType.GQL,
|
||||||
);
|
);
|
||||||
expect(result).toEqual(rootGQLGQLUserCollectionList);
|
expect(result).toEqual(rootGQLUserCollectionListCasted);
|
||||||
});
|
});
|
||||||
test('should return a empty array with a invalid REST collectionID', async () => {
|
test('should return a empty array with a invalid REST collectionID', async () => {
|
||||||
mockPrisma.userCollection.findMany.mockResolvedValueOnce([]);
|
mockPrisma.userCollection.findMany.mockResolvedValueOnce([]);
|
||||||
@@ -499,11 +772,13 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
'',
|
'',
|
||||||
|
JSON.stringify(rootRESTUserCollection.data),
|
||||||
rootRESTUserCollection.id,
|
rootRESTUserCollection.id,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_SHORT_TITLE);
|
expect(result).toEqualLeft(USER_COLL_SHORT_TITLE);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_NOT_OWNER when user is not the owner of the collection', async () => {
|
test('should throw USER_NOT_OWNER when user is not the owner of the collection', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce({
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce({
|
||||||
@@ -514,11 +789,13 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
rootRESTUserCollection.title,
|
rootRESTUserCollection.title,
|
||||||
|
JSON.stringify(rootRESTUserCollection.data),
|
||||||
rootRESTUserCollection.id,
|
rootRESTUserCollection.id,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_NOT_OWNER);
|
expect(result).toEqualLeft(USER_NOT_OWNER);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully create a new root REST user-collection with valid inputs', async () => {
|
test('should successfully create a new root REST user-collection with valid inputs', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -534,11 +811,13 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
rootRESTUserCollection.title,
|
rootRESTUserCollection.title,
|
||||||
|
JSON.stringify(rootRESTUserCollection.data),
|
||||||
rootRESTUserCollection.id,
|
rootRESTUserCollection.id,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight(rootRESTUserCollection);
|
expect(result).toEqualRight(rootRESTUserCollectionCasted);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully create a new root GQL user-collection with valid inputs', async () => {
|
test('should successfully create a new root GQL user-collection with valid inputs', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -554,11 +833,13 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
rootGQLUserCollection.title,
|
rootGQLUserCollection.title,
|
||||||
|
JSON.stringify(rootGQLUserCollection.data),
|
||||||
rootGQLUserCollection.id,
|
rootGQLUserCollection.id,
|
||||||
ReqType.GQL,
|
ReqType.GQL,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight(rootGQLUserCollection);
|
expect(result).toEqualRight(rootGQLUserCollectionCasted);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully create a new child REST user-collection with valid inputs', async () => {
|
test('should successfully create a new child REST user-collection with valid inputs', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -574,11 +855,13 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
childRESTUserCollection.title,
|
childRESTUserCollection.title,
|
||||||
|
JSON.stringify(childRESTUserCollection.data),
|
||||||
childRESTUserCollection.id,
|
childRESTUserCollection.id,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight(childRESTUserCollection);
|
expect(result).toEqualRight(childRESTUserCollectionCasted);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully create a new child GQL user-collection with valid inputs', async () => {
|
test('should successfully create a new child GQL user-collection with valid inputs', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -594,11 +877,13 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
childGQLUserCollection.title,
|
childGQLUserCollection.title,
|
||||||
|
JSON.stringify(childGQLUserCollection.data),
|
||||||
childGQLUserCollection.id,
|
childGQLUserCollection.id,
|
||||||
ReqType.GQL,
|
ReqType.GQL,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight(childGQLUserCollection);
|
expect(result).toEqualRight(childGQLUserCollectionCasted);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/created" if child REST user-collection is created successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/created" if child REST user-collection is created successfully', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -614,14 +899,16 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
childRESTUserCollection.title,
|
childRESTUserCollection.title,
|
||||||
|
JSON.stringify(childRESTUserCollection.data),
|
||||||
childRESTUserCollection.id,
|
childRESTUserCollection.id,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||||
`user_coll/${user.uid}/created`,
|
`user_coll/${user.uid}/created`,
|
||||||
childRESTUserCollection,
|
childRESTUserCollectionCasted,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/created" if child GQL user-collection is created successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/created" if child GQL user-collection is created successfully', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -637,14 +924,16 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
childGQLUserCollection.title,
|
childGQLUserCollection.title,
|
||||||
|
JSON.stringify(childGQLUserCollection.data),
|
||||||
childGQLUserCollection.id,
|
childGQLUserCollection.id,
|
||||||
ReqType.GQL,
|
ReqType.GQL,
|
||||||
);
|
);
|
||||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||||
`user_coll/${user.uid}/created`,
|
`user_coll/${user.uid}/created`,
|
||||||
childGQLUserCollection,
|
childGQLUserCollectionCasted,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/created" if REST root user-collection is created successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/created" if REST root user-collection is created successfully', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -660,14 +949,16 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
rootRESTUserCollection.title,
|
rootRESTUserCollection.title,
|
||||||
|
JSON.stringify(rootRESTUserCollection.data),
|
||||||
rootRESTUserCollection.id,
|
rootRESTUserCollection.id,
|
||||||
ReqType.REST,
|
ReqType.REST,
|
||||||
);
|
);
|
||||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||||
`user_coll/${user.uid}/created`,
|
`user_coll/${user.uid}/created`,
|
||||||
rootRESTUserCollection,
|
rootRESTUserCollectionCasted,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/created" if GQL root user-collection is created successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/created" if GQL root user-collection is created successfully', async () => {
|
||||||
// isOwnerCheck
|
// isOwnerCheck
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -683,12 +974,13 @@ describe('createUserCollection', () => {
|
|||||||
const result = await userCollectionService.createUserCollection(
|
const result = await userCollectionService.createUserCollection(
|
||||||
user,
|
user,
|
||||||
rootGQLUserCollection.title,
|
rootGQLUserCollection.title,
|
||||||
|
JSON.stringify(rootGQLUserCollection.data),
|
||||||
rootGQLUserCollection.id,
|
rootGQLUserCollection.id,
|
||||||
ReqType.GQL,
|
ReqType.GQL,
|
||||||
);
|
);
|
||||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||||
`user_coll/${user.uid}/created`,
|
`user_coll/${user.uid}/created`,
|
||||||
rootGQLUserCollection,
|
rootGQLUserCollectionCasted,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -732,7 +1024,7 @@ describe('renameUserCollection', () => {
|
|||||||
user.uid,
|
user.uid,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight({
|
expect(result).toEqualRight({
|
||||||
...rootRESTUserCollection,
|
...rootRESTUserCollectionCasted,
|
||||||
title: 'NewTitle',
|
title: 'NewTitle',
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -770,7 +1062,7 @@ describe('renameUserCollection', () => {
|
|||||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||||
`user_coll/${user.uid}/updated`,
|
`user_coll/${user.uid}/updated`,
|
||||||
{
|
{
|
||||||
...rootRESTUserCollection,
|
...rootRESTUserCollectionCasted,
|
||||||
title: 'NewTitle',
|
title: 'NewTitle',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -895,6 +1187,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_NOT_OWNER if user is not owner of collection', async () => {
|
test('should throw USER_NOT_OWNER if user is not owner of collection', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -908,6 +1201,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_NOT_OWNER);
|
expect(result).toEqualLeft(USER_NOT_OWNER);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_DEST_SAME if userCollectionID and destCollectionID is the same', async () => {
|
test('should throw USER_COLL_DEST_SAME if userCollectionID and destCollectionID is the same', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -921,6 +1215,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_DEST_SAME);
|
expect(result).toEqualLeft(USER_COLL_DEST_SAME);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_NOT_FOUND if destCollectionID is invalid', async () => {
|
test('should throw USER_COLL_NOT_FOUND if destCollectionID is invalid', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -938,6 +1233,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_NOT_SAME_TYPE if userCollectionID and destCollectionID are not the same collection type', async () => {
|
test('should throw USER_COLL_NOT_SAME_TYPE if userCollectionID and destCollectionID are not the same collection type', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -955,6 +1251,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_SAME_TYPE);
|
expect(result).toEqualLeft(USER_COLL_NOT_SAME_TYPE);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_NOT_SAME_USER if userCollectionID and destCollectionID are not from the same user', async () => {
|
test('should throw USER_COLL_NOT_SAME_USER if userCollectionID and destCollectionID are not from the same user', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -973,6 +1270,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_SAME_USER);
|
expect(result).toEqualLeft(USER_COLL_NOT_SAME_USER);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_IS_PARENT_COLL if userCollectionID is parent of destCollectionID ', async () => {
|
test('should throw USER_COLL_IS_PARENT_COLL if userCollectionID is parent of destCollectionID ', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -990,6 +1288,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_IS_PARENT_COLL);
|
expect(result).toEqualLeft(USER_COLL_IS_PARENT_COLL);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COL_ALREADY_ROOT when moving root user-collection to root', async () => {
|
test('should throw USER_COL_ALREADY_ROOT when moving root user-collection to root', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1003,6 +1302,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_ALREADY_ROOT);
|
expect(result).toEqualLeft(USER_COLL_ALREADY_ROOT);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully move a child user-collection into root', async () => {
|
test('should successfully move a child user-collection into root', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1030,11 +1330,11 @@ describe('moveUserCollection', () => {
|
|||||||
user.uid,
|
user.uid,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight({
|
expect(result).toEqualRight({
|
||||||
...childRESTUserCollection,
|
...childRESTUserCollectionCasted,
|
||||||
parentID: null,
|
parentID: null,
|
||||||
orderIndex: 2,
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_NOT_FOUND when trying to change parent of collection with invalid collectionID', async () => {
|
test('should throw USER_COLL_NOT_FOUND when trying to change parent of collection with invalid collectionID', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1059,6 +1359,7 @@ describe('moveUserCollection', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/moved" when user-collection is moved to root successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/moved" when user-collection is moved to root successfully', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1088,12 +1389,12 @@ describe('moveUserCollection', () => {
|
|||||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||||
`user_coll/${user.uid}/moved`,
|
`user_coll/${user.uid}/moved`,
|
||||||
{
|
{
|
||||||
...childRESTUserCollection,
|
...childRESTUserCollectionCasted,
|
||||||
parentID: null,
|
parentID: null,
|
||||||
orderIndex: 2,
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully move a root user-collection into a child user-collection', async () => {
|
test('should successfully move a root user-collection into a child user-collection', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1129,11 +1430,11 @@ describe('moveUserCollection', () => {
|
|||||||
user.uid,
|
user.uid,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight({
|
expect(result).toEqualRight({
|
||||||
...rootRESTUserCollection,
|
...rootRESTUserCollectionCasted,
|
||||||
parentID: childRESTUserCollection_2.id,
|
parentID: childRESTUserCollection_2Casted.id,
|
||||||
orderIndex: 1,
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully move a child user-collection into another child user-collection', async () => {
|
test('should successfully move a child user-collection into another child user-collection', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1169,11 +1470,11 @@ describe('moveUserCollection', () => {
|
|||||||
user.uid,
|
user.uid,
|
||||||
);
|
);
|
||||||
expect(result).toEqualRight({
|
expect(result).toEqualRight({
|
||||||
...rootRESTUserCollection,
|
...rootRESTUserCollectionCasted,
|
||||||
parentID: childRESTUserCollection.id,
|
parentID: childRESTUserCollectionCasted.id,
|
||||||
orderIndex: 1,
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/moved" when user-collection is moved into another child user-collection successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/moved" when user-collection is moved into another child user-collection successfully', async () => {
|
||||||
// getUserCollection
|
// getUserCollection
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1211,9 +1512,8 @@ describe('moveUserCollection', () => {
|
|||||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||||
`user_coll/${user.uid}/moved`,
|
`user_coll/${user.uid}/moved`,
|
||||||
{
|
{
|
||||||
...rootRESTUserCollection,
|
...rootRESTUserCollectionCasted,
|
||||||
parentID: childRESTUserCollection.id,
|
parentID: childRESTUserCollectionCasted.id,
|
||||||
orderIndex: 1,
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -1228,6 +1528,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_SAME_NEXT_COLL);
|
expect(result).toEqualLeft(USER_COLL_SAME_NEXT_COLL);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_NOT_FOUND if collectionID is invalid', async () => {
|
test('should throw USER_COLL_NOT_FOUND if collectionID is invalid', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockRejectedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockRejectedValueOnce(
|
||||||
@@ -1241,6 +1542,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
expect(result).toEqualLeft(USER_COLL_NOT_FOUND);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_NOT_OWNER if userUID is of a different user', async () => {
|
test('should throw USER_NOT_OWNER if userUID is of a different user', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1254,6 +1556,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_NOT_OWNER);
|
expect(result).toEqualLeft(USER_NOT_OWNER);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully move the child user-collection to the end of the list', async () => {
|
test('should successfully move the child user-collection to the end of the list', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1272,6 +1575,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualRight(true);
|
expect(result).toEqualRight(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully move the root user-collection to the end of the list', async () => {
|
test('should successfully move the root user-collection to the end of the list', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1290,6 +1594,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualRight(true);
|
expect(result).toEqualRight(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_REORDERING_FAILED when re-ordering operation failed for child user-collection list', async () => {
|
test('should throw USER_COLL_REORDERING_FAILED when re-ordering operation failed for child user-collection list', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1304,6 +1609,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_REORDERING_FAILED);
|
expect(result).toEqualLeft(USER_COLL_REORDERING_FAILED);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/order_updated" when user-collection order is updated successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/order_updated" when user-collection order is updated successfully', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
mockPrisma.userCollection.findUniqueOrThrow.mockResolvedValueOnce(
|
||||||
@@ -1324,13 +1630,14 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
`user_coll/${user.uid}/order_updated`,
|
`user_coll/${user.uid}/order_updated`,
|
||||||
{
|
{
|
||||||
userCollection: {
|
userCollection: {
|
||||||
...childRESTUserCollectionList[4],
|
...childRESTUserCollectionListCasted[4],
|
||||||
userID: childRESTUserCollectionList[4].userUid,
|
userID: childRESTUserCollectionListCasted[4].userID,
|
||||||
},
|
},
|
||||||
nextUserCollection: null,
|
nextUserCollection: null,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_NOT_SAME_USER when collectionID and nextCollectionID do not belong to the same user account', async () => {
|
test('should throw USER_COLL_NOT_SAME_USER when collectionID and nextCollectionID do not belong to the same user account', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow
|
mockPrisma.userCollection.findUniqueOrThrow
|
||||||
@@ -1347,6 +1654,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_SAME_USER);
|
expect(result).toEqualLeft(USER_COLL_NOT_SAME_USER);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_NOT_SAME_TYPE when collectionID and nextCollectionID do not belong to the same collection type', async () => {
|
test('should throw USER_COLL_NOT_SAME_TYPE when collectionID and nextCollectionID do not belong to the same collection type', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow
|
mockPrisma.userCollection.findUniqueOrThrow
|
||||||
@@ -1363,6 +1671,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_NOT_SAME_TYPE);
|
expect(result).toEqualLeft(USER_COLL_NOT_SAME_TYPE);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should successfully update the order of the child user-collection list', async () => {
|
test('should successfully update the order of the child user-collection list', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow
|
mockPrisma.userCollection.findUniqueOrThrow
|
||||||
@@ -1376,6 +1685,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualRight(true);
|
expect(result).toEqualRight(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should throw USER_COLL_REORDERING_FAILED when re-ordering operation failed for child user-collection list', async () => {
|
test('should throw USER_COLL_REORDERING_FAILED when re-ordering operation failed for child user-collection list', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow
|
mockPrisma.userCollection.findUniqueOrThrow
|
||||||
@@ -1391,6 +1701,7 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
);
|
);
|
||||||
expect(result).toEqualLeft(USER_COLL_REORDERING_FAILED);
|
expect(result).toEqualLeft(USER_COLL_REORDERING_FAILED);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should send pubsub message to "user_coll/<userID>/order_updated" when user-collection order is updated successfully', async () => {
|
test('should send pubsub message to "user_coll/<userID>/order_updated" when user-collection order is updated successfully', async () => {
|
||||||
// getUserCollection;
|
// getUserCollection;
|
||||||
mockPrisma.userCollection.findUniqueOrThrow
|
mockPrisma.userCollection.findUniqueOrThrow
|
||||||
@@ -1406,12 +1717,12 @@ describe('updateUserCollectionOrder', () => {
|
|||||||
`user_coll/${user.uid}/order_updated`,
|
`user_coll/${user.uid}/order_updated`,
|
||||||
{
|
{
|
||||||
userCollection: {
|
userCollection: {
|
||||||
...childRESTUserCollectionList[4],
|
...childRESTUserCollectionListCasted[4],
|
||||||
userID: childRESTUserCollectionList[4].userUid,
|
userID: childRESTUserCollectionListCasted[4].userID,
|
||||||
},
|
},
|
||||||
nextUserCollection: {
|
nextUserCollection: {
|
||||||
...childRESTUserCollectionList[2],
|
...childRESTUserCollectionListCasted[2],
|
||||||
userID: childRESTUserCollectionList[2].userUid,
|
userID: childRESTUserCollectionListCasted[2].userID,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -44,7 +44,10 @@ export class UserCollectionService {
|
|||||||
*/
|
*/
|
||||||
private cast(collection: UserCollection) {
|
private cast(collection: UserCollection) {
|
||||||
return <UserCollectionModel>{
|
return <UserCollectionModel>{
|
||||||
...collection,
|
id: collection.id,
|
||||||
|
title: collection.title,
|
||||||
|
type: collection.type,
|
||||||
|
parentID: collection.parentID,
|
||||||
userID: collection.userUid,
|
userID: collection.userUid,
|
||||||
data: !collection.data ? null : JSON.stringify(collection.data),
|
data: !collection.data ? null : JSON.stringify(collection.data),
|
||||||
};
|
};
|
||||||
@@ -226,7 +229,6 @@ export class UserCollectionService {
|
|||||||
const isTitleValid = isValidLength(title, this.TITLE_LENGTH);
|
const isTitleValid = isValidLength(title, this.TITLE_LENGTH);
|
||||||
if (!isTitleValid) return E.left(USER_COLL_SHORT_TITLE);
|
if (!isTitleValid) return E.left(USER_COLL_SHORT_TITLE);
|
||||||
|
|
||||||
console.log(data);
|
|
||||||
const collectionData = stringToJson(data);
|
const collectionData = stringToJson(data);
|
||||||
if (E.isLeft(collectionData)) return E.left(USER_COLL_DATA_INVALID);
|
if (E.isLeft(collectionData)) return E.left(USER_COLL_DATA_INVALID);
|
||||||
|
|
||||||
@@ -1100,8 +1102,10 @@ export class UserCollectionService {
|
|||||||
collectionData = jsonReq.right;
|
collectionData = jsonReq.right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newTitle != null) {
|
||||||
const isTitleValid = isValidLength(newTitle, this.TITLE_LENGTH);
|
const isTitleValid = isValidLength(newTitle, this.TITLE_LENGTH);
|
||||||
if (!isTitleValid) return E.left(USER_COLL_SHORT_TITLE);
|
if (!isTitleValid) return E.left(USER_COLL_SHORT_TITLE);
|
||||||
|
}
|
||||||
|
|
||||||
// Check to see is the collection belongs to the user
|
// Check to see is the collection belongs to the user
|
||||||
const isOwner = await this.isOwnerCheck(userCollectionID, userID);
|
const isOwner = await this.isOwnerCheck(userCollectionID, userID);
|
||||||
|
|||||||
Reference in New Issue
Block a user