diff --git a/src/app/+admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.spec.ts b/src/app/+admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.spec.ts index a4f4399f59..d02b0d30c6 100644 --- a/src/app/+admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.spec.ts +++ b/src/app/+admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component.spec.ts @@ -1,25 +1,59 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { MenuService } from '../../../shared/menu/menu.service'; +import { MenuServiceStub } from '../../../shared/testing/menu-service-stub'; +import { CSSVariableService } from '../../../shared/sass-helper/sass-helper.service'; +import { CSSVariableServiceStub } from '../../../shared/testing/css-variable-service-stub'; +import { Component } from '@angular/core'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { AdminSidebarSectionComponent } from './admin-sidebar-section.component'; +import { RouterTestingModule } from '@angular/router/testing'; +import { By } from '@angular/platform-browser'; describe('AdminSidebarSectionComponent', () => { let component: AdminSidebarSectionComponent; let fixture: ComponentFixture; + const menuService = new MenuServiceStub(); + const iconString = 'test'; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ AdminSidebarSectionComponent ] + imports: [NoopAnimationsModule, RouterTestingModule], + declarations: [AdminSidebarSectionComponent, TestComponent], + providers: [ + { provide: 'sectionDataProvider', useValue: { model: { link: 'google.com' }, icon: iconString } }, + { provide: MenuService, useValue: menuService }, + { provide: CSSVariableService, useClass: CSSVariableServiceStub }, + ] + }).overrideComponent(AdminSidebarSectionComponent, { + set: { + entryComponents: [TestComponent] + } }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(AdminSidebarSectionComponent); component = fixture.componentInstance; + spyOn(component as any, 'getMenuItemComponent').and.returnValue(TestComponent); fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); + + it('should set the right icon', () => { + const icon = fixture.debugElement.query(By.css('.shortcut-icon')).query(By.css('i.fas')); + expect(icon.nativeElement.getAttribute('class')).toContain('fa-' + iconString); + }); }); + +// declare a test component +@Component({ + selector: 'ds-test-cmp', + template: `` +}) +class TestComponent { +} diff --git a/src/app/+admin/admin-sidebar/admin-sidebar.component.html b/src/app/+admin/admin-sidebar/admin-sidebar.component.html index 7a339d85f2..b59c1db829 100644 --- a/src/app/+admin/admin-sidebar/admin-sidebar.component.html +++ b/src/app/+admin/admin-sidebar/admin-sidebar.component.html @@ -30,7 +30,7 @@ - +