diff --git a/microservices/navigation_qcm/jest.config.js b/microservices/navigation_qcm/jest.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..da0ba537dd94fa7a8041b15ec2e009d9cab8af11
--- /dev/null
+++ b/microservices/navigation_qcm/jest.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+    transform: {'^.+\\.ts?$': 'ts-jest'},
+    testEnvironment: 'node',
+    testRegex: '/tests/.*\\.(test|spec)?\\.(ts|tsx)$',
+    moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
+};
\ No newline at end of file
diff --git a/microservices/navigation_qcm/package.json b/microservices/navigation_qcm/package.json
index 886f633de8a2d49628ef5e350831d1e819b92cea..53a72526f6baf8fd72b444d236fa7227fd80c63f 100644
--- a/microservices/navigation_qcm/package.json
+++ b/microservices/navigation_qcm/package.json
@@ -19,7 +19,8 @@
         "database:deploy:prod": "npm run database:migrate:deploy && npm run database:seed:prod",
         "start:dev": "npm run prisma:generate && npx dotenvx run -- npx nodemon src/app.ts",
         "start:prod": "npm run build && npx dotenvx run -- NODE_ENV=production npx node dist/src/app.js",
-        "clean": "rm -R dist/*"
+        "clean": "rm -R dist/*",
+        "test": "jest"
     },
     "prisma": {
         "seed": "node dist/prisma/seed"
@@ -45,14 +46,17 @@
         "@types/bcryptjs": "^2.4.6",
         "@types/cors": "^2.8.17",
         "@types/express": "^4.17.21",
+        "@types/jest": "^29.5.14",
         "@types/jsonwebtoken": "^9.0.6",
         "@types/morgan": "^1.9.9",
         "@types/multer": "^1.4.11",
         "@types/node": "^20.12.7",
+        "jest": "^29.7.0",
         "node": "^20.12.2",
         "nodemon": "^3.1.0",
         "npm": "^10.5.2",
         "prisma": "^6.3.1",
+        "ts-jest": "^29.2.6",
         "ts-node": "^10.9.2",
         "tsx": "^4.7.2",
         "typescript": "^5.4.5"
diff --git a/microservices/navigation_qcm/src/express/Server.ts b/microservices/navigation_qcm/src/express/Server.ts
index 48ced0efafd6fa7c9aefc892bae251c06279543c..04365f5c4864fcf6ed89f8a9f43ddf0420e2b892 100644
--- a/microservices/navigation_qcm/src/express/Server.ts
+++ b/microservices/navigation_qcm/src/express/Server.ts
@@ -101,6 +101,11 @@ export class Server {
         
         this.server = http.createServer(this.backend);
     }
+
+    public get app() {
+        return this.backend;
+    }
+
     run() {
         this.server.listen(Config.api.port, '0.0.0.0', () => {
             const {
diff --git a/microservices/navigation_qcm/tests/index.test.ts b/microservices/navigation_qcm/tests/index.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b202cac810fda04df4b7500b048812468fb0e615
--- /dev/null
+++ b/microservices/navigation_qcm/tests/index.test.ts
@@ -0,0 +1,11 @@
+import { describe } from 'node:test';
+import { expect, test } from '@jest/globals';
+import { calcNoteBaremeFed } from '../src/calcFunctions';
+
+describe('testing index file', () => {
+  test('empty string should result in zero', () => {
+    expect(calcNoteBaremeFed(50, 50)).toBe(6);
+    expect(calcNoteBaremeFed(0, 50)).toBe(1);
+    expect(calcNoteBaremeFed(0, 50)).not.toBe(0);
+  });
+});
\ No newline at end of file
diff --git a/testsEndPoints/jest.config.js b/testsEndPoints/jest.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..da0ba537dd94fa7a8041b15ec2e009d9cab8af11
--- /dev/null
+++ b/testsEndPoints/jest.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+    transform: {'^.+\\.ts?$': 'ts-jest'},
+    testEnvironment: 'node',
+    testRegex: '/tests/.*\\.(test|spec)?\\.(ts|tsx)$',
+    moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
+};
\ No newline at end of file
diff --git a/testsEndPoints/package.json b/testsEndPoints/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..eea17fc8756d6e1213bdf6b23fecde14a114124a
--- /dev/null
+++ b/testsEndPoints/package.json
@@ -0,0 +1,21 @@
+{
+  "name": "testsendpoints",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "test": "jest"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC",
+  "devDependencies": {
+    "@types/jest": "^29.5.14",
+    "jest": "^29.7.0",
+    "ts-jest": "^29.2.6"
+  },
+  "dependencies": {
+    "@types/supertest": "^6.0.2",
+    "supertest": "^7.0.0"
+  }
+}
diff --git a/testsEndPoints/tests/navigation.test.ts b/testsEndPoints/tests/navigation.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4bfac0c55a60ccd5df56f98a830a7680ce7f5e18
--- /dev/null
+++ b/testsEndPoints/tests/navigation.test.ts
@@ -0,0 +1,77 @@
+import { expect, jest } from '@jest/globals';
+import request from 'supertest';
+import { describe, it } from 'node:test';
+import Server from '../../microservices/navigation_qcm/src/express/Server';
+
+const server = new Server();
+
+describe('POST /join', () => {
+    it('manque des parametres', async () => {
+      const response = await request(server.app).post('/join').send({});
+      
+      expect(response.status).toBe(400);
+      // expect(response.body).toEqual({ message: 'Hello, world!' });
+    });
+
+    it('nombre de questions QCM', async () => {
+      const response = await request(server.app).post('/join').send({});
+      
+      expect(response.status).toBe(401);
+    });
+
+    it('code accès QCM', async () => {
+      const response = await request(server.app).post('/join').send({});
+      
+      expect(response.status).toBe(401);
+    });
+
+    it('existance du QCM', async () => {
+      const response = await request(server.app).post('/join').send({});
+      
+      expect(response.status).toBe(404);
+    });
+  });
+
+  describe('GET /reponseCorrect/:QCM_ID', () => {
+    // it('manque des parametres', async () => {
+    //   const QCM_ID = 1;
+    //   jest.spyOn(db.question, 'findMany').mockResolvedValue([
+    //       {
+    //           idQCM: QCM_ID,
+    //           numeric: null,
+    //           choix: [
+    //               { idChoix: 1, isCorrect: true },
+    //               { idChoix: 2, isCorrect: false }
+    //           ]
+    //       },
+    //       {
+    //           idQCM: QCM_ID,
+    //           numeric: 5,
+    //           choix: []
+    //       }
+    //   ]);
+
+
+    //   const response = await request(server.app).post('/reponseCorrect/${QCM_ID}').send({});
+      
+    //   expect(response.status).toBe(400);
+    // });
+
+    // it('nombre de questions QCM', async () => {
+    //   const response = await request(server.app).post('/reponseCorrect/${QCM_ID}').send({});
+      
+    //   expect(response.status).toBe(401);
+    // });
+
+    // it('code accès QCM', async () => {
+    //   const response = await request(server.app).post('/reponseCorrect/${QCM_ID}').send({});
+      
+    //   expect(response.status).toBe(401);
+    // });
+
+    // it('existance du QCM', async () => {
+    //   const response = await request(server.app).post('/reponseCorrect/${QCM_ID}').send({});
+      
+    //   expect(response.status).toBe(404);
+    // });
+  });
\ No newline at end of file