Setting up Unit Testing using jest

This commit is contained in:
SinusFox
2024-09-24 17:39:06 +02:00
parent 9193effdfa
commit 85715d439d
6 changed files with 4653 additions and 2 deletions
+8 -1
View File
@@ -1,3 +1,10 @@
{ {
"extends": ["next/core-web-vitals", "next/typescript"] "extends": ["next/core-web-vitals", "next/typescript"],
"rules": {
"react/no-unescaped-entities": "off",
"@next/next/no-page-custom-font": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-vars": "off",
"prefer-const": "off"
}
} }
+26
View File
@@ -0,0 +1,26 @@
name: Run Tests
on:
push:
branches: ["main"]
workflow_dispatch:
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
+20
View File
@@ -0,0 +1,20 @@
/** @type {import('jest').Config} */
const nextJest = require('next/jest');
const createJestConfig = nextJest({
dir: './',
});
const customJestConfig = {
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
moduleNameMapper: {
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
},
transform: {
'^.+\\.(ts|tsx)$': 'ts-jest',
},
moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx', 'json', 'node'],
};
module.exports = createJestConfig(customJestConfig);
+1
View File
@@ -0,0 +1 @@
import '@testing-library/jest-dom';
+4588
View File
File diff suppressed because it is too large Load Diff
+10 -1
View File
@@ -6,7 +6,9 @@
"dev": "next dev", "dev": "next dev",
"build": "next build", "build": "next build",
"start": "next start", "start": "next start",
"lint": "next lint" "lint": "next lint",
"test": "jest",
"test:watch": "jest --watch"
}, },
"dependencies": { "dependencies": {
"next": "14.2.11", "next": "14.2.11",
@@ -15,13 +17,20 @@
"reactjs-popup": "^2.0.6" "reactjs-popup": "^2.0.6"
}, },
"devDependencies": { "devDependencies": {
"@testing-library/jest-dom": "^6.5.0",
"@testing-library/react": "^16.0.1",
"@testing-library/user-event": "^14.5.2",
"@types/jest": "^29.5.13",
"@types/node": "^20", "@types/node": "^20",
"@types/react": "^18", "@types/react": "^18",
"@types/react-dom": "^18", "@types/react-dom": "^18",
"eslint": "^8", "eslint": "^8",
"eslint-config-next": "14.2.11", "eslint-config-next": "14.2.11",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"postcss": "^8", "postcss": "^8",
"tailwindcss": "^3.4.1", "tailwindcss": "^3.4.1",
"ts-jest": "^29.2.5",
"typescript": "^5" "typescript": "^5"
} }
} }