5180 fichiers 38.5 Mo 0 téléchargements 391 vues mis à jour il y a 7 heures ui
nitro-v36-with-renderer-v36 / src / components / friends / views / messenger / FriendsMessengerView.avatar-cascade.test.ts
FriendsMessengerView.avatar-cascade.test.ts 1.8 Ko Télécharger le fichier
/* @vitest-environment jsdom */

import { readFileSync } from 'node:fs';
import { join } from 'node:path';
import postcss from 'postcss';
import postcssNested from 'postcss-nested';
import { beforeAll, describe, expect, it } from 'vitest';

const source = readFileSync(join(process.cwd(), 'src/components/friends/views/messenger/FriendsMessengerView.css'), 'utf8');

beforeAll(async () => {
    const result = await postcss([postcssNested]).process(source, { from: undefined });
    const relevantRules: string[] = [];

    result.root.walkRules((rule) => {
        if (rule.selector.includes('.messenger-window')) relevantRules.push(rule.toString());
    });

    const style = document.createElement('style');

    style.textContent = relevantRules.join('\n');
    document.head.appendChild(style);
});

const computedAvatarStyle = (containerClass: string, size: number) => {
    const messenger = document.createElement('div');
    const container = document.createElement('div');
    const avatar = document.createElement('div');

    messenger.className = 'messenger-window';
    container.className = containerClass;
    avatar.className = 'avatar-image compact-head';
    avatar.style.backgroundSize = `${size}px ${size}px`;
    avatar.style.backgroundPosition = 'center';
    container.appendChild(avatar);
    messenger.appendChild(container);
    document.body.appendChild(messenger);

    return getComputedStyle(avatar);
};

describe('Messenger compact avatar cascade', () => {
    it('keeps conversation-tab heads centered at their cropped size', () => {
        const style = computedAvatarStyle('messenger-avatar-tab', 35);

        expect(style.width).toBe('35px');
        expect(style.height).toBe('35px');
        expect(style.backgroundSize).toBe('35px 35px');
        expect(['center center', '50% 50%']).toContain(style.backgroundPosition);
    });

});
15Sujets
1Dépôts
20Membres
3En 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