mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-08 05:59:00 +08:00
feat: add filter_case_sensitive url parameter (#3910)
This commit is contained in:
@@ -19,6 +19,20 @@ describe('filter', () => {
|
||||
expect(parsed.items[1].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filter filter_case_sensitive default`, async () => {
|
||||
const response = await request.get('/test/1?filter=description4|title5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(0);
|
||||
});
|
||||
|
||||
it(`filter filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filter=description4|title5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(2);
|
||||
expect(parsed.items[0].title).toBe('Title4');
|
||||
expect(parsed.items[1].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filter_title`, async () => {
|
||||
const response = await request.get('/test/1?filter_title=Description4|Title5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
@@ -26,6 +40,13 @@ describe('filter', () => {
|
||||
expect(parsed.items[0].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filter_title filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filter_title=description4|title5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(1);
|
||||
expect(parsed.items[0].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filter_description`, async () => {
|
||||
const response = await request.get('/test/1?filter_description=Description4|Title5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
@@ -33,6 +54,13 @@ describe('filter', () => {
|
||||
expect(parsed.items[0].title).toBe('Title4');
|
||||
});
|
||||
|
||||
it(`filter_description filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filter_description=description4|title5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(1);
|
||||
expect(parsed.items[0].title).toBe('Title4');
|
||||
});
|
||||
|
||||
it(`filter_author`, async () => {
|
||||
const response = await request.get('/test/1?filter_author=DIYgod4|DIYgod5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
@@ -41,6 +69,20 @@ describe('filter', () => {
|
||||
expect(parsed.items[1].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filter_author filter_case_sensitive default`, async () => {
|
||||
const response = await request.get('/test/1?filter_author=diygod4|diygod5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(0);
|
||||
});
|
||||
|
||||
it(`filter_author filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filter_author=diygod4|diygod5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(2);
|
||||
expect(parsed.items[0].title).toBe('Title4');
|
||||
expect(parsed.items[1].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filter_time`, async () => {
|
||||
const response = await request.get('/test/current_time?filter_time=25');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
@@ -58,6 +100,24 @@ describe('filter', () => {
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
});
|
||||
|
||||
it(`filterout filter_case_sensitive default`, async () => {
|
||||
const response = await request.get('/test/1?filterout=description4|title5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(5);
|
||||
expect(parsed.items[0].title).toBe('Title1');
|
||||
expect(parsed.items[1].title).toBe('Title2');
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
});
|
||||
|
||||
it(`filterout filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filterout=description4|title5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(3);
|
||||
expect(parsed.items[0].title).toBe('Title1');
|
||||
expect(parsed.items[1].title).toBe('Title2');
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
});
|
||||
|
||||
it(`filterout_title`, async () => {
|
||||
const response = await request.get('/test/1?filterout_title=Description4|Title5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
@@ -68,6 +128,16 @@ describe('filter', () => {
|
||||
expect(parsed.items[3].title).toBe('Title4');
|
||||
});
|
||||
|
||||
it(`filterout_title filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filterout_title=description4|title5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(4);
|
||||
expect(parsed.items[0].title).toBe('Title1');
|
||||
expect(parsed.items[1].title).toBe('Title2');
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
expect(parsed.items[3].title).toBe('Title4');
|
||||
});
|
||||
|
||||
it(`filterout_description`, async () => {
|
||||
const response = await request.get('/test/1?filterout_description=Description4|Title5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
@@ -78,6 +148,16 @@ describe('filter', () => {
|
||||
expect(parsed.items[3].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filterout_description filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filterout_description=description4|title5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(4);
|
||||
expect(parsed.items[0].title).toBe('Title1');
|
||||
expect(parsed.items[1].title).toBe('Title2');
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
expect(parsed.items[3].title).toBe('Title5');
|
||||
});
|
||||
|
||||
it(`filterout_author`, async () => {
|
||||
const response = await request.get('/test/1?filterout_author=DIYgod4|DIYgod5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
@@ -86,6 +166,24 @@ describe('filter', () => {
|
||||
expect(parsed.items[1].title).toBe('Title2');
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
});
|
||||
|
||||
it(`filterout_author filter_case_sensitive default`, async () => {
|
||||
const response = await request.get('/test/1?filterout_author=diygod4|diygod5');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(5);
|
||||
expect(parsed.items[0].title).toBe('Title1');
|
||||
expect(parsed.items[1].title).toBe('Title2');
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
});
|
||||
|
||||
it(`filterout_author filter_case_sensitive=false`, async () => {
|
||||
const response = await request.get('/test/1?filterout_author=diygod4|diygod5&filter_case_sensitive=false');
|
||||
const parsed = await parser.parseString(response.text);
|
||||
expect(parsed.items.length).toBe(3);
|
||||
expect(parsed.items[0].title).toBe('Title1');
|
||||
expect(parsed.items[1].title).toBe('Title2');
|
||||
expect(parsed.items[2].title).toBe('Title3');
|
||||
});
|
||||
});
|
||||
|
||||
describe('limit', () => {
|
||||
|
||||
Reference in New Issue
Block a user