5180 fichiers 38.5 Mo 0 téléchargements 246 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / hooks / rooms / useRoomKeyboardMovement.test.ts
useRoomKeyboardMovement.test.ts 1.4 Ko Télécharger le fichier
/* @vitest-environment jsdom */
import { afterEach, describe, expect, it } from 'vitest';
import { isTyping } from './useRoomKeyboardMovement';

const focus = (el: HTMLElement) => {
    document.body.appendChild(el);
    el.focus();

    return el;
};

afterEach(() => {
    document.body.innerHTML = '';
});

describe('arrow-key movement guard', () => {
    it('does not treat an empty chat box as typing', () => {
        const input = document.createElement('input');

        input.className = 'swf-chat-input-field';
        focus(input);

        // The chat input takes focus on the first keystroke and keeps it, so
        // this is the state the player is in for the whole session.
        expect(document.activeElement).toBe(input);
        expect(isTyping()).toBe(false);
    });

    it('treats a chat box with a message in it as typing', () => {
        const input = document.createElement('input');

        input.className = 'swf-chat-input-field';
        input.value = 'ciao';
        focus(input);

        expect(isTyping()).toBe(true);
    });

    it('still treats other text fields as typing even when empty', () => {
        const input = document.createElement('input');

        focus(input);

        expect(isTyping()).toBe(true);
    });

    it('reports nothing focused as not typing', () => {
        (document.activeElement as HTMLElement)?.blur();

        expect(isTyping()).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