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