diff --git a/src/app/appmarket/admin/webhook/webhook-details/webhook-details.component.spec.ts b/src/app/appmarket/admin/webhook/webhook-details/webhook-details.component.spec.ts
index 89d35d84e215e651f40edf8859f8cc4d81aa6df6..2cdf0b4149bba22ae5a7800918bd56700f4d3f4c 100644
--- a/src/app/appmarket/admin/webhook/webhook-details/webhook-details.component.spec.ts
+++ b/src/app/appmarket/admin/webhook/webhook-details/webhook-details.component.spec.ts
@@ -1,23 +1,70 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-
 import { WebhookDetailsComponent } from './webhook-details.component';
+import { WebhookService } from '../../../../service/webhook.service';
+import { ActivatedRoute, Router } from '@angular/router';
+import { of } from 'rxjs';
+import { NO_ERRORS_SCHEMA } from '@angular/core';
+import { Webhook } from '../../../../model/webhook';
+import { TranslateFakeLoader, TranslateLoader, TranslateModule } from '@ngx-translate/core';
+import { FormsModule } from '@angular/forms';
+
+class MockWebhookService {
+  getOne = jasmine.createSpy().and.returnValue(of({ id: 1, name: 'Test', eventType: 'DOMAIN_CREATION', targetUrl: 'http://test' }));
+  update = jasmine.createSpy().and.returnValue(of({ id: 1, name: 'Updated', eventType: 'DOMAIN_CREATION', targetUrl: 'http://test' }));
+}
+
+class MockActivatedRoute {
+  params = of({ id: 1 });
+}
+
+class MockRouter {}
 
 describe('WebhookDetailsComponent', () => {
   let component: WebhookDetailsComponent;
   let fixture: ComponentFixture<WebhookDetailsComponent>;
+  let service: MockWebhookService;
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      declarations: [WebhookDetailsComponent]
-    })
-    .compileComponents();
-    
+      declarations: [WebhookDetailsComponent],
+      imports: [
+        FormsModule,
+        TranslateModule.forRoot({
+          loader: {
+            provide: TranslateLoader,
+            useClass: TranslateFakeLoader
+          }
+        }),
+      ],
+      providers: [
+        { provide: WebhookService, useClass: MockWebhookService },
+        { provide: ActivatedRoute, useClass: MockActivatedRoute },
+        { provide: Router, useClass: MockRouter }
+      ],
+      schemas: [NO_ERRORS_SCHEMA]
+    }).compileComponents();
+
     fixture = TestBed.createComponent(WebhookDetailsComponent);
     component = fixture.componentInstance;
+    service = TestBed.inject(WebhookService) as any;
     fixture.detectChanges();
   });
 
   it('should create', () => {
     expect(component).toBeTruthy();
   });
+
+  it('should initialize and fetch webhook by id', () => {
+    expect(component.webhooksId).toBe(1);
+    expect(service.getOne).toHaveBeenCalledWith(1);
+    expect(component.webhook).toBeDefined();
+    expect(component.webhook.id).toBe(1);
+  });
+
+  it('should call update on submit and update webhook', () => {
+    component.webhook = { id: 1, name: 'Test', eventType: 'DOMAIN_CREATION', targetUrl: 'http://test' } as Webhook;
+    component.submit();
+    expect(service.update).toHaveBeenCalledWith(component.webhook);
+    fixture.detectChanges();
+  });
 });
