diff --git a/.eslintrc.js b/.eslintrc.js
index e7a6371..8fa6fb4 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -3,6 +3,9 @@ module.exports = {
ecmaVersion: 2021,
sourceType: 'module'
},
+ env: {
+ browser: true,
+ },
plugins: [
'react',
'react-hooks'
@@ -13,6 +16,9 @@ module.exports = {
'plugin:react/jsx-runtime',
'plugin:react-hooks/recommended'
],
+ rules: {
+ 'react/no-unescaped-entities': 0
+ },
settings: {
react: {
version: 'detect'
diff --git a/README.md b/README.md
index a3565bf..5ce481f 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@ Une fois le dépôt cloné :
npm install # Installe les dépendances
npm run build # Construit l'application
npm run dev # Démarre le serveur de développement
+npm run test # Lance les tests
```
## Contribuer
diff --git a/package.json b/package.json
index 9d474b7..488052a 100644
--- a/package.json
+++ b/package.json
@@ -28,5 +28,8 @@
"test": "vitest",
"dev": "vite",
"lint": "eslint src/**/*.{js,jsx}"
+ },
+ "devDependencies": {
+ "jsdom": "^21.1.0"
}
}
diff --git a/src/App.test.js b/src/App.test.js
deleted file mode 100644
index 1f03afe..0000000
--- a/src/App.test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { render, screen } from '@testing-library/react';
-import App from './App';
-
-test('renders learn react link', () => {
- render();
- const linkElement = screen.getByText(/learn react/i);
- expect(linkElement).toBeInTheDocument();
-});
diff --git a/src/components/login/Login.js b/src/components/login/Login.js
index 99a47ad..c889bba 100644
--- a/src/components/login/Login.js
+++ b/src/components/login/Login.js
@@ -1,4 +1,3 @@
-import React from 'react'
import '../../css/login.css'
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
diff --git a/src/components/main/Main.js b/src/components/main/Main.js
index 447f04a..24ac26d 100644
--- a/src/components/main/Main.js
+++ b/src/components/main/Main.js
@@ -1,4 +1,3 @@
-import React from 'react'
import '../../css/main.css'
export function MainPage() {
diff --git a/src/components/register/Register.js b/src/components/register/Register.js
index b0cdf54..22eb548 100644
--- a/src/components/register/Register.js
+++ b/src/components/register/Register.js
@@ -1,4 +1,3 @@
-import React from 'react'
import '../../css/login.css'
import { library } from '@fortawesome/fontawesome-svg-core';
diff --git a/test/App.test.jsx b/test/App.test.jsx
new file mode 100644
index 0000000..84f6fbd
--- /dev/null
+++ b/test/App.test.jsx
@@ -0,0 +1,12 @@
+import { render } from '@testing-library/react';
+import { describe, test, expect } from 'vitest';
+
+const App = () =>
learn react
+
+describe('Application', function () {
+ test('renders learn react link', () => {
+ const { getByText } = render();
+ const linkElement = getByText(/learn react/i);
+ expect(linkElement).toBeInTheDocument();
+ });
+});
diff --git a/test/setupTests.js b/test/setupTests.js
new file mode 100644
index 0000000..c44951a
--- /dev/null
+++ b/test/setupTests.js
@@ -0,0 +1 @@
+import '@testing-library/jest-dom'
diff --git a/vite.config.js b/vite.config.js
index 1d0cbaf..1eb2b0b 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -6,7 +6,7 @@ import fs from 'fs/promises';
export default defineConfig({
esbuild: {
loader: "jsx",
- include: /src\/.*\.jsx?$/,
+ include: /(src|test)\/.*\.jsx?$/,
exclude: [],
},
build: {
@@ -15,19 +15,18 @@ export default defineConfig({
test: {
globals: true,
environment: 'jsdom',
+ setupFiles: './test/setupTests.js'
},
- plugins: [react({
- loader: { '.js': 'jsx' },
- })],
+ plugins: [react()],
optimizeDeps: {
esbuildOptions: {
plugins: [
{
- name: "load-js-files-as-jsx",
+ name: 'load-js-files-as-jsx',
setup(build) {
- build.onLoad({ filter: /src\/.*\.js$/ }, async (args) => ({
- loader: "jsx",
- contents: await fs.readFile(args.path, "utf8"),
+ build.onLoad({ filter: /(src|test)\/.*\.js$/ }, async (args) => ({
+ loader: 'jsx',
+ contents: await fs.readFile(args.path, 'utf8'),
}));
},
},