diff --git a/.vscode/settings.json b/.vscode/settings.json
index 27e08a402475a080ce059bab6e527e467a6a3ffc..e6575e191a54a3d71ef2c5fb1bed84372e71ebc2 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -48,6 +48,7 @@
     "grandlyon",
     "nestjs",
     "permanences",
-    "photonban"
+    "photonban",
+    "spyer"
   ]
 }
diff --git a/src/admin/admin.controller.spec.ts b/src/admin/admin.controller.spec.ts
index 192527d51fcefa17f64c5de92cf55bd3752c4adc..7ae2661b6a64c71465d4ff12668eb5fb97abfd46 100644
--- a/src/admin/admin.controller.spec.ts
+++ b/src/admin/admin.controller.spec.ts
@@ -2,6 +2,11 @@ import { HttpModule } from '@nestjs/axios';
 import { getModelToken } from '@nestjs/mongoose';
 import { Test, TestingModule } from '@nestjs/testing';
 import { Types } from 'mongoose';
+import {
+  mockStructure,
+  mockStructureDocument,
+  structuresDocumentDataMock,
+} from '../../test/mock/data/structures.mock.data';
 import { mockJwtAuthGuard } from '../../test/mock/guards/jwt-auth.mock.guard';
 import { mockRoleGuard } from '../../test/mock/guards/role.mock.guard';
 import { NewsletterServiceMock } from '../../test/mock/services/newsletter.mock.service';
@@ -9,6 +14,8 @@ import { StructuresServiceMock } from '../../test/mock/services/structures.mock.
 import { UsersServiceMock } from '../../test/mock/services/user.mock.service';
 import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
 import { ConfigurationModule } from '../configuration/configuration.module';
+import { EspaceCoopCNFS } from '../espaceCoop/schemas/espaceCoopCNFS.schema';
+import { EspaceCoopService } from '../espaceCoop/services/espaceCoop.service';
 import { MailerService } from '../mailer/mailer.service';
 import { NewsletterSubscription } from '../newsletter/newsletter-subscription.schema';
 import { NewsletterService } from '../newsletter/newsletter.service';
@@ -25,11 +32,9 @@ import { UsersService } from '../users/services/users.service';
 import { AdminController } from './admin.controller';
 import { AdminService } from './admin.service';
 import { PendingStructureDto } from './dto/pending-structure.dto';
