import { render, screen } from '@testing-library/react'; import React from 'react'; import config from 'app/core/config'; import { ServerStats } from './ServerStats'; import { ServerStat } from './state/apis'; const stats: ServerStat = { activeAdmins: 1, activeEditors: 0, activeSessions: 1, activeUsers: 1, activeViewers: 0, activeDevices: 1, admins: 1, alerts: 5, dashboards: 1599, datasources: 54, editors: 2, orgs: 1, playlists: 1, snapshots: 1, stars: 3, tags: 42, users: 5, viewers: 2, }; jest.mock('./state/apis', () => ({ getServerStats: async () => stats, })); jest.mock('../../core/services/context_srv', () => ({ contextSrv: { hasPermission: () => true, }, })); describe('ServerStats', () => { it('Should render page with stats', async () => { render(); expect(await screen.findByRole('heading', { name: /instance statistics/i })).toBeInTheDocument(); expect(screen.getByText('Dashboards (starred)')).toBeInTheDocument(); expect(screen.getByText('Tags')).toBeInTheDocument(); expect(screen.getByText('Playlists')).toBeInTheDocument(); expect(screen.getByText('Snapshots')).toBeInTheDocument(); expect(screen.getByRole('link', { name: 'Manage dashboards' })).toBeInTheDocument(); expect(screen.getByRole('link', { name: 'Manage data sources' })).toBeInTheDocument(); expect(screen.getByRole('link', { name: 'Manage alerts' })).toBeInTheDocument(); expect(screen.getByRole('link', { name: 'Manage users' })).toBeInTheDocument(); }); it('Should render page with anonymous stats', async () => { config.featureToggles.displayAnonymousStats = true; config.anonymousEnabled = true; config.anonymousDeviceLimit = 10; render(); expect(await screen.findByRole('heading', { name: /instance statistics/i })).toBeInTheDocument(); expect(screen.getByText('Active anonymous devices')).toBeInTheDocument(); }); });