@eureca/eureca-ui
Version:
UI component library of Eureca's user and admin apps
108 lines (100 loc) • 2.35 kB
JavaScript
import React from 'react';
import {
FiLayers,
FiTarget,
FiMic,
FiAward,
FiMinimize2,
FiPaperclip,
FiVideo,
FiEdit,
} from 'react-icons/fi';
import { TrackNavigationSideBar } from '..';
import { render } from '@testing-library/react';
const dataModules = [
{
id: 1,
done: true,
type: 'form',
title: 'Comece por aqui.',
icon: <FiEdit />,
},
{
id: 2,
done: true,
type: 'fit',
title: 'Fit Cultural',
icon: <FiMinimize2 />,
},
{
id: 3,
done: true,
type: 'video',
title: 'Desafio #1 | Conta pra mim...',
icon: <FiVideo />,
},
{
id: 4,
done: false,
type: 'pdf',
title: 'Desafio #2 | Energia limpa para que te quero',
icon: <FiPaperclip />,
},
];
const data = [
{
id: 1,
type: 'online',
title: 'Online',
icon: <FiLayers />,
finished: true,
disabled: false,
modules: dataModules,
},
{
id: 2,
type: 'presencial',
title: 'Presencial',
icon: <FiTarget />,
finished: false,
disabled: false,
modules: dataModules,
},
{
id: 3,
type: 'entrevista',
title: 'Entrevista',
icon: <FiMic />,
finished: true,
disabled: false,
modules: dataModules,
},
{
id: 4,
type: 'resultados',
title: 'Resultados',
icon: <FiAward />,
finished: false,
disabled: true,
modules: dataModules,
},
];
function renderComponent(props) {
return render(<TrackNavigationSideBar {...props} />);
}
describe('Track Navigation Sidebar component', () => {
it('has a sentence matching the expected = Módulo + (index+1): + nome', () => {
const { getAllByText } = renderComponent({ data });
// find 'Módulo' with a regex and expect it to have the complete sentence
const modules = getAllByText(/\bMódulo\b/);
expect(modules[0].textContent).toBe('Módulo 1: Comece por aqui.');
expect(modules[1].textContent).toBe('Módulo 2: Fit Cultural');
expect(modules[2].textContent).toBe('Módulo 3: Desafio #1 | Conta pra mim...');
expect(modules[3].textContent).toBe('Módulo 4: Desafio #2 | Energia limpa para que te quero');
});
it('should render a tag when the item is finished', () => {
const { getAllByText } = renderComponent({ data });
const tags = getAllByText('Encerrada');
expect(tags.length).toBe(2);
});
});