/* * SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import type { UserInfo } from '../../../api/users/types' import { mockI18n } from '../../../test-utils/mock-i18n' import { UserAvatarForUser } from './user-avatar-for-user' import { render } from '@testing-library/react' import { UserAvatar } from './user-avatar' jest.mock('@dicebear/identicon', () => null) jest.mock('@dicebear/core', () => ({ createAvatar: jest.fn(() => ({ toDataUriSync: jest.fn(() => 'data:image/x-other,identicon-mock') })) })) describe('UserAvatar', () => { const user: UserInfo = { username: 'boatface', displayName: 'Boaty McBoatFace', photoUrl: 'https://example.com/test.png' } beforeEach(async () => { await mockI18n() }) it('renders the user avatar correctly', () => { const view = render() expect(view.container).toMatchSnapshot() }) describe('renders the user avatar in size', () => { it('sm', () => { const view = render() expect(view.container).toMatchSnapshot() }) it('lg', () => { const view = render() expect(view.container).toMatchSnapshot() }) }) it('adds additionalClasses props to wrapping span', () => { const view = render() expect(view.container).toMatchSnapshot() }) it('does not show names if showName prop is false', () => { const view = render() expect(view.container).toMatchSnapshot() }) it('uses identicon when no photoUrl is given', () => { const view = render() expect(view.container).toMatchSnapshot() }) it('uses identicon when empty photoUrl is given', () => { const view = render() expect(view.container).toMatchSnapshot() }) })