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`)
})
})