5180 fichiers 38.5 Mo 0 téléchargements 231 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / common / layout / LayoutMiniCameraView.test.tsx
LayoutMiniCameraView.test.tsx 1.5 Ko Télécharger le fichier
import { fireEvent, render, screen } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';
import { LayoutMiniCameraView } from './LayoutMiniCameraView';

const mocks = vi.hoisted(() => ({
    createTextureFromRoom: vi.fn(() => ({ id: 'texture' }))
}));

vi.mock('@octane/renderer', async () => {
    const actual = await vi.importActual<typeof import('@octane/renderer')>('@octane/renderer');

    return {
        ...actual,
        GetRoomEngine: () => ({ createTextureFromRoom: mocks.createTextureFromRoom }),
        OctaneRectangle: class {}
    };
});

vi.mock('../../api', () => ({
    LocalizeText: (key: string) => key,
    PlaySound: vi.fn(),
    SoundNames: { CAMERA_SHUTTER: 'camera-shutter' },
    blitRoomCanvasToViewfinder: vi.fn(),
    getViewfinderRoomFrame: vi.fn(() => ({ x: 3, y: 30, width: 110, height: 110 }))
}));

describe('AIR room thumbnail viewfinder', () => {
    it('submits at most one screenshot while the server request is pending', () => {
        const textureReceiver = vi.fn(() => new Promise<void>(() => undefined));
        render(<LayoutMiniCameraView roomId={42} textureReceiver={textureReceiver} onClose={vi.fn()} />);

        const saveButton = screen.getByRole('button', { name: 'navigator.thumbnail.camera.title.capture' });
        fireEvent.click(saveButton);
        fireEvent.click(saveButton);

        expect(textureReceiver).toHaveBeenCalledTimes(1);
        expect(saveButton).toBeDisabled();
    });
});
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