add test cases

This commit is contained in:
Hongbo Wu
2023-10-23 12:24:19 +08:00
parent 7763a8a939
commit 850569d7e4
2 changed files with 71 additions and 0 deletions

View File

@ -280,3 +280,7 @@ export const getGroupsWhereUserCanPost = async (
.innerJoinAndSelect('members.user', 'user')
.getMany()
}
export const deleteGroup = async (groupId: string) => {
return getRepository(Group).delete(groupId)
}

View File

@ -4,6 +4,7 @@ import chaiString from 'chai-string'
import 'mocha'
import sinon from 'sinon'
import { DeepPartial } from 'typeorm'
import { Group } from '../../src/entity/groups/group'
import { Highlight } from '../../src/entity/highlight'
import { Label } from '../../src/entity/label'
import { LibraryItem, LibraryItemState } from '../../src/entity/library_item'
@ -18,6 +19,7 @@ import {
UploadFileStatus,
} from '../../src/generated/graphql'
import { getRepository } from '../../src/repository'
import { createGroup, deleteGroup } from '../../src/services/groups'
import { createHighlight } from '../../src/services/highlights'
import {
createLabel,
@ -153,6 +155,13 @@ const searchQuery = (keyword = '') => {
highlights {
id
}
labels {
id
name
}
recommendations {
name
}
}
}
pageInfo {
@ -1455,6 +1464,64 @@ describe('Article API', () => {
})
}
)
context('when recommendedBy:* is in the query', () => {
let items: LibraryItem[] = []
let group: Group
before(async () => {
keyword = 'recommendedBy:*'
group = (
await createGroup({
admin: user,
name: 'test group',
})
)[0]
// Create some test items
items = await createLibraryItems(
[
{
user,
title: 'test title 1',
readableContent: '<p>test 1</p>',
slug: 'test slug 1',
originalUrl: `${url}/test1`,
recommendations: [
{
recommender: user,
group,
},
],
},
{
user,
title: 'test title 2',
readableContent: '<p>test 2</p>',
slug: 'test slug 2',
originalUrl: `${url}/test2`,
},
],
user.id
)
})
after(async () => {
await deleteLibraryItems(items, user.id)
await deleteGroup(group.id)
})
it('returns recommended items', async () => {
const res = await graphqlRequest(query, authToken).expect(200)
expect(res.body.data.search.pageInfo.totalCount).to.eq(1)
expect(res.body.data.search.edges[0].node.id).to.eq(items[0].id)
expect(
res.body.data.search.edges[0].node.recommendations[0].name
).to.eq(group.name)
})
})
})
describe('TypeaheadSearch API', () => {