mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-24 18:24:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /*
 | |
|  * SPDX-FileCopyrightText: syuilo and misskey-project
 | |
|  * SPDX-License-Identifier: AGPL-3.0-only
 | |
|  */
 | |
| 
 | |
| import { isPureRenote, isQuote, isRenote } from '@/misc/is-renote.js';
 | |
| import { MiNote } from '@/models/Note.js';
 | |
| 
 | |
| const base: MiNote = {
 | |
| 	id: 'some-note-id',
 | |
| 	updatedAt: null,
 | |
| 	replyId: null,
 | |
| 	reply: null,
 | |
| 	renoteId: null,
 | |
| 	renote: null,
 | |
| 	threadId: null,
 | |
| 	text: null,
 | |
| 	name: null,
 | |
| 	cw: null,
 | |
| 	userId: 'some-user-id',
 | |
| 	user: null,
 | |
| 	localOnly: false,
 | |
| 	reactionAcceptance: null,
 | |
| 	renoteCount: 0,
 | |
| 	repliesCount: 0,
 | |
| 	clippedCount: 0,
 | |
| 	reactions: {},
 | |
| 	visibility: 'public',
 | |
| 	uri: null,
 | |
| 	url: null,
 | |
| 	fileIds: [],
 | |
| 	attachedFileTypes: [],
 | |
| 	visibleUserIds: [],
 | |
| 	mentions: [],
 | |
| 	mentionedRemoteUsers: '',
 | |
| 	reactionAndUserPairCache: [],
 | |
| 	emojis: [],
 | |
| 	tags: [],
 | |
| 	hasPoll: false,
 | |
| 	channelId: null,
 | |
| 	channel: null,
 | |
| 	userHost: null,
 | |
| 	replyUserId: null,
 | |
| 	replyUserHost: null,
 | |
| 	renoteUserId: null,
 | |
| 	renoteUserHost: null,
 | |
| 	processErrors: [],
 | |
| };
 | |
| 
 | |
| describe('misc:is-renote', () => {
 | |
| 	test('note without renoteId should not be Renote', () => {
 | |
| 		expect(isRenote(base)).toBe(false);
 | |
| 	});
 | |
| 
 | |
| 	test('note with renoteId should be Renote and not be Quote', () => {
 | |
| 		const note: MiNote = { ...base, renoteId: 'some-renote-id' };
 | |
| 		expect(isRenote(note)).toBe(true);
 | |
| 		expect(isQuote(note as any)).toBe(false);
 | |
| 	});
 | |
| 
 | |
| 	test('note with renoteId and text should be Quote', () => {
 | |
| 		const note: MiNote = { ...base, renoteId: 'some-renote-id', text: 'some-text' };
 | |
| 		expect(isRenote(note)).toBe(true);
 | |
| 		expect(isQuote(note as any)).toBe(true);
 | |
| 	});
 | |
| 
 | |
| 	test('note with renoteId and cw should be Quote', () => {
 | |
| 		const note: MiNote = { ...base, renoteId: 'some-renote-id', cw: 'some-cw' };
 | |
| 		expect(isRenote(note)).toBe(true);
 | |
| 		expect(isQuote(note as any)).toBe(true);
 | |
| 	});
 | |
| 
 | |
| 	test('note with renoteId and replyId should be Quote', () => {
 | |
| 		const note: MiNote = { ...base, renoteId: 'some-renote-id', replyId: 'some-reply-id' };
 | |
| 		expect(isRenote(note)).toBe(true);
 | |
| 		expect(isQuote(note as any)).toBe(true);
 | |
| 	});
 | |
| 
 | |
| 	test('note with renoteId and poll should be Quote', () => {
 | |
| 		const note: MiNote = { ...base, renoteId: 'some-renote-id', hasPoll: true };
 | |
| 		expect(isRenote(note)).toBe(true);
 | |
| 		expect(isQuote(note as any)).toBe(true);
 | |
| 	});
 | |
| 
 | |
| 	test('note with renoteId and non-empty fileIds should be Quote', () => {
 | |
| 		const note: MiNote = { ...base, renoteId: 'some-renote-id', fileIds: ['some-file-id'] };
 | |
| 		expect(isRenote(note)).toBe(true);
 | |
| 		expect(isQuote(note as any)).toBe(true);
 | |
| 	});
 | |
| 
 | |
| 	describe('isPureRenote', () => {
 | |
| 		it('should return true when note is pure renote', () => {
 | |
| 			const note = new MiNote({ renoteId: 'abc123', fileIds: [] });
 | |
| 			const result = isPureRenote(note);
 | |
| 			expect(result).toBeTruthy();
 | |
| 		});
 | |
| 
 | |
| 		it('should return false when note is quote', () => {
 | |
| 			const note = new MiNote({ renoteId: 'abc123', text: 'text', fileIds: [] });
 | |
| 			const result = isPureRenote(note);
 | |
| 			expect(result).toBeFalsy();
 | |
| 		});
 | |
| 
 | |
| 		it('should return false when note is not renote', () => {
 | |
| 			const note = new MiNote({ renoteId: null, fileIds: [] });
 | |
| 			const result = isPureRenote(note);
 | |
| 			expect(result).toBeFalsy();
 | |
| 		});
 | |
| 	});
 | |
| });
 |