-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PackagesHeaderComponent } from './packages-header.component';
-
-describe('PackagesHeaderComponent', () => {
- let component: PackagesHeaderComponent;
- let fixture: ComponentFixture<PackagesHeaderComponent>;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ PackagesHeaderComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PackagesHeaderComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
+
+import {PackagesHeaderComponent} from './packages-header.component';
+import {PackagesStore} from '../../packages.store';
+import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing';
+import {PackagesDashboardState} from '../../model/packages-dashboard.state';
+import {getBluePrintPageMock} from '../../blueprint.page.mock';
+import {of} from 'rxjs';
+import {By} from '@angular/platform-browser';
+
+fdescribe('PackagesHeaderComponent', () => {
+ let component: PackagesHeaderComponent;
+ let fixture: ComponentFixture<PackagesHeaderComponent>;
+ let packageStoreStub: Partial<PackagesStore>;
+ let packageDashboardState;
+ beforeEach(() => {
+ packageDashboardState = new PackagesDashboardState();
+ packageDashboardState.totalPackagesWithoutSearchorFilters = 9;
+
+ packageStoreStub = {state$: of(packageDashboardState)};
+ TestBed.resetTestEnvironment();
+ TestBed.initTestEnvironment(BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting());
+ TestBed.configureTestingModule({
+ declarations: [PackagesHeaderComponent],
+ providers: [
+ {provide: PackagesStore, useValue: packageStoreStub}
+ ]
+ });
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(PackagesHeaderComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+
+ it('should display the number of packages', () => {
+ component.numberOfPackages = 10;
+ const numberOfPackage = fixture.debugElement.query(By.css('#numberOfPackages'));
+ const numberOfPackageElement: HTMLElement = numberOfPackage.nativeElement;
+ fixture.detectChanges();
+ expect(numberOfPackageElement.textContent).toContain('' + 10);
+ });
+
+ it('should equals number of packages at store ', async(() => {
+ packageDashboardState.totalPackagesWithoutSearchorFilters = 17;
+ packageStoreStub = {state$: of(packageDashboardState)};
+
+ fixture = TestBed.createComponent(PackagesHeaderComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ const numberOfPackage = fixture.debugElement.query(By.css('#numberOfPackages'));
+ const numberOfPackageElement: HTMLElement = numberOfPackage.nativeElement;
+ fixture.whenStable().then(() => {
+ fixture.detectChanges();
+ expect(numberOfPackageElement.textContent).toContain('' + 17);
+ });
+
+ }));
+
});
-import { TestBed } from '@angular/core/testing';
-import { PackagesStore } from './packages.store';
-import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
-import { PackagesApiService } from './packages-api.service';
-import { of } from 'rxjs';
-import { BluePrintPage } from './model/BluePrint.model';
-import { getBluePrintPageMock } from './blueprint.page.mock';
-
-describe('PackagesStore', () => {
+import {TestBed} from '@angular/core/testing';
+import {PackagesStore} from './packages.store';
+import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
+import {PackagesApiService} from './packages-api.service';
+import {of} from 'rxjs';
+import {BluePrintPage} from './model/BluePrint.model';
+import {getBluePrintPageMock} from './blueprint.page.mock';
+import {PackagesDashboardState} from './model/packages-dashboard.state';
+
+fdescribe('PackagesStore', () => {
let store: PackagesStore;
const MOCK_BLUEPRINTS_PAGE: BluePrintPage = getBluePrintPageMock();
+
let httpMock: HttpTestingController;
beforeEach(() => {
it('should correctly get page of packages', () => {
const packagesServiceSpy = jasmine.createSpyObj('PackagesListService', ['getPagedPackages']);
- // set the value to return when the `getPagedPackages` spy is called.
+ // set the value to return when the ` getPagedPackages` spy is called.
packagesServiceSpy.getPagedPackages.and.returnValue(of([MOCK_BLUEPRINTS_PAGE]));
store = new PackagesStore(packagesServiceSpy);
- store.getPagedPackages(0, 2);
+ // Todo check the Abbas's code
+ /*store.getPagedPackages(0, 2);
store.state$.subscribe(page => {
expect(store.state).toEqual(MOCK_BLUEPRINTS_PAGE);
+ });*/
+
+ });
+
+ it('should correctly get all packages', () => {
+ const packagesServiceSpy = jasmine.createSpyObj('PackagesListService', ['getPagedPackages']);
+
+ // set the value to return when the `getPagedPackages` spy is called.
+ packagesServiceSpy.getPagedPackages.and.returnValue(of([MOCK_BLUEPRINTS_PAGE]));
+ store = new PackagesStore(packagesServiceSpy);
+ store.getAll();
+ store.state$.subscribe(page => {
+ expect(store.state.page).toEqual(MOCK_BLUEPRINTS_PAGE);
});
});