From 4e285e5a2c079cc1377b5b2ac9554b17cfa13236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=80lex=20Magaz=20Gra=C3=A7a?= Date: Wed, 18 Oct 2017 10:11:47 +0200 Subject: [PATCH] Add tests for SearchService --- .../search-service/search.service.spec.ts | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/app/+search-page/search-service/search.service.spec.ts diff --git a/src/app/+search-page/search-service/search.service.spec.ts b/src/app/+search-page/search-service/search.service.spec.ts new file mode 100644 index 0000000000..489ac76763 --- /dev/null +++ b/src/app/+search-page/search-service/search.service.spec.ts @@ -0,0 +1,56 @@ +import { TestBed, fakeAsync, tick } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; + +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; + +import { SearchService } from './search.service'; +import { ItemDataService } from './../../core/data/item-data.service'; +import { ViewMode } from '../../+search-page/search-options.model'; + +@Component({ template: '' }) +class DummyComponent { } + +describe('SearchService', () => { + let searchService: SearchService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ + CommonModule, + RouterTestingModule.withRoutes([ + { path: 'search', component: DummyComponent, pathMatch: 'full' }, + ]) + ], + declarations: [ + DummyComponent + ], + providers: [ + { provide: ItemDataService, useValue: {} }, + SearchService + ], + }); + searchService = TestBed.get(SearchService); + }); + + it('should return list view mode by default', () => { + searchService.getViewMode().subscribe((viewMode) => { + expect(viewMode).toBe(ViewMode.List); + }); + }); + + it('should return the view mode set through setViewMode', fakeAsync(() => { + searchService.setViewMode(ViewMode.Grid) + tick(); + let viewMode = ViewMode.List; + searchService.getViewMode().subscribe((mode) => viewMode = mode); + expect(viewMode).toBe(ViewMode.Grid); + + searchService.setViewMode(ViewMode.List) + tick(); + searchService.getViewMode().subscribe((mode) => viewMode = mode); + expect(viewMode).toBe(ViewMode.List); + })); + +});