-import { EspaceCoopService } from '../espaceCoop/services/espaceCoop.service';
-import { EspaceCoopCNFS } from '../espaceCoop/schemas/espaceCoopCNFS.schema';
 
 describe('AdminController', () => {
-  let controller: AdminController;
+  let adminController: AdminController;
   let userService: UsersService;
 
   const mockEmployerSearchService = {
@@ -65,6 +70,14 @@ describe('AdminController', () => {
     mergeJob: jest.fn(),
     deleteInvalidJob: jest.fn(),
   };
+
+  const mockStructureService = {
+    findOne: jest.fn(),
+    deleteOne: jest.fn(),
+    findAll: jest.fn(),
+    getAllUserCompletedStructures: jest.fn(),
+  };
+
   const pendingStructureTest: PendingStructureDto = {
     structureId: new Types.ObjectId('6093ba0e2ab5775cfc01ed3e'),
     structureName: 'test',
@@ -83,6 +96,7 @@ describe('AdminController', () => {
         {
           provide: StructuresService,
           useClass: StructuresServiceMock,
+          // useValue: mockStructureService,
         },
         {
           provide: NewsletterService,
@@ -132,28 +146,28 @@ describe('AdminController', () => {
       .useValue(mockRoleGuard)
       .compile();
 
-    controller = module.get<AdminController>(AdminController);
+    adminController = module.get<AdminController>(AdminController);
     userService = module.get<UsersService>(UsersService);
   });
 
   it('should be defined', () => {
-    expect(controller).toBeDefined();
+    expect(adminController).toBeDefined();
   });
 
   it('should get pending attachments', async () => {
-    expect((await controller.getPendingAttachments()).length).toBe(2);
-    expect(Object.keys((await controller.getPendingAttachments())[0]).length).toBe(5);
+    expect((await adminController.getPendingAttachments()).length).toBe(2);
+    expect(Object.keys((await adminController.getPendingAttachments())[0]).length).toBe(5);
   });
 
   describe('Pending structures validation', () => {
     it('should validate pending structure', async () => {
-      expect((await controller.validatePendingStructure(pendingStructureTest)).length).toBe(2);
-      expect(Object.keys((await controller.validatePendingStructure(pendingStructureTest))[0]).length).toBe(5);
+      expect((await adminController.validatePendingStructure(pendingStructureTest)).length).toBe(2);
+      expect(Object.keys((await adminController.validatePendingStructure(pendingStructureTest))[0]).length).toBe(5);
     });
 
     it('should get structure does not exist', async () => {
       try {
-        await controller.validatePendingStructure(pendingStructureTest);
+        await adminController.validatePendingStructure(pendingStructureTest);
       } catch (e) {
         expect(e.message).toBe('Structure does not exist');
         expect(e.status).toBe(404);
@@ -163,13 +177,13 @@ describe('AdminController', () => {
 
   describe('Pending structures cancel', () => {
     it('should refuse pending structure', async () => {
-      expect((await controller.refusePendingStructure(pendingStructureTest)).length).toBe(2);
-      expect(Object.keys((await controller.refusePendingStructure(pendingStructureTest))[0]).length).toBe(5);
+      expect((await adminController.refusePendingStructure(pendingStructureTest)).length).toBe(2);
+      expect(Object.keys((await adminController.refusePendingStructure(pendingStructureTest))[0]).length).toBe(5);
     });
 
     it('should get structure does not exist', async () => {
       try {
-        await controller.refusePendingStructure(pendingStructureTest);
+        await adminController.refusePendingStructure(pendingStructureTest);
       } catch (e) {
         expect(e.message).toBe('Structure does not exist');
         expect(e.status).toBe(404);
@@ -179,11 +193,15 @@ describe('AdminController', () => {
 
   describe('Delete user', () => {
     it('should delete user', async () => {
-      expect((await controller.deleteUser({ id: 'tsfsf6296' })).email).toBe('pauline.dupont@mii.com');
+      // jest.spyOn(StructuresServiceMock.prototype, 'findOne').mockResolvedValue(mockStructure);
+      mockStructureService.deleteOne.mockImplementationOnce(() => mockStructureDocument);
+      jest.spyOn(StructuresServiceMock.prototype, 'deleteOne').mockImplementationOnce(() => mockStructure);
+      const user = await adminController.deleteUser({ id: 'tsfsf6296' });
+      expect(user.email).toBe('pauline.dupont@mii.com');
     });
     it('should return unexisting user', async () => {
       try {
-        await controller.deleteUser({ id: 'userdoesnotexist' });
+        await adminController.deleteUser({ id: 'userdoesnotexist' });
       } catch (e) {
         expect(e.message).toBe('Invalid user id');
         expect(e.status).toBe(400);
@@ -201,7 +219,7 @@ describe('AdminController', () => {
         validated: true,
       };
       mockEmployerService.findOne.mockResolvedValueOnce(mockEmployer);
-      const reply = await controller.setUserEmployer({
+      const reply = await adminController.setUserEmployer({
         userId: mockUserId,
         employerId: String(mockEmployer._id),
       });
@@ -220,7 +238,7 @@ describe('AdminController', () => {
       };
       mockEmployerService.findOne.mockResolvedValueOnce(null);
       try {
-        await controller.setUserEmployer({
+        await adminController.setUserEmployer({
           userId: mockUserId,
           employerId: String(mockEmployer._id),
         });
@@ -242,7 +260,7 @@ describe('AdminController', () => {
       };
       mockEmployerService.findOne.mockResolvedValueOnce(mockEmployer);
       try {
-        await controller.setUserEmployer({
+        await adminController.setUserEmployer({
           userId: mockUserId,
           employerId: String(mockEmployer._id),
         });
@@ -265,7 +283,7 @@ describe('AdminController', () => {
         validated: true,
       };
       mockJobService.findOne.mockResolvedValueOnce(mockJob);
-      const reply = await controller.setUserJob({
+      const reply = await adminController.setUserJob({
         userId: mockUserId,
         jobId: String(mockJob._id),
       });
@@ -284,7 +302,7 @@ describe('AdminController', () => {
       };
       mockJobService.findOne.mockResolvedValueOnce(null);
       try {
-        await controller.setUserJob({
+        await adminController.setUserJob({
           userId: mockUserId,
           jobId: String(mockJob._id),
         });
@@ -306,7 +324,7 @@ describe('AdminController', () => {
       };
       mockJobService.findOne.mockResolvedValueOnce(mockJob);
       try {
-        await controller.setUserJob({
+        await adminController.setUserJob({
           userId: mockUserId,
           jobId: String(mockJob._id),
         });
@@ -321,28 +339,28 @@ describe('AdminController', () => {
 
   describe('Search user', () => {
     it('should return all users, empty string', async () => {
-      expect((await controller.searchUsers({ searchString: '' })).length).toBe(2);
+      expect((await adminController.searchUsers({ searchString: '' })).length).toBe(2);
     });
     it('should return all users, null input', async () => {
-      expect((await controller.searchUsers({ searchString: null })).length).toBe(2);
+      expect((await adminController.searchUsers({ searchString: null })).length).toBe(2);
     });
     it('should one user', async () => {
-      expect((await controller.searchUsers({ searchString: 'a@a.com' })).length).toBe(1);
-      expect((await controller.searchUsers({ searchString: 'a@a.com' }))[0].email).toBe('a@a.com');
+      expect((await adminController.searchUsers({ searchString: 'a@a.com' })).length).toBe(1);
+      expect((await adminController.searchUsers({ searchString: 'a@a.com' }))[0].email).toBe('a@a.com');
     });
     it('should no user', async () => {
-      expect((await controller.searchUsers({ searchString: 'dfqfqsfqfqfa@a.com' })).length).toBe(0);
+      expect((await adminController.searchUsers({ searchString: 'dfqfqsfqfqfa@a.com' })).length).toBe(0);
     });
   });
 
   describe('Search delete a user subscription', () => {
     it('should return a deleted object', async () => {
-      expect((await controller.unsubscribeUserFromNewsletter('a@a.com')).email).toBe('a@a.com');
-      expect(Object.keys(await controller.unsubscribeUserFromNewsletter('a@a.com')).length).toBe(4);
+      expect((await adminController.unsubscribeUserFromNewsletter('a@a.com')).email).toBe('a@a.com');
+      expect(Object.keys(await adminController.unsubscribeUserFromNewsletter('a@a.com')).length).toBe(4);
     });
     it('should throw an error', async () => {
       try {
-        await controller.unsubscribeUserFromNewsletter('test@test.com');
+        await adminController.unsubscribeUserFromNewsletter('test@test.com');
       } catch (e) {
         expect(e.message).toBe('Invalid  email');
         expect(e.status).toBe(401);
@@ -351,27 +369,32 @@ describe('AdminController', () => {
   });
 
   it('should get pending structure list for admin', async () => {
-    expect((await controller.getAdminStructuresList()).inClaim.length).toBe(2);
-    expect((await controller.getAdminStructuresList()).toClaim.length).toEqual(2);
-    expect((await controller.getAdminStructuresList()).claimed.length).toEqual(0);
-    expect((await controller.getAdminStructuresList()).incomplete.length).toEqual(2);
+    expect((await adminController.getAdminStructuresList()).inClaim.length).toBe(2);
+    expect((await adminController.getAdminStructuresList()).toClaim.length).toEqual(2);
+    expect((await adminController.getAdminStructuresList()).claimed.length).toEqual(0);
+    expect((await adminController.getAdminStructuresList()).incomplete.length).toEqual(2);
   });
 
   it('should find attached users', async () => {
-    expect((await controller.findAttachedUsers()).length).toBe(0);
+    jest.spyOn(userService, 'findAllAttached').mockResolvedValue([]);
+    mockStructureService.getAllUserCompletedStructures.mockResolvedValueOnce([]);
+    expect((await adminController.findAttachedUsers()).length).toBe(0);
   });
 
   it('should find unattached users', async () => {
-    expect((await controller.findUnattachedUsers()).length).toBe(0);
+    expect((await adminController.findUnattachedUsers()).length).toBe(0);
   });
 
   it('should find unverified users', async () => {
-    expect((await controller.findUnVerifiedUsers()).length).toBe(0);
+    jest.spyOn(userService, 'findAllUnVerified').mockResolvedValue([]);
+    mockStructureService.getAllUserCompletedStructures.mockResolvedValueOnce([]);
+    expect((await adminController.findUnVerifiedUsers()).length).toBe(0);
   });
 
   describe('should test getDeletedStructures()', () => {
     it('should find getDeletedStructures', async () => {
-      expect((await controller.getDeletedStructures()).length).toBeGreaterThan(0);
+      mockStructureService.findAll.mockResolvedValue(structuresDocumentDataMock);
+      expect((await adminController.getDeletedStructures()).length).toBeGreaterThan(0);
     });
   });
 });
diff --git a/src/admin/admin.controller.ts b/src/admin/admin.controller.ts
index b79ba2d50ece0bd2535c592a09a97be1d914afef..af375cc2320fc823c11b7f50ec10de3858c3653b 100644
--- a/src/admin/admin.controller.ts
+++ b/src/admin/admin.controller.ts
@@ -14,6 +14,8 @@ import {
 import { ApiBearerAuth, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
 import { validate } from 'class-validator';
 import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
+import { EspaceCoopCNFS } from '../espaceCoop/schemas/espaceCoopCNFS.schema';
+import { EspaceCoopService } from '../espaceCoop/services/espaceCoop.service';
 import { NewsletterSubscription } from '../newsletter/newsletter-subscription.schema';
 import { NewsletterService } from '../newsletter/newsletter.service';
 import { Structure, StructureDocument } from '../structures/schemas/structure.schema';
@@ -28,8 +30,6 @@ import { AdminService } from './admin.service';
 import { PendingStructureDto } from './dto/pending-structure.dto';
 import { SetUserEmployerDto } from './dto/set-user-employer.dto';
 import { SetUserJobDto } from './dto/set-user-job.dto';
-import { EspaceCoopCNFS } from '../espaceCoop/schemas/espaceCoopCNFS.schema';
-import { EspaceCoopService } from '../espaceCoop/services/espaceCoop.service';
 
 @ApiTags('admin')
 @Controller('admin')
diff --git a/src/structures/services/structures.service.spec.ts b/src/structures/services/structures.service.spec.ts
index d8e192e9b6ec86ee3dea3c10b7ac3ac45ba68ea3..5404cd41e7603320832b18367d2366585ad1933d 100644
--- a/src/structures/services/structures.service.spec.ts
+++ b/src/structures/services/structures.service.spec.ts
@@ -8,7 +8,7 @@ import { Types } from 'mongoose';
 import { of } from 'rxjs';
 import { personalOffersDataMock } from '../../../test/mock/data/personalOffers.mock.data';
 import {
-  mockStructure,
+  mockStructureDocument,
   structureMockDto,
   structuresDocumentDataMock,
 } from '../../../test/mock/data/structures.mock.data';
@@ -544,7 +544,7 @@ describe('StructuresService', () => {
   });
 
   it('should report structure Error', () => {
-    jest.spyOn(structuresService, 'findOne').mockResolvedValue(mockStructure);
+    jest.spyOn(structuresService, 'findOne').mockResolvedValue(mockStructureDocument);
     jest.spyOn(MailerService.prototype, 'send').mockImplementation(jest.fn());
     let res = structuresService.reportStructureError('6093ba0e2ab5775cfc01ed3e', '');
     expect(res).toBeTruthy();
diff --git a/test/mock/data/structures.mock.data.ts b/test/mock/data/structures.mock.data.ts
index aca725fd872b3572834fc0bc2463b15aa3a1bf3d..961a24bfc02288af67976ccd4c32c8771cecae76 100644
--- a/test/mock/data/structures.mock.data.ts
+++ b/test/mock/data/structures.mock.data.ts
@@ -1,5 +1,5 @@
 import { StructureDto } from '../../../src/structures/dto/structure.dto';
-import { StructureDocument } from '../../../src/structures/schemas/structure.schema';
+import { Structure, StructureDocument } from '../../../src/structures/schemas/structure.schema';
 
 export const structuresDocumentDataMock: StructureDocument[] = [
   {
@@ -237,7 +237,7 @@ export const structureMockDto: StructureDto = {
   dataShareConsentDate: new Date(),
 };
 
-export const mockStructure = ({
+export const mockStructureDocument = ({
   coord: [4.8498155, 45.7514817],
   categories: {
     accessModality: ['accesLibre'],
@@ -342,3 +342,113 @@ export const mockStructure = ({
   dataShareConsentDate: null,
   personalOffers: null,
 } as unknown) as StructureDocument;
+
+export const mockStructure = {
+  coord: [4.8498155, 45.7514817],
+  numero: '',
+  createdAt: null,
+  _id: '',
+  publicsAccompaniment: null,
+  autresAccompagnements: null,
+  __v: '',
+  dataShareConsentDate: null,
+  deletedAt: null,
+  personalOffers: [],
+  remoteAccompaniment: null,
+  updatedAt: null,
+  categories: {
+    accessModality: ['accesLibre'],
+    labelsQualifications: [
+      'monEspaceSante',
+      'numRelay',
+      'pix',
+      'passNumerique',
+      'fabriqueDeTerritoire',
+      'aidantsConnect',
+      'espacePublicNumeriqueepn',
+      'maisonFranceService',
+      'conseillerNumFranceServices',
+    ],
+    onlineProcedures: [
+      'idDoc',
+      'training',
+      'health',
+      'work',
+      'caf',
+      'cpam',
+      'foreigners',
+      'needs',
+      'franceConnect',
+      'taxes',
+      'housing',
+      'retirement',
+      'scolarity',
+      'transport',
+      'autres',
+    ],
+    selfServiceMaterial: ['wifiEnAccesLibre', 'computer', 'printer', 'scanner'],
+    solidarityMaterial: [],
+    baseSkills: ['computer', 'internet'],
+    advancedSkills: [],
+    age: ['young', 'family'],
+    languageAndIlliteracy: ['illettrisme', 'english'],
+    handicaps: ['physicalDisability'],
+    genre: ['uniquementFemmes'],
+  },
+  structureType: null,
+  structureName: 'a',
+  description: null,
+  lockdownActivity: null,
+  address: {
+    numero: null,
+    street: 'Rue Alphonse Daudet',
+    commune: 'Lyon 7ème Arrondissement',
+    postcode: '69007',
+    inseeCode: '69387',
+  },
+  contactMail: '',
+  contactPhone: '',
+  website: '',
+  facebook: null,
+  twitter: null,
+  instagram: null,
+  linkedin: null,
+  hours: {
+    monday: {
+      open: false,
+      time: [],
+    },
+    tuesday: {
+      open: false,
+      time: [],
+    },
+    wednesday: {
+      open: false,
+      time: [],
+    },
+    thursday: {
+      open: false,
+      time: [],
+    },
+    friday: {
+      open: false,
+      time: [],
+    },
+    saturday: {
+      open: false,
+      time: [],
+    },
+    sunday: {
+      open: false,
+      time: [],
+    },
+  },
+  pmrAccess: false,
+  exceptionalClosures: null,
+  otherDescription: null,
+  nbComputers: 1,
+  nbPrinters: 1,
+  nbScanners: 1,
+  freeWorkShop: 'Non',
+  accountVerified: true,
+} as Structure;