File size: 4,386 Bytes
bf48b89 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | import { describe, expect, it } from 'vitest';
import rss3 from './rss3';
const NETWORK = 'rsshub';
const TAG = 'RSS';
const TYPE = 'feed';
const PLATFORM = 'RSSHub';
describe('rss3', () => {
it('should return UMS Result', () => {
const data = {
item: [
{
link: 'https://example.com/post1',
author: 'Author Name',
description: 'Description of the post',
pubDate: '2024-01-01T00:00:00Z',
category: 'Category Name',
title: 'Post Title',
updated: '2024-01-02T00:00:00Z',
},
{
link: 'https://example.com/post2',
author: 'Anaother Author',
description: 'Another description',
pubDate: '2024-01-03T00:00:00Z',
category: 'Another Category',
title: 'Another Post',
updated: '2024-01-02T00:00:00Z',
},
],
};
const result = rss3(data);
const expected = {
data: [
{
owner: 'example.com',
id: 'https://example.com/post1',
network: NETWORK,
from: 'example.com',
to: 'example.com',
tag: TAG,
type: TYPE,
direction: 'out',
feeValue: '0',
actions: [
{
tag: TAG,
type: TYPE,
platform: PLATFORM,
from: 'example.com',
to: 'example.com',
metadata: {
authors: [{ name: 'Author Name' }],
description: 'Description of the post',
pub_date: '2024-01-01T00:00:00Z',
tags: ['Category Name'],
title: 'Post Title',
},
related_urls: ['https://example.com/post1'],
},
],
timestamp: 1_704_153_600,
},
{
owner: 'example.com',
id: 'https://example.com/post2',
network: NETWORK,
from: 'example.com',
to: 'example.com',
tag: TAG,
type: TYPE,
direction: 'out',
feeValue: '0',
actions: [
{
tag: TAG,
type: TYPE,
platform: PLATFORM,
from: 'example.com',
to: 'example.com',
metadata: {
authors: [{ name: 'Anaother Author' }],
description: 'Another description',
pub_date: '2024-01-03T00:00:00Z',
tags: ['Another Category'],
title: 'Another Post',
},
related_urls: ['https://example.com/post2'],
},
],
timestamp: 1_704_153_600,
},
],
};
expect(result).toStrictEqual(expected);
});
it('falls back to raw link when URL parsing fails', () => {
const data = {
item: [
{
link: 'not-a-url',
author: 'Author',
description: 'Desc',
pubDate: '2024-01-01T00:00:00Z',
category: 'Category',
title: 'Title',
updated: '2024-01-02T00:00:00Z',
},
],
};
const result = rss3(data);
expect(result.data[0].owner).toBe('not-a-url');
expect(result.data[0].from).toBe('not-a-url');
expect(result.data[0].to).toBe('not-a-url');
});
});
|