5180 fichiers 38.5 Mo 0 téléchargements 206 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / api / inventory / TradeNameScam.test.ts
TradeNameScam.test.ts 1.5 Ko Télécharger le fichier
import { describe, expect, it } from 'vitest';
import { findLookalikeNames, isLookalikeName } from './TradeNameScam';

describe('isLookalikeName', () => {
    it('matches confusable characters', () => {
        expect(isLookalikeName('B0b', 'Bob')).toBe(true);
        expect(isLookalikeName('Wil1iam', 'William')).toBe(true);
        expect(isLookalikeName('Ågge', 'Agge')).toBe(true);
    });

    it('matches up to two case-only changes', () => {
        expect(isLookalikeName('bob', 'Bob')).toBe(true);
        expect(isLookalikeName('bOb', 'Bob')).toBe(true);
        expect(isLookalikeName('bOB', 'Bob')).toBe(false);
        expect(isLookalikeName('alex', 'ALEX')).toBe(false);
    });

    it('matches up to two left-out small punctuation marks', () => {
        expect(isLookalikeName('Bob.', 'Bob')).toBe(true);
        expect(isLookalikeName('B.o.b', 'Bob')).toBe(true);
        expect(isLookalikeName('B.o.b.', 'Bob')).toBe(false);
    });

    it('does not match the same name, different names or unusual characters', () => {
        expect(isLookalikeName('Bob', 'Bob')).toBe(false);
        expect(isLookalikeName('Bob', 'Rob')).toBe(false);
        expect(isLookalikeName('Bob', 'Bobby')).toBe(false);
        expect(isLookalikeName('Bob★', 'Bob')).toBe(false);
    });
});

describe('findLookalikeNames', () => {
    it('lists each lookalike once', () => {
        expect(findLookalikeNames('B0b', ['Bob', 'Alice', 'Bob', 'B0b', 'bob'])).toEqual(['Bob', 'bob']);
    });
});
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