import * as React from 'react' import {render, screen} from '@testing-library/react' import {SplitLineBreaks, SpacesToNonBreaking, LineBreaksToSpaces} from '..' describe(`SplitLineBreaks`, () => { it(`works`, () => { const {rerender} = render( {(items) => ( <> {items.length} {items[1]} {items[2]} )} ) expect(screen.getByText(/two/i)).toBeInTheDocument() expect(screen.getByText(/3/i)).toBeInTheDocument() expect(screen.getByText(/three/i)).toBeInTheDocument() rerender( {(items) => ( <> {items.length} {items[1]} {items[2]} )} ) expect(screen.queryByText(/three/i)).not.toBeInTheDocument() }) }) describe(`SpacesToNonBreaking`, () => { it(`works`, () => { const {rerender} = render( {(items) => {items}} ) // this is a bad test because Testing Library is "normalising" the text which seem to mean in this case that non-breaking spaces are being changed back to regular spaces expect(screen.getByText(/1/i)).toHaveTextContent(`1 3456789`) rerender( {(items) => {items}} ) // specifying max=8 means that the text will be truncated to 8 characters expect(screen.getByText(/1/i)).toHaveTextContent(`1 345678`) }) }) describe(`LineBreaksToSpaces`, () => { it(`works`, () => { render({(items) => {items}}) expect(screen.getByText(/two/i)).toHaveTextContent(`one two three`) }) })