Skip to content

Commit 90ec3bf

Browse files
committed
Enhance test coverage
1 parent 6dee52a commit 90ec3bf

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/components/previews/TablePreview.test.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,17 @@ describe('TablePreview', () => {
6262
validation: [
6363
{ column: 'email', row: 0, message: 'Contains duplicates' },
6464
{ column: 'email', row: 1, message: 'Contains duplicates' },
65+
{ column: 'email', row: 1, message: 'No example address, please' },
6566
{ column: 'forename', row: 1, message: 'Forename is required' }
6667
]
6768
});
6869
const tableBody = container.querySelector('tbody');
6970

7071
expect(tableBody?.children[1].children[0]).toHaveClass('error');
7172
expect(tableBody?.children[1].children[0]).toHaveAttribute('title', 'Forename is required');
73+
expect(tableBody?.children[1].children[2]).toHaveAttribute(
74+
'title',
75+
'Contains duplicates;No example address, please'
76+
);
7277
});
7378
});

src/components/previews/TablePreview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const TablePreview: React.FC<TablePreviewProps> = (props) => {
1616

1717
const Cell: React.FC<{ columnKey: string; rowIndex: number }> = (props) => {
1818
const errors = getCellValidationError(props.columnKey, props.rowIndex);
19-
const messages = errors?.map((e) => e?.message).join(';');
19+
const messages = errors?.map((e) => e.message).join(';');
2020

2121
return (
2222
<td className={messages ? 'error' : ''} title={messages}>

src/middlewares/validatorMiddleware.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ describe('validatorMiddleware', () => {
1313
const middleware = createValidatorMiddleware<TestType>();
1414
const parsed: TestType[] = [
1515
{ forename: 'Hans', surname: 'Muster', email: '[email protected]' },
16-
{ forename: 'Heidi', surname: 'Muster', email: '[email protected]' }
16+
{ forename: 'Heidi', surname: 'Muster', email: '[email protected]' },
17+
{ forename: 'Joe', surname: 'Doe', email: '[email protected]' }
1718
];
1819

1920
it('should return an empty array if there are no errors', () => {
@@ -53,7 +54,7 @@ describe('validatorMiddleware', () => {
5354

5455
expect(dispatchMock).toBeCalledWith({
5556
type: 'setValidation',
56-
errors: [{ column: 'forename', row: 1, message: "No 'Hans' allowed" }]
57+
errors: [{ column: 'forename', row: 0, message: "No 'Hans' allowed" }]
5758
});
5859
});
5960
});

src/middlewares/validatorMiddleware.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const validateColumn = <T>(key: keyof T, data: T[keyof T][], rules?: Rule[]): Va
2828
} else if (typeof (r.constraint as CallbackConstraint).callback === 'function') {
2929
const callback = (r.constraint as CallbackConstraint).callback;
3030
values.forEach((v, i) => {
31-
if (!callback(v)) {
31+
if (callback(v)) {
3232
errors.push({ column: key, row: i, message: r.message });
3333
}
3434
});

0 commit comments

Comments
 (0)