Skip to content

Commit

Permalink
optimize petFilter and pet form tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dominikzogg committed Apr 14, 2020
1 parent 32812c9 commit cc4b5f5
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 99 deletions.
46 changes: 11 additions & 35 deletions src/__tests__/Component/Form/PetFilterForm.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import PetFilters from '../../../Model/Pet/PetFilters';
test('without error', () => {
const submitPetFilter = (filters: PetFilters) => { };

const defaultPetFilters = new PetFilters({name: 'aa'});
const defaultPetFilters = new PetFilters({ name: 'aa' });

const { container } = render(
<PetFilterForm submitPetFilter={submitPetFilter} defaultPetFilters={defaultPetFilters} />
Expand Down Expand Up @@ -64,11 +64,13 @@ test('with error', () => {
});

test('submit', async () => {
const submitPetFilter = jest.fn((filters: any) => { });
const submitPetFilter = jest.fn((filters: PetFilters) => {
expect(filters.name).toEqual('aa');
});

const defaultPetFilters = new PetFilters({name: 'aa'});
const defaultPetFilters = new PetFilters({ name: 'aa' });

const { container, findByTestId } = render(
const { findByTestId } = render(
<PetFilterForm submitPetFilter={submitPetFilter} defaultPetFilters={defaultPetFilters} />
);

Expand All @@ -78,29 +80,17 @@ test('submit', async () => {

await findByTestId('submit-pet-filter');

expect(container.outerHTML).toBe(`
<div>
<form>
<fieldset>
<div class="form-field">
<label>Name</label>
<input type="text" name="name">
</div>
<button data-testid="submit-pet-filter" class="btn-blue">Filter</button>
</fieldset>
</form>
</div>
`.replace(/\n/g, '').replace(/ {2,}/g, ''));

expect(submitPetFilter.mock.calls.length).toBe(1);
});

test('submit empty', async () => {
const submitPetFilter = jest.fn((filters: any) => { });
const submitPetFilter = jest.fn((filters: PetFilters) => {
expect(filters.name).toBeUndefined();
});

const defaultPetFilters = new PetFilters({name: ''});
const defaultPetFilters = new PetFilters({ name: '' });

const { container, findByTestId } = render(
const { findByTestId } = render(
<PetFilterForm submitPetFilter={submitPetFilter} defaultPetFilters={defaultPetFilters} />
);

Expand All @@ -110,19 +100,5 @@ test('submit empty', async () => {

await findByTestId('submit-pet-filter');

expect(container.outerHTML).toBe(`
<div>
<form>
<fieldset>
<div class="form-field">
<label>Name</label>
<input type="text" name="name">
</div>
<button data-testid="submit-pet-filter" class="btn-blue">Filter</button>
</fieldset>
</form>
</div>
`.replace(/\n/g, '').replace(/ {2,}/g, ''));

expect(submitPetFilter.mock.calls.length).toBe(1);
});
114 changes: 50 additions & 64 deletions src/__tests__/Component/Form/PetForm.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,40 @@ import PetResponse from '../../../Model/Pet/PetResponse';
import UnprocessableEntity from '../../../Model/Error/UnprocessableEntity';
import Vaccination from '../../../Model/Pet/Vaccination';

test('empty', () => {
const submitPet = (pet: PetRequest): void => { };

const { container } = render(
<PetForm submitPet={submitPet} />
);

expect(container.outerHTML).toBe(`
<div>
<form>
<fieldset>
<div class="form-field">
<label>Name</label>
<input type="text" name="name">
</div>
<div class="form-field">
<label>Tag</label>
<input type="text" name="tag">
</div>
<div class="form-field">
<label>Vaccanations</label>
<div>
<button data-testid="add-vaccination" type="button" class="btn-green">Add</button>
</div>
</div>
<button data-testid="submit-pet" class="btn-blue">Save</button>
</fieldset>
</form>
</div>
`.replace(/\n/g, '').replace(/ {2,}/g, ''));
});

test('without error', () => {
const submitPet: { (pet: PetRequest): void; } = (pet: PetRequest): void => { };
const submitPet = (pet: PetRequest): void => { };

const defaultPet = new PetResponse({
id: '4d783b77-eb09-4603-b99b-f590b605eaa9',
Expand Down Expand Up @@ -56,7 +88,7 @@ test('without error', () => {
});

test('with error', () => {
const submitPet: { (pet: PetRequest): any; } = (pet: PetRequest) => { };
const submitPet = (pet: PetRequest): void => { };

const defaultPet = new PetResponse({
id: '4d783b77-eb09-4603-b99b-f590b605eaa9',
Expand Down Expand Up @@ -120,7 +152,7 @@ test('with error', () => {
});

test('add vaccination', async () => {
const submitPet: { (pet: PetRequest): any; } = (pet: PetRequest) => { };
const submitPet = (pet: PetRequest): void => { };

const defaultPet = new PetResponse({
id: '4d783b77-eb09-4603-b99b-f590b605eaa9',
Expand Down Expand Up @@ -181,7 +213,7 @@ test('add vaccination', async () => {
});

test('remove vaccination', async () => {
const submitPet: { (pet: PetRequest): any; } = (pet: PetRequest) => { };
const submitPet = (pet: PetRequest): void => { };

const defaultPet = new PetResponse({
id: '4d783b77-eb09-4603-b99b-f590b605eaa9',
Expand Down Expand Up @@ -228,15 +260,19 @@ test('remove vaccination', async () => {
});

test('submit minimal', async () => {
const submitPet = jest.fn((pet: PetRequest) => { });
const submitPet = jest.fn((pet: PetRequest) => {
expect(pet.name).toBe('Brownie');
expect(pet.tag).toBeUndefined();
});

const defaultPet = new PetResponse({
id: '4d783b77-eb09-4603-b99b-f590b605eaa9',
createdAt: '2005-08-15T15:52:01+00:00',
name: 'Brownie'
name: 'Brownie',
tag: ''
});

const { container, findByTestId } = render(
const { findByTestId } = render(
<PetForm submitPet={submitPet} defaultPet={defaultPet} />
);

Expand All @@ -246,35 +282,16 @@ test('submit minimal', async () => {

await findByTestId('submit-pet');

expect(container.outerHTML).toBe(`
<div>
<form>
<fieldset>
<div class="form-field">
<label>Name</label>
<input type="text" name="name">
</div>
<div class="form-field">
<label>Tag</label>
<input type="text" name="tag">
</div>
<div class="form-field">
<label>Vaccanations</label>
<div>
<button data-testid="add-vaccination" type="button" class="btn-green">Add</button>
</div>
</div>
<button data-testid="submit-pet" class="btn-blue">Save</button>
</fieldset>
</form>
</div>
`.replace(/\n/g, '').replace(/ {2,}/g, ''));

expect(submitPet.mock.calls.length).toBe(1);
});

test('submit maximal', async () => {
const submitPet = jest.fn((pet: PetRequest) => { });
const submitPet = jest.fn((pet: PetRequest) => {
expect(pet.name).toBe('Brownie');
expect(pet.tag).toBe('0001-000');
expect(pet.vaccinations).toHaveLength(1);
expect(pet.vaccinations[0].name).toBe('Rabies');
});

const defaultPet = new PetResponse({
id: '4d783b77-eb09-4603-b99b-f590b605eaa9',
Expand All @@ -286,7 +303,7 @@ test('submit maximal', async () => {
]
});

const { container, findByTestId } = render(
const { findByTestId } = render(
<PetForm submitPet={submitPet} defaultPet={defaultPet} />
);

Expand All @@ -296,36 +313,5 @@ test('submit maximal', async () => {

await findByTestId('submit-pet');

expect(container.outerHTML).toBe(`
<div>
<form>
<fieldset>
<div class="form-field">
<label>Name</label>
<input type="text" name="name">
</div>
<div class="form-field">
<label>Tag</label>
<input type="text" name="tag">
</div>
<div class="form-field">
<label>Vaccanations</label>
<div>
<fieldset>
<div class="form-field">
<label>Name</label>
<input type="text" name="vaccinations[0].name">
</div>
<button data-testid="remove-vaccination-0" type="button" class="btn-red">Remove</button>
</fieldset>
<button data-testid="add-vaccination" type="button" class="btn-green">Add</button>
</div>
</div>
<button data-testid="submit-pet" class="btn-blue">Save</button>
</fieldset>
</form>
</div>
`.replace(/\n/g, '').replace(/ {2,}/g, ''));

expect(submitPet.mock.calls.length).toBe(1);
});

0 comments on commit cc4b5f5

Please sign in to comment.