table
unknown
javascript
a year ago
9.1 kB
10
Indexable
import { afterAll, beforeAll, beforeEach, describe, expect, it } from '@jest/globals';
import { fireEvent, screen, waitFor } from '@testing-library/react';
import { setupServer } from 'msw/node';
import React from 'react';
import i18n from 'config/translations/i18n';
import { handlers } from 'api/microservices/admin/reason-for-non-availability/mocks';
import { renderWithProviders } from 'utils/test-utils';
import { StoreDataBuilder } from 'utils/test-utils/StoreDataBuilder';
import ReasonForNonAvailability from '.';
const preloadedState = new StoreDataBuilder().getStoreData();
const server = setupServer(handlers.getByFilter());
beforeAll(() => server.listen());
beforeEach(() => server.resetHandlers());
afterAll(() => server.close());
describe(`src/modules/NewAdministrator/catalogs/ReasonForNonAvailability`, () => {
describe('WHEN render component', () => {
it('THEN render title with number of registry in spanish', async () => {
// Arrange
i18n.changeLanguage('es');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
await waitFor(() => {
expect(screen.getByText('Motivo de no disponibilidad (2)')).toBeInTheDocument();
});
});
it('THEN render title with number of registry in english', async () => {
// Arrange
i18n.changeLanguage('en');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
await waitFor(() => {
expect(screen.getByText('Reason for Non-Availability (2)')).toBeInTheDocument();
});
});
it('THEN render title with number of registry in portuguese', async () => {
// Arrange
i18n.changeLanguage('pt');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
await waitFor(() => {
expect(screen.getByText('Motivo de Indisponibilidade (2)')).toBeInTheDocument();
});
});
describe('WHEN render add button', () => {
it('THEN render text button in spanish', () => {
// Arrange
i18n.changeLanguage('es');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
expect(screen.getByText('Agregar Registro')).toBeInTheDocument();
});
it('THEN render text button in english', () => {
// Arrange
i18n.changeLanguage('en');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
expect(screen.getByText('ADD RECORD')).toBeInTheDocument();
});
it('THEN render text button in portuguese', () => {
// Arrange
i18n.changeLanguage('pt');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
expect(screen.getByText('ADICIONAR REGISTRO')).toBeInTheDocument();
});
describe('WHEN click add button', () => {
it('THEN show modal', async () => {
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.click(screen.getByTestId('add-btn-admin-catalog'));
// Assert
await waitFor(() => {
expect(screen.getByTestId('modal-reason-for-non-availability')).toBeInTheDocument();
});
});
describe('WHEN click close button', () => {
it('THEN close modal', async () => {
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.click(screen.getByTestId('add-btn-admin-catalog'));
await waitFor(() => {
expect(screen.getByTestId('cancel-btn')).toBeInTheDocument();
});
fireEvent.click(screen.getByTestId('cancel-btn'));
// Assert
expect(screen.queryByTestId('modal-reason-for-non-availability')).toBeNull();
});
});
});
});
describe('WHEN mouse over on refresh button', () => {
it('THEN show tooltip in spanish', async () => {
// Arrange
i18n.changeLanguage('es');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.mouseOver(screen.getByTestId('refresh-btn-admin-catalog'));
await waitFor(() => {
expect(screen.getByText('Actualizar')).toBeInTheDocument();
});
});
it('THEN show tooltip in english', async () => {
// Arrange
i18n.changeLanguage('en');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.mouseOver(screen.getByTestId('refresh-btn-admin-catalog'));
await waitFor(() => {
expect(screen.getByText('Refresh')).toBeInTheDocument();
});
});
it('THEN show tooltip in portuguese', async () => {
// Arrange
i18n.changeLanguage('pt');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.mouseOver(screen.getByTestId('refresh-btn-admin-catalog'));
await waitFor(() => {
expect(screen.getByText('Atualizar')).toBeInTheDocument();
});
});
});
describe('WHEN render table', () => {
describe('WHEN render head table', () => {
it('THEN render head labels in spanish', () => {
// Arrange
i18n.changeLanguage('es');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
expect(screen.getByText('Motivo de no disponibilidad')).toBeInTheDocument();
expect(screen.getByText('Estatus')).toBeInTheDocument();
expect(screen.getByText('Opciones')).toBeInTheDocument();
});
it('THEN render head labels in english', () => {
// Arrange
i18n.changeLanguage('en');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
expect(screen.getByText('Reason for Non-Availability')).toBeInTheDocument();
expect(screen.getByText('Status')).toBeInTheDocument();
expect(screen.getByText('Options')).toBeInTheDocument();
});
it('THEN render head labels in portuguese', () => {
// Arrange
i18n.changeLanguage('pt');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
expect(screen.getByText('Motivo de Indisponibilidade')).toBeInTheDocument();
expect(screen.getByText('Status')).toBeInTheDocument();
expect(screen.getByText('Opções')).toBeInTheDocument();
});
});
describe('WHEN render body table', () => {
describe('WHEN render data in table', () => {
it('THEN render records', async () => {
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
// Assert
await waitFor(() => {
expect(screen.getByText('Motivo 1')).toBeInTheDocument();
expect(screen.getByText('Motivo 2')).toBeInTheDocument();
});
});
describe('WHEN moouse over on edit icon', () => {
it('THEN show tooltip in spanish', async () => {
// Arrange
i18n.changeLanguage('es');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.mouseOver(screen.getByTestId('admin-catalog-edit-icon-1'));
// Assert
await waitFor(() => {
expect(screen.getByText('Editar registro')).toBeInTheDocument();
});
});
it('THEN show tooltip in english', async () => {
// Arrange
i18n.changeLanguage('en');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.mouseOver(screen.getByTestId('admin-catalog-edit-icon-1'));
// Assert
await waitFor(() => {
expect(screen.getByText('Edit Record')).toBeInTheDocument();
});
});
it('THEN show tooltip in portuguese', async () => {
// Arrange
i18n.changeLanguage('pt');
// Act
renderWithProviders(<ReasonForNonAvailability />, { preloadedState });
fireEvent.mouseOver(screen.getByTestId('admin-catalog-edit-icon-1'));
// Assert
await waitFor(() => {
expect(screen.getByText('Editar Registro')).toBeInTheDocument();
});
});
});
});
});
});
});
});
Editor is loading...
Leave a Comment