5180 fichiers 38.5 Mo 0 téléchargements 234 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / api / mentions / mentionTokens.test.ts
mentionTokens.test.ts 1.4 Ko Télécharger le fichier
import { describe, expect, it } from 'vitest';
import { classifyMentionToken, MENTION_ROOM_ALIASES, tokenIsMention } from './mentionTokens';

describe('classifyMentionToken', () => {
    it('returns "self" for the own nick', () => {
        expect(classifyMentionToken('@Bob', 'Bob')).toBe('self');
    });

    it('returns "self" for a broadcast alias', () => {
        expect(classifyMentionToken('@all', 'Bob')).toBe('self');

        for (const alias of MENTION_ROOM_ALIASES) {
            expect(classifyMentionToken(`@${alias}`, 'Bob')).toBe('self');
        }
    });

    it('returns "tag" for any other @user', () => {
        expect(classifyMentionToken('@Charlie', 'Bob')).toBe('tag');
    });

    it('matches the own nick case-insensitively', () => {
        expect(classifyMentionToken('@bOb', 'BOB')).toBe('self');
    });

    it('returns "" for non-mentions and a bare @', () => {
        expect(classifyMentionToken('@', 'Bob')).toBe('');
        expect(classifyMentionToken('nothing', 'Bob')).toBe('');
    });

    it('still tags others when the own username is empty', () => {
        expect(classifyMentionToken('@Charlie', '')).toBe('tag');
    });
});

describe('tokenIsMention', () => {
    it('is true only for self/alias mentions', () => {
        expect(tokenIsMention('@Bob', 'Bob')).toBe(true);
        expect(tokenIsMention('@everyone', 'Bob')).toBe(true);
        expect(tokenIsMention('@Charlie', 'Bob')).toBe(false);
    });
});
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser