From 4ea826ed2ce4f1507f817e85cc5139df7ae0a1e6 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Fri, 6 May 2022 20:25:48 +0200 Subject: [PATCH] Migrated ShlinkVersions test to react testing library --- test/common/ShlinkVersions.test.tsx | 37 +++++++++++++---------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/test/common/ShlinkVersions.test.tsx b/test/common/ShlinkVersions.test.tsx index a81b22cd..04273b32 100644 --- a/test/common/ShlinkVersions.test.tsx +++ b/test/common/ShlinkVersions.test.tsx @@ -1,17 +1,10 @@ -import { shallow, ShallowWrapper } from 'enzyme'; +import { render, screen } from '@testing-library/react'; import { Mock } from 'ts-mockery'; import ShlinkVersions, { ShlinkVersionsProps } from '../../src/common/ShlinkVersions'; import { NonReachableServer, NotFoundServer, ReachableServer } from '../../src/servers/data'; describe('', () => { - let wrapper: ShallowWrapper; - const createWrapper = (props: ShlinkVersionsProps) => { - wrapper = shallow(); - - return wrapper; - }; - - afterEach(() => wrapper?.unmount()); + const setUp = (props: ShlinkVersionsProps) => render(); it.each([ ['1.2.3', Mock.of({ version: '1.0.0', printableVersion: 'foo' }), 'v1.2.3', 'foo'], @@ -22,15 +15,19 @@ describe('', () => { ])( 'displays expected versions when selected server is reachable', (clientVersion, selectedServer, expectedClientVersion, expectedServerVersion) => { - const wrapper = createWrapper({ clientVersion, selectedServer }); - const links = wrapper.find('VersionLink'); - const serverLink = links.at(0); - const clientLink = links.at(1); + setUp({ clientVersion, selectedServer }); + const [serverLink, clientLink] = screen.getAllByRole('link'); - expect(serverLink.prop('project')).toEqual('shlink'); - expect(serverLink.prop('version')).toEqual(expectedServerVersion); - expect(clientLink.prop('project')).toEqual('shlink-web-client'); - expect(clientLink.prop('version')).toEqual(expectedClientVersion); + expect(serverLink).toHaveAttribute( + 'href', + `https://github.com/shlinkio/shlink/releases/${expectedServerVersion}`, + ); + expect(serverLink).toHaveTextContent(expectedServerVersion); + expect(clientLink).toHaveAttribute( + 'href', + `https://github.com/shlinkio/shlink-web-client/releases/${expectedClientVersion}`, + ); + expect(clientLink).toHaveTextContent(expectedClientVersion); }, ); @@ -39,10 +36,10 @@ describe('', () => { ['1.2.3', Mock.of({ serverNotFound: true })], ['1.2.3', Mock.of({ serverNotReachable: true })], ])('displays only client version when selected server is not reachable', (clientVersion, selectedServer) => { - const wrapper = createWrapper({ clientVersion, selectedServer }); - const links = wrapper.find('VersionLink'); + setUp({ clientVersion, selectedServer }); + const links = screen.getAllByRole('link'); expect(links).toHaveLength(1); - expect(links.at(0).prop('project')).toEqual('shlink-web-client'); + expect(links[0]).toHaveAttribute('href', 'https://github.com/shlinkio/shlink-web-client/releases/v1.2.3'); }); });