diff --git a/src/core/packages/apps/browser-internal/src/status/components/__snapshots__/metric_tiles.test.tsx.snap b/src/core/packages/apps/browser-internal/src/status/components/__snapshots__/metric_tiles.test.tsx.snap deleted file mode 100644 index cc4e27a6d6388..0000000000000 --- a/src/core/packages/apps/browser-internal/src/status/components/__snapshots__/metric_tiles.test.tsx.snap +++ /dev/null @@ -1,66 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`MetricTile correct displays a byte metric 1`] = ` - -`; - -exports[`MetricTile correct displays a float metric 1`] = ` - -`; - -exports[`MetricTile correct displays a time metric 1`] = ` - -`; - -exports[`MetricTile correct displays an untyped metric 1`] = ` - -`; - -exports[`MetricTile correctly displays a metric with metadata 1`] = ` - -`; diff --git a/src/core/packages/apps/browser-internal/src/status/components/__snapshots__/status_table.test.tsx.snap b/src/core/packages/apps/browser-internal/src/status/components/__snapshots__/status_table.test.tsx.snap deleted file mode 100644 index fe6d97825138d..0000000000000 --- a/src/core/packages/apps/browser-internal/src/status/components/__snapshots__/status_table.test.tsx.snap +++ /dev/null @@ -1,71 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`StatusTable renders when statuses is provided 1`] = ` - - - , - "render": [Function], - "width": "40px", - }, - ] - } - data-test-subj="statusBreakdown" - itemId={[Function]} - itemIdToExpandedRowMap={Object {}} - items={ - Array [ - Object { - "id": "plugin:1", - "original": Object { - "level": "available", - "summary": "Ready", - }, - "state": Object { - "id": "available", - "message": "Ready", - "title": "green", - "uiColor": "success", - }, - }, - ] - } - rowProps={[Function]} - searchFormat="eql" - sorting={ - Object { - "sort": Object { - "direction": "asc", - "field": "state", - }, - } - } - tableLayout="fixed" -/> -`; diff --git a/src/core/packages/apps/browser-internal/src/status/components/metric_tiles.test.tsx b/src/core/packages/apps/browser-internal/src/status/components/metric_tiles.test.tsx index f9ab75e94b233..bc7a749074b84 100644 --- a/src/core/packages/apps/browser-internal/src/status/components/metric_tiles.test.tsx +++ b/src/core/packages/apps/browser-internal/src/status/components/metric_tiles.test.tsx @@ -8,7 +8,7 @@ */ import React from 'react'; -import { shallow } from 'enzyme'; +import { render, screen } from '@testing-library/react'; import { MetricTile } from './metric_tiles'; import { Metric } from '../lib'; @@ -50,27 +50,41 @@ const metricWithMeta: Metric = { describe('MetricTile', () => { it('correct displays an untyped metric', () => { - const component = shallow(); - expect(component).toMatchSnapshot(); + render(); + expect(screen.getByTestId('serverMetric-a-metric')).toBeInTheDocument(); + expect(screen.getByText('A metric')).toBeInTheDocument(); + expect(screen.getByText('1.80')).toBeInTheDocument(); }); - it('correct displays a byte metric', () => { - const component = shallow(); - expect(component).toMatchSnapshot(); + render(); + expect(screen.getByTestId('serverMetric-heap-total')).toBeInTheDocument(); + expect(screen.getByText('Heap Total')).toBeInTheDocument(); + expect(screen.getByText('1.40 GB')).toBeInTheDocument(); }); it('correct displays a float metric', () => { - const component = shallow(); - expect(component).toMatchSnapshot(); + render(); + expect(screen.getByText('Load')).toBeInTheDocument(); + expect(screen.getByText('4.05, 3.37, 3.12')).toBeInTheDocument(); }); it('correct displays a time metric', () => { - const component = shallow(); - expect(component).toMatchSnapshot(); + const { getByTestId } = render(); + const card = getByTestId('serverMetric-response-time-max'); + expect(card).toBeInTheDocument(); + expect(card).toHaveTextContent('Response Time Max'); + expect(card).toHaveTextContent('1234.00 ms'); }); it('correctly displays a metric with metadata', () => { - const component = shallow(); - expect(component).toMatchSnapshot(); + const { getByTestId } = render(); + const card = getByTestId('serverMetric-delay'); + expect(card).toBeInTheDocument(); + expect(card).toHaveTextContent('Delay avg'); + expect(card).toHaveTextContent('1.00 ms'); + expect(card).toHaveTextContent('Percentiles'); + expect(card).toHaveTextContent('50: 1.00 ms; 95: 5.00 ms; 99: 10.00 ms', { + normalizeWhitespace: true, + }); }); }); diff --git a/src/core/packages/apps/browser-internal/src/status/components/status_table.test.tsx b/src/core/packages/apps/browser-internal/src/status/components/status_table.test.tsx index b9949a6decf44..26691bc840b7d 100644 --- a/src/core/packages/apps/browser-internal/src/status/components/status_table.test.tsx +++ b/src/core/packages/apps/browser-internal/src/status/components/status_table.test.tsx @@ -8,7 +8,9 @@ */ import React from 'react'; -import { shallow } from 'enzyme'; +import { mountWithIntl } from '@kbn/test-jest-helpers'; +import { render } from '@testing-library/react'; +import '@testing-library/jest-dom'; import type { StatusInfoServiceStatus as ServiceStatus } from '@kbn/core-status-common'; import { StatusTable } from './status_table'; @@ -27,14 +29,63 @@ const createServiceStatus = (parts: Partial = {}): ServiceStatus describe('StatusTable', () => { it('renders when statuses is provided', () => { - const component = shallow( + const component = mountWithIntl( ); - expect(component).toMatchSnapshot(); + const table = component.find('EuiInMemoryTable'); + expect(table.prop('columns')).toEqual([ + { + align: 'center', + field: 'state', + name: 'Status', + render: expect.any(Function), + sortable: expect.any(Function), + width: '100px', + }, + { + field: 'id', + name: 'ID', + sortable: true, + }, + { + field: 'state', + name: 'Status summary', + render: expect.any(Function), + }, + { + align: 'right', + isExpander: true, + name: expect.any(Object), // Matches the component + render: expect.any(Function), + width: '40px', + }, + ]); + expect(table.prop('items')).toEqual([ + { + id: 'plugin:1', + original: { + level: 'available', + summary: 'Ready', + }, + state: { + id: 'available', + message: 'Ready', + title: 'green', + uiColor: 'success', + }, + }, + ]); + expect(table.prop('sorting')).toEqual({ + sort: { + direction: 'asc', + field: 'state', + }, + }); + expect(table.prop('data-test-subj')).toBe('statusBreakdown'); }); it('renders empty when statuses is not provided', () => { - const component = shallow(); - expect(component.isEmptyRender()).toBe(true); + const { container } = render(); + expect(container.firstChild).toBeNull(); }); });