add test for when rss:feed in:archive is in the query

This commit is contained in:
Hongbo Wu 2023-09-20 15:57:29 +08:00
parent 851f30fc62
commit c57ead3583
3 changed files with 60 additions and 11 deletions

View file

@ -42,7 +42,6 @@ export interface SearchArgs {
recommendedBy?: string
includeContent?: boolean
noFilters?: NoFilter[]
subscription?: string
}
export interface SearchResultItem {
@ -257,12 +256,6 @@ const buildWhereClause = (
}
)
}
if (args.subscription) {
queryBuilder.andWhere('lower(library_item.subscription) = :subscription', {
subscription: args.subscription.toLowerCase(),
})
}
}
export const searchLibraryItems = async (

View file

@ -40,7 +40,6 @@ export interface SearchFilter {
ids: string[]
recommendedBy?: string
noFilters: NoFilter[]
subscription?: string
}
export enum LabelFilterType {
@ -273,6 +272,12 @@ const parseFieldFilter = (
field: 'item_language',
value,
}
case 'SUBSCRIPTION':
case 'RSS':
return {
field: 'subscription',
value,
}
}
return {
@ -419,11 +424,9 @@ export const parseSearchQuery = (query: string | undefined): SearchFilter => {
dateFilter && result.dateFilters.push(dateFilter)
break
}
// term filters
case 'subscription':
case 'rss':
result.subscription = parseStringValue(keyword.value)
break
// term filters
case 'language': {
const fieldFilter = parseFieldFilter(keyword.keyword, keyword.value)
fieldFilter && result.termFilters.push(fieldFilter)

View file

@ -1135,6 +1135,59 @@ describe('Article API', () => {
expect(res.body.data.search.edges[0].node.id).to.eq(items[0].id)
})
})
context(
'when rss:feed in:archive is in the query',
() => {
let items: LibraryItem[] = []
before(async () => {
keyword = 'rss:feed in:archive'
// Create some test items
items = await createLibraryItems(
[
{
user,
title: 'test title 1',
readableContent: '<p>test 1</p>',
slug: 'test slug 1',
originalUrl: `${url}/test1`,
archivedAt: new Date(),
subscription: 'feed',
},
{
user,
title: 'test title 2',
readableContent: '<p>test 2</p>',
slug: 'test slug 2',
originalUrl: `${url}/test2`,
subscription: 'feed',
},
{
user,
title: 'test title 3',
readableContent: '<p>test 3</p>',
slug: 'test slug 3',
originalUrl: `${url}/test3`,
archivedAt: new Date(),
},
],
user.id
)
})
after(async () => {
await deleteLibraryItems(items, user.id)
})
it('returns archived feed 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)
})
}
)
})
describe('TypeaheadSearch API', () => {