diff --git a/src/app/appmarket/admin/webhook/webhook-list/webhook-list.component.spec.ts b/src/app/appmarket/admin/webhook/webhook-list/webhook-list.component.spec.ts
index 66dcfb7ebff2aea79a92d579c4e6e0be8592921f..9fc3ab0d77a4ec175f96ac65c1e3db2412292bb0 100644
--- a/src/app/appmarket/admin/webhook/webhook-list/webhook-list.component.spec.ts
+++ b/src/app/appmarket/admin/webhook/webhook-list/webhook-list.component.spec.ts
@@ -1,23 +1,93 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { WebhookListComponent } from './webhook-list.component';
+import { WebhookService } from '../../../../service/webhook.service';
+import { of } from 'rxjs';
+import { ModalComponent } from '../../../../shared';
+import { Webhook, WebhookType } from '../../../../model/webhook';
+import { TranslateFakeLoader, TranslateLoader, TranslateModule } from '@ngx-translate/core';
+
+class MockWebhookService {
+  getAll = jasmine.createSpy().and.returnValue(of([{ id: 1, name: 'Test', eventType: 'DOMAIN_CREATION', targetUrl: 'http://test' }]));
+  create = jasmine.createSpy().and.returnValue(of({}));
+}
+
+class MockModalComponent {
+  show = jasmine.createSpy();
+  hide = jasmine.createSpy();
+}
 
 describe('WebhookListComponent', () => {
   let component: WebhookListComponent;
   let fixture: ComponentFixture<WebhookListComponent>;
+  let service: MockWebhookService;
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      declarations: [WebhookListComponent]
+      declarations: [WebhookListComponent],
+      imports: [
+        TranslateModule.forRoot({
+                            loader: {
+                                provide: TranslateLoader,
+                                useClass: TranslateFakeLoader
+                            }
+                        }),
+      ],
+      schemas: [NO_ERRORS_SCHEMA],
+      providers: [
+        { provide: WebhookService, useClass: MockWebhookService }
+      ]
+    })
+    .overrideComponent(WebhookListComponent, {
+      set: {
+        providers: [],
+      }
     })
     .compileComponents();
-    
+
     fixture = TestBed.createComponent(WebhookListComponent);
     component = fixture.componentInstance;
+    service = TestBed.inject(WebhookService) as any;
+    component.modal = new MockModalComponent() as any;
     fixture.detectChanges();
   });
 
   it('should create', () => {
     expect(component).toBeTruthy();
   });
+
+  it('should have a defined component instance', () => {
+    expect(component).toBeDefined();
+  });
+
+  it('should render the component', () => {
+    const compiled = fixture.nativeElement as HTMLElement;
+    expect(compiled).toBeTruthy();
+  });
+
+  it('should refresh list and set webkooks', () => {
+    component.refreshList();
+    expect(service.getAll).toHaveBeenCalled();
+    fixture.detectChanges();
+    expect(component.webkooks.length).toBeGreaterThan(0);
+  });
+
+  it('should open modal and set default event type', () => {
+    component.openModal();
+    expect(component.addedWebhook.eventType).toBe(WebhookType.DOMAIN_CREATION);
+    expect(component.modal.show).toHaveBeenCalled();
+  });
+
+  it('should call service.create and hide modal on closeModalAndSaveWebhook', () => {
+    component.addedWebhook = { name: 'Test', eventType: 'DOMAIN_CREATION', targetUrl: 'http://test' } as Webhook;
+    component.closeModalAndSaveWebhook();
+    expect(service.create).toHaveBeenCalledWith(component.addedWebhook);
+    expect(component.modal.hide).toHaveBeenCalled();
+  });
+
+  it('should set addedWebhook.eventType on type select', () => {
+    component.onTypeSelect('USER_ASSIGNMENT');
+    expect(component.addedWebhook.eventType).toBe('USER_ASSIGNMENT');
+  });
+
 });
diff --git a/src/app/shared/left-menu/left-menu.component.html b/src/app/shared/left-menu/left-menu.component.html
index dfbe2909c0903e63a3db35d464e4650663a79281..7dd63e0be4b0576c3d95128e3a193b4af5334d3e 100644
--- a/src/app/shared/left-menu/left-menu.component.html
+++ b/src/app/shared/left-menu/left-menu.component.html
@@ -121,7 +121,7 @@
             </li>
             <li *roles="['ROLE_SYSTEM_ADMIN']" [routerLinkActiveOptions]="{exact:true}" [routerLinkActive]="['active']" [ngClass]="{'collapsed': isCollapsed}">
                 <a  style="display: flex; align-items: center;" [routerLink]="['/admin/webhooks']">
-                    <i class="pi pi-cog" style="margin-right:10px; font-size: 18px" title="Settings"></i>
+                    <i class="pi pi-share-alt" style="margin-right:10px; font-size: 18px" title="Settings"></i>
                     <span *ngIf="!isCollapsed">
                         {{ 'WEBHOOKS.TITLE_SHORT' | translate }}
                     </span>