Skip to content

Commit

Permalink
Merge pull request #254 from stonelasley/master
Browse files Browse the repository at this point in the history
Use Ionic-Mocks for test doubles
  • Loading branch information
lathonez committed Jul 13, 2017
2 parents dd0499d + a51e64a commit 654df58
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 201 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
"@types/node": "7.0.4",
"codecov": "2.2.0",
"connect": "3.6.2",
"ionic-mocks": "0.10.1",
"jasmine-core": "2.6.2",
"jasmine-spec-reporter": "4.1.0",
"karma": "1.7.0",
Expand Down
8 changes: 3 additions & 5 deletions src/app/app.spec.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { ClickerApp } from './app.component';
import { MenuMock, NavMock, PlatformMock, SplashMock, StatusMock } from '../mocks';
import { MenuMock, NavMock, PlatformMock, StatusBarMock, SplashScreenMock } from 'ionic-mocks';
import { Page2 } from '../pages';

let instance: ClickerApp = null;

describe('ClickerApp', () => {

beforeEach(() => {
instance = new ClickerApp((<any> new PlatformMock), (<any> new MenuMock), (<any>new SplashMock()), (<any>new StatusMock()));
instance['nav'] = (<any>new NavMock());
instance = new ClickerApp((<any> PlatformMock.instance()), (<any> MenuMock.instance()), (<any>SplashScreenMock.instance()), (<any>StatusBarMock.instance()));
instance['nav'] = NavMock.instance();
});

it('initialises with two possible pages', () => {
Expand All @@ -20,8 +20,6 @@ describe('ClickerApp', () => {
});

it('opens a page', () => {
spyOn(instance['menu'], 'close');
spyOn(instance['nav'], 'setRoot');
instance.openPage(instance['pages'][1]);
expect(instance['menu']['close']).toHaveBeenCalled();
expect(instance['nav'].setRoot).toHaveBeenCalledWith(Page2);
Expand Down
187 changes: 0 additions & 187 deletions src/mocks.ts

This file was deleted.

10 changes: 4 additions & 6 deletions src/pages/page2/page2.spec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import { async, fakeAsync, tick, ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { App, Config, Form, IonicModule, Keyboard, DomController, MenuController, NavController, Platform, AlertController } from 'ionic-angular';
import { ConfigMock, PlatformMock, AlertControllerMock } from '../../mocks';
import { AlertControllerMock, ConfigMock, PlatformMock } from 'ionic-mocks';
import { Page2 } from './page2';

const alertControllerMock: AlertController = AlertControllerMock.instance();

let fixture: ComponentFixture<Page2> = null;
let instance: any = null;

Expand All @@ -21,9 +19,9 @@ describe('Pages: Page2', () => {
declarations: [Page2],
providers: [
App, DomController, Form, Keyboard, MenuController, NavController,
{provide: Config, useClass: ConfigMock},
{provide: Platform, useClass: PlatformMock},
{provide: AlertController, useValue: alertControllerMock},
{provide: Config, useFactory: () => ConfigMock.instance()},
{provide: Platform, useFactory: () => PlatformMock.instance()},
{provide: AlertController, useFactory: () => AlertControllerMock.instance()},
],
imports: [
FormsModule,
Expand Down
6 changes: 3 additions & 3 deletions src/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { getTestBed, TestBed } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { App, Config, Form, IonicModule, Keyboard, DomController, MenuController, NavController, Platform } from 'ionic-angular';
import { ConfigMock, PlatformMock } from './mocks';
import { ConfigMock, PlatformMock } from 'ionic-mocks';
import { ClickersServiceMock } from './services/clickers.mock';
import { ClickersService } from './services';

Expand Down Expand Up @@ -56,8 +56,8 @@ export class TestUtils {
],
providers: [
App, Form, Keyboard, DomController, MenuController, NavController,
{provide: Platform, useClass: PlatformMock},
{provide: Config, useClass: ConfigMock},
{provide: Platform, useFactory: () => PlatformMock.instance()},
{provide: Config, useFactory: () => ConfigMock.instance()},
{provide: ClickersService, useClass: ClickersServiceMock},
],
imports: [
Expand Down

0 comments on commit 654df58

Please sign in to comment.