86 lines
2.1 KiB
TypeScript
86 lines
2.1 KiB
TypeScript
import { parseTimelineKey, timelineKey } from './timelines_typed';
|
|
|
|
describe('timelineKey', () => {
|
|
test('returns expected key for account timeline with filters', () => {
|
|
const key = timelineKey({
|
|
type: 'account',
|
|
userId: '123',
|
|
replies: true,
|
|
boosts: false,
|
|
media: true,
|
|
});
|
|
expect(key).toBe('account:123:0110');
|
|
});
|
|
|
|
test('returns expected key for account timeline with tag', () => {
|
|
const key = timelineKey({
|
|
type: 'account',
|
|
userId: '456',
|
|
tagged: 'nature',
|
|
replies: true,
|
|
});
|
|
expect(key).toBe('account:456:0100:nature');
|
|
});
|
|
|
|
test('returns expected key for account timeline with pins', () => {
|
|
const key = timelineKey({
|
|
type: 'account',
|
|
userId: '789',
|
|
pinned: true,
|
|
});
|
|
expect(key).toBe('account:789:0001');
|
|
});
|
|
});
|
|
|
|
describe('parseTimelineKey', () => {
|
|
test('parses account timeline key with filters correctly', () => {
|
|
const params = parseTimelineKey('account:123:1010');
|
|
expect(params).toEqual({
|
|
type: 'account',
|
|
userId: '123',
|
|
boosts: true,
|
|
replies: false,
|
|
media: true,
|
|
pinned: false,
|
|
});
|
|
});
|
|
|
|
test('parses account timeline key with tag correctly', () => {
|
|
const params = parseTimelineKey('account:456:0100:nature');
|
|
expect(params).toEqual({
|
|
type: 'account',
|
|
userId: '456',
|
|
replies: true,
|
|
boosts: false,
|
|
media: false,
|
|
pinned: false,
|
|
tagged: 'nature',
|
|
});
|
|
});
|
|
|
|
test('parses legacy account timeline key with pinned correctly', () => {
|
|
const params = parseTimelineKey('account:789:pinned:nature');
|
|
expect(params).toEqual({
|
|
type: 'account',
|
|
userId: '789',
|
|
replies: false,
|
|
boosts: false,
|
|
media: false,
|
|
pinned: true,
|
|
tagged: 'nature',
|
|
});
|
|
});
|
|
|
|
test('parses legacy account timeline key with media correctly', () => {
|
|
const params = parseTimelineKey('account:789:media');
|
|
expect(params).toEqual({
|
|
type: 'account',
|
|
userId: '789',
|
|
replies: false,
|
|
boosts: false,
|
|
media: true,
|
|
pinned: false,
|
|
});
|
|
});
|
|
});
|