refactor(frontend): fix eslint config
This commit is contained in:
parent
af0436c655
commit
07367c4897
@ -1,6 +1,12 @@
|
||||
import '@testing-library/jest-dom';
|
||||
import { server } from '@mocks/jest/server';
|
||||
|
||||
beforeAll(() => server.listen());
|
||||
afterEach(() => server.resetHandlers());
|
||||
afterAll(() => server.close());
|
||||
beforeAll(() => {
|
||||
server.listen();
|
||||
});
|
||||
afterEach(() => {
|
||||
server.resetHandlers();
|
||||
});
|
||||
afterAll(() => {
|
||||
server.close();
|
||||
});
|
||||
|
||||
@ -2,6 +2,7 @@ import pluginQuery from '@tanstack/eslint-plugin-query';
|
||||
// @ts-expect-error fix package
|
||||
import config from 'eslint-config-ksv741';
|
||||
|
||||
// eslint-disable-next-line import/no-anonymous-default-export
|
||||
export default [
|
||||
...pluginQuery.configs['flat/recommended'],
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
@ -9,14 +10,24 @@ export default [
|
||||
{
|
||||
rules: {
|
||||
'import/no-extraneous-dependencies': ['error', {
|
||||
devDependencies: ['eslint.config.ts', 'rsbuild.config.ts', 'configs/**/*'],
|
||||
devDependencies: [
|
||||
'eslint.config.ts',
|
||||
'rsbuild.config.ts',
|
||||
'configs/**/*',
|
||||
'**/*.test.js',
|
||||
'**/*.test.jsx',
|
||||
'**/*.test.ts',
|
||||
'**/*.test.tsx',
|
||||
'**/__tests__/**',
|
||||
'**/tests/**',
|
||||
'__mocks__/**',
|
||||
],
|
||||
}],
|
||||
'import/no-anonymous-default-export': 'off',
|
||||
'import/order': [
|
||||
'error', {
|
||||
pathGroups: [
|
||||
{
|
||||
pattern: '__spec__/**',
|
||||
pattern: '__mocks__/**',
|
||||
group: 'builtin',
|
||||
position: 'before',
|
||||
},
|
||||
@ -71,13 +82,7 @@ export default [
|
||||
],
|
||||
'@typescript-eslint/strict-boolean-expressions': 'off',
|
||||
'@typescript-eslint/no-floating-promises': 'off',
|
||||
'@typescript-eslint/consistent-return': 'off',
|
||||
'func-style': 'off',
|
||||
'@typescript-eslint/no-confusing-void-expression': 'off',
|
||||
'@typescript-eslint/await-thenable': 'off',
|
||||
'@typescript-eslint/no-misused-promises': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/no-unnecessary-condition': 'off',
|
||||
'jsx-a11y/click-events-have-key-events': 'off',
|
||||
'jsx-a11y/no-static-element-interactions': 'off',
|
||||
'jsx-a11y/no-noninteractive-element-interactions': 'off',
|
||||
@ -86,23 +91,4 @@ export default [
|
||||
{
|
||||
ignores: ['./src/shared/api/schema.ts'],
|
||||
},
|
||||
{
|
||||
files: [
|
||||
'**/*.test.js',
|
||||
'**/*.test.jsx',
|
||||
'**/*.test.ts',
|
||||
'**/*.test.tsx',
|
||||
'**/__tests__/**',
|
||||
'**/tests/**',
|
||||
'__mocks__/**',
|
||||
],
|
||||
rules: {
|
||||
'import/no-extraneous-dependencies': [
|
||||
'error',
|
||||
{ devDependencies: true }, // в тестах можно
|
||||
],
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
@ -37,8 +37,12 @@ describe('Test AddExpenseItemForm', () => {
|
||||
});
|
||||
|
||||
test.each([
|
||||
['enabled', {}, (el: HTMLElement) => expect(el).toBeEnabled()],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => expect(el).toBeDisabled()],
|
||||
['enabled', {}, (el: HTMLElement) => {
|
||||
expect(el).toBeEnabled();
|
||||
}],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => {
|
||||
expect(el).toBeDisabled();
|
||||
}],
|
||||
])('should render fields %s', (_state, options, assertion) => {
|
||||
const { onSubmit, ...formElems } = renderForm(options);
|
||||
Object.values(formElems).forEach(assertion);
|
||||
|
||||
@ -72,8 +72,12 @@ describe('Test EditExpenseItemForm', () => {
|
||||
});
|
||||
|
||||
test.each([
|
||||
['enabled', {}, (el: HTMLElement) => expect(el).toBeEnabled()],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => expect(el).toBeDisabled()],
|
||||
['enabled', {}, (el: HTMLElement) => {
|
||||
expect(el).toBeEnabled();
|
||||
}],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => {
|
||||
expect(el).toBeDisabled();
|
||||
}],
|
||||
])('should render fields %s', (_state, options, assertion) => {
|
||||
const { onSubmit, ...formElems } = renderForm(options);
|
||||
Object.values(formElems).forEach(assertion);
|
||||
|
||||
@ -36,6 +36,7 @@ const EditExpenseItemForm: FC<EditExpenseItemFormProps> = (props) => {
|
||||
...formProps
|
||||
} = props;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
||||
const onFormSubmitHandler: FormEventHandler<HTMLFormElement> = async (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
|
||||
@ -29,8 +29,12 @@ describe('Test AddExpensesListForm', () => {
|
||||
});
|
||||
|
||||
test.each([
|
||||
['enabled', {}, (el: HTMLElement) => expect(el).toBeEnabled()],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => expect(el).toBeDisabled()],
|
||||
['enabled', {}, (el: HTMLElement) => {
|
||||
expect(el).toBeEnabled();
|
||||
}],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => {
|
||||
expect(el).toBeDisabled();
|
||||
}],
|
||||
])('should render fields %s', (_state, options, assertion) => {
|
||||
const { onSubmit, ...formElems } = renderForm(options);
|
||||
Object.values(formElems).forEach(assertion);
|
||||
|
||||
@ -37,7 +37,7 @@ const AddExpensesListForm: FC<AddExpenseListFormProps> = (props) => {
|
||||
const title = formData.get('title');
|
||||
|
||||
if (typeof title === 'string') {
|
||||
onSubmit?.({
|
||||
onSubmit({
|
||||
title,
|
||||
});
|
||||
}
|
||||
|
||||
@ -46,14 +46,14 @@ const DeleteExpensesListForm: FC<DeleteExpenseListFormProps> = (props) => {
|
||||
</p>
|
||||
|
||||
{
|
||||
list?.items && list?.items?.length > 0
|
||||
list.items && list.items.length > 0
|
||||
? (
|
||||
<p>
|
||||
В нем содержится
|
||||
{' '}
|
||||
|
||||
<b>
|
||||
{list.items?.length}
|
||||
{list.items.length}
|
||||
</b>
|
||||
|
||||
{' '}
|
||||
|
||||
@ -51,8 +51,12 @@ describe('Test EditExpensesListForm', () => {
|
||||
});
|
||||
|
||||
test.each([
|
||||
['enabled', {}, (el: HTMLElement) => expect(el).toBeEnabled()],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => expect(el).toBeDisabled()],
|
||||
['enabled', {}, (el: HTMLElement) => {
|
||||
expect(el).toBeEnabled();
|
||||
}],
|
||||
['disabled', { disabled: true }, (el: HTMLElement) => {
|
||||
expect(el).toBeDisabled();
|
||||
}],
|
||||
])('should render fields %s', (_state, options, assertion) => {
|
||||
const { onSubmit, ...formElems } = renderForm(options);
|
||||
Object.values(formElems).forEach(assertion);
|
||||
|
||||
@ -15,7 +15,9 @@ export const useAddExpenseItemButton = (args: UseAddExpenseItemButtonArgs) => {
|
||||
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
const { mutateAsync: addExpenseItemMutation, isPending } = useAddExpenseItem({ id: listId });
|
||||
const onCloseModalHandler = () => setIsOpen(false);
|
||||
const onCloseModalHandler = () => {
|
||||
setIsOpen(false);
|
||||
};
|
||||
|
||||
const onClickHandler: MouseEventHandler<HTMLButtonElement> = (event) => {
|
||||
setIsOpen(true);
|
||||
|
||||
@ -13,7 +13,9 @@ export const useDeleteExpenseItemButton = (args: UseDeleteExpenseItemButtonArgs)
|
||||
const { item, onClick } = args;
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
const onCloseModalHandler = () => setIsOpen(false);
|
||||
const onCloseModalHandler = () => {
|
||||
setIsOpen(false);
|
||||
};
|
||||
const onClickHandler: MouseEventHandler<HTMLButtonElement> = (event) => {
|
||||
setIsOpen(true);
|
||||
onClick?.(event);
|
||||
|
||||
@ -17,7 +17,9 @@ export const useEditExpenseItemButton = (args: UseAddExpenseItemButtonArgs) => {
|
||||
id: item.id,
|
||||
listId: item.expenseListId,
|
||||
});
|
||||
const onCloseModalHandler = () => setIsOpen(false);
|
||||
const onCloseModalHandler = () => {
|
||||
setIsOpen(false);
|
||||
};
|
||||
|
||||
const onClickHandler: MouseEventHandler<HTMLButtonElement> = (event) => {
|
||||
setIsOpen(true);
|
||||
|
||||
@ -7,7 +7,7 @@ const rootEl = document.getElementById('root');
|
||||
|
||||
async function enableMocking() {
|
||||
if (process.env.PUBLIC_ENABLE_MOCKING !== 'true') {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
const { worker } = await import('@mocks/browser/msw');
|
||||
|
||||
@ -9,7 +9,7 @@ import classes from './ExpensesTable.module.css';
|
||||
const ExpensesTable = () => {
|
||||
const { data: expensesList, isPending, isLoading } = useExpensesList();
|
||||
|
||||
if (isPending || isLoading) {
|
||||
if (isLoading || isPending) {
|
||||
return (
|
||||
<span>Loading...</span>
|
||||
);
|
||||
@ -49,7 +49,7 @@ const ExpensesTable = () => {
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{expense.items?.length || 0}
|
||||
{expense.items?.length ?? 0}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user