Browse Source

test(theme-shared): add new expects to breadcrumb test

pull/2069/head
mehmet-erim 7 years ago
parent
commit
c49ecf2b1e
  1. 8
      npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts
  2. 30
      npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts

8
npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts

@ -5,18 +5,18 @@ import { ConfigState, ABP } from '@abp/ng.core';
@Component({
selector: 'abp-breadcrumb',
templateUrl: './breadcrumb.component.html'
templateUrl: './breadcrumb.component.html',
})
export class BreadcrumbComponent implements OnInit {
show: boolean;
segments: string[] = [];
constructor(private router: Router, private store: Store) {
this.show = !!this.store.selectSnapshot(state => state.LeptonLayoutState);
}
constructor(private router: Router, private store: Store) {}
ngOnInit(): void {
this.show = !!this.store.selectSnapshot(state => state.LeptonLayoutState);
const splittedUrl = this.router.url.split('/').filter(chunk => chunk);
const currentUrl: ABP.FullRoute = this.store.selectSnapshot(ConfigState.getRoute(splittedUrl[0]));

30
npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts

@ -1,9 +1,15 @@
import { LocalizationPipe, ABP } from '@abp/ng.core';
import { RouterTestingModule } from '@angular/router/testing';
import { LocalizationPipe } from '@abp/ng.core';
import { Directive } from '@angular/core';
import { Router } from '@angular/router';
import { createComponentFactory, Spectator, SpyObject } from '@ngneat/spectator/jest';
import { Store } from '@ngxs/store';
import { BreadcrumbComponent } from '../components/breadcrumb/breadcrumb.component';
import { Router } from '@angular/router';
@Directive({
// tslint:disable-next-line: directive-selector
selector: '[routerLink], [routerLinkActive]',
})
class DummyRouterLinkDirective {}
describe('BreadcrumbComponent', () => {
let spectator: Spectator<BreadcrumbComponent>;
@ -11,8 +17,8 @@ describe('BreadcrumbComponent', () => {
const createComponent = createComponentFactory({
component: BreadcrumbComponent,
mocks: [Store, Router],
imports: [RouterTestingModule],
declarations: [LocalizationPipe],
imports: [],
declarations: [LocalizationPipe, DummyRouterLinkDirective],
detectChanges: false,
});
@ -24,14 +30,20 @@ describe('BreadcrumbComponent', () => {
it('should display the breadcrumb', () => {
const router = spectator.get(Router);
(router as any).url = '/identity/users';
store.selectSnapshot.andReturn({
store.selectSnapshot.mockReturnValueOnce({ LeptonLayoutState: {} });
store.selectSnapshot.mockReturnValueOnce({
name: 'Identity',
children: [{ name: 'Users', path: 'users' }],
});
spectator.component.show = true;
// for abpLocalization
store.selectSnapshot.mockReturnValueOnce('Identity');
store.selectSnapshot.mockReturnValueOnce('Users');
spectator.detectChanges();
spectator.detectComponentChanges();
expect(spectator.component.segments).toEqual(['Identity', 'Users']);
// expect(spectator.queryAll('li')).toHaveLength(3);
const elements = spectator.queryAll('li');
expect(elements).toHaveLength(3);
expect(elements[1]).toHaveText('Identity');
expect(elements[2]).toHaveText('Users');
});
});

Loading…
Cancel
Save