Fix tests

This commit is contained in:
Charles Bochet
2023-10-05 22:17:37 +02:00
parent 07450df1a1
commit 4ed77a9c51
6 changed files with 176 additions and 5 deletions

View File

@ -3,7 +3,7 @@ import { Meta } from '@storybook/react';
import { ModalWrapper } from '@/spreadsheet-import/components/ModalWrapper';
import { Providers } from '@/spreadsheet-import/components/Providers';
import { MatchColumnsStep } from '@/spreadsheet-import/steps/components/MatchColumnsStep/MatchColumnsStep';
import { mockRsiValues } from '@/spreadsheet-import/tests/mockRsiValues.test';
import { mockRsiValues } from '@/spreadsheet-import/tests/mockRsiValues';
const meta: Meta<typeof MatchColumnsStep> = {
title: 'Modules/SpreadsheetImport/MatchColumnsStep',

View File

@ -6,7 +6,7 @@ import { SelectHeaderStep } from '@/spreadsheet-import/steps/components/SelectHe
import {
headerSelectionTableFields,
mockRsiValues,
} from '@/spreadsheet-import/tests/mockRsiValues.test';
} from '@/spreadsheet-import/tests/mockRsiValues';
const meta: Meta<typeof SelectHeaderStep> = {
title: 'Modules/SpreadsheetImport/SelectHeaderStep',

View File

@ -3,7 +3,7 @@ import { Meta } from '@storybook/react';
import { ModalWrapper } from '@/spreadsheet-import/components/ModalWrapper';
import { Providers } from '@/spreadsheet-import/components/Providers';
import { SelectSheetStep } from '@/spreadsheet-import/steps/components/SelectSheetStep/SelectSheetStep';
import { mockRsiValues } from '@/spreadsheet-import/tests/mockRsiValues.test';
import { mockRsiValues } from '@/spreadsheet-import/tests/mockRsiValues';
const meta: Meta<typeof SelectSheetStep> = {
title: 'Modules/SpreadsheetImport/SelectSheetStep',

View File

@ -3,7 +3,7 @@ import { Meta } from '@storybook/react';
import { ModalWrapper } from '@/spreadsheet-import/components/ModalWrapper';
import { Providers } from '@/spreadsheet-import/components/Providers';
import { UploadStep } from '@/spreadsheet-import/steps/components/UploadStep/UploadStep';
import { mockRsiValues } from '@/spreadsheet-import/tests/mockRsiValues.test';
import { mockRsiValues } from '@/spreadsheet-import/tests/mockRsiValues';
const meta: Meta<typeof UploadStep> = {
title: 'Modules/SpreadsheetImport/UploadStep',

View File

@ -6,7 +6,7 @@ import { ValidationStep } from '@/spreadsheet-import/steps/components/Validation
import {
editableTableInitialData,
mockRsiValues,
} from '@/spreadsheet-import/tests/mockRsiValues.test';
} from '@/spreadsheet-import/tests/mockRsiValues';
const meta: Meta<typeof ValidationStep> = {
title: 'Modules/SpreadsheetImport/ValidationStep',

View File

@ -0,0 +1,171 @@
import { defaultSpreadsheetImportProps } from '@/spreadsheet-import/provider/components/SpreadsheetImport';
import { Fields, SpreadsheetOptions } from '@/spreadsheet-import/types';
const fields = [
{
icon: null,
label: 'Name',
key: 'name',
alternateMatches: ['first name', 'first'],
fieldType: {
type: 'input',
},
example: 'Stephanie',
validations: [
{
rule: 'required',
errorMessage: 'Name is required',
},
],
},
{
icon: null,
label: 'Surname',
key: 'surname',
alternateMatches: ['second name', 'last name', 'last'],
fieldType: {
type: 'input',
},
example: 'McDonald',
validations: [
{
rule: 'unique',
errorMessage: 'Last name must be unique',
level: 'info',
},
],
description: 'Family / Last name',
},
{
icon: null,
label: 'Age',
key: 'age',
alternateMatches: ['years'],
fieldType: {
type: 'input',
},
example: '23',
validations: [
{
rule: 'regex',
value: '^\\d+$',
errorMessage: 'Age must be a number',
level: 'warning',
},
],
},
{
icon: null,
label: 'Team',
key: 'team',
alternateMatches: ['department'],
fieldType: {
type: 'select',
options: [
{ label: 'Team One', value: 'one' },
{ label: 'Team Two', value: 'two' },
],
},
example: 'Team one',
validations: [
{
rule: 'required',
errorMessage: 'Team is required',
},
],
},
{
icon: null,
label: 'Is manager',
key: 'is_manager',
alternateMatches: ['manages'],
fieldType: {
type: 'checkbox',
booleanMatches: {},
},
example: 'true',
},
] as Fields<string>;
const mockComponentBehaviourForTypes = <T extends string>(
props: SpreadsheetOptions<T>,
) => props;
export const mockRsiValues = mockComponentBehaviourForTypes({
...defaultSpreadsheetImportProps,
fields: fields,
onSubmit: async () => {
return;
},
isOpen: true,
onClose: () => {
return;
},
uploadStepHook: async (data) => {
await new Promise((resolve) => {
setTimeout(() => resolve(data), 4000);
});
return data;
},
selectHeaderStepHook: async (hData, data) => {
await new Promise((resolve) => {
setTimeout(
() =>
resolve({
headerValues: hData,
data,
}),
4000,
);
});
return {
headerValues: hData,
data,
};
},
// Runs after column matching and on entry change, more performant
matchColumnsStepHook: async (data) => {
await new Promise((resolve) => {
setTimeout(() => resolve(data), 4000);
});
return data;
},
});
export const editableTableInitialData = [
{
name: 'Hello',
surname: 'Hello',
age: '123123',
team: 'one',
is_manager: true,
},
{
name: 'Hello',
surname: 'Hello',
age: '12312zsas3',
team: 'two',
is_manager: true,
},
{
name: 'Whooaasdasdawdawdawdiouasdiuasdisdhasd',
surname: 'Hello',
age: '123123',
team: undefined,
is_manager: false,
},
{
name: 'Goodbye',
surname: 'Goodbye',
age: '111',
team: 'two',
is_manager: true,
},
];
export const headerSelectionTableFields = [
['text', 'num', 'select', 'bool'],
['Hello', '123', 'one', 'true'],
['Hello', '123', 'one', 'true'],
['Hello', '123', 'one', 'true'],
];