Skip to content

Commit d4d3982

Browse files
committed
added test. remove mock library as it is not working
1 parent 17c415a commit d4d3982

File tree

2 files changed

+39
-7
lines changed

2 files changed

+39
-7
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
"null-loader": "0.1.1",
5656
"protractor": "5.1.1",
5757
"ts-loader": "2.0.3",
58-
"ts-mockito": "^2.0.0",
5958
"ts-node": "3.0.2",
6059
"typescript": "2.2.1"
6160
},

src/pages/home/home.spec.ts

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,33 @@ import {
77
import { HomePage } from './home';
88
import { NavControllerMock, NavParamsMock, AlertControllerMock } from 'ionic-mocks';
99
import {ProjectProvider} from "../../providers/project/project";
10-
import {instance, mock} from "ts-mockito";
1110
import {PlatformMock} from "../../../test-config/mocks-ionic";
11+
import {Observable} from "rxjs";
12+
import {Project} from "../../model/project";
13+
import {Validator} from "validator.ts/Validator";
1214

1315
describe('HomePage', () => {
1416
let fixture;
15-
let component;
17+
let component: HomePage;
18+
let projectProvider = <ProjectProvider>{};
19+
let navController = NavControllerMock.instance();
20+
let alertController = AlertControllerMock.instance();
21+
let navParams = NavParamsMock.instance();
1622

1723
beforeEach(async(() => {
24+
projectProvider = <ProjectProvider>{};
25+
1826
TestBed.configureTestingModule({
1927
declarations: [ HomePage ],
2028
imports: [
2129
IonicPageModule.forChild(HomePage)
2230
],
2331
providers: [
2432
//mocking since they are actual dependency of the Homepage component
25-
{ provide: NavController, useValue: NavControllerMock.instance() },
26-
{ provide: NavParams, useValue: NavParamsMock.instance() },
27-
{ provide: ProjectProvider, useValue: instance(mock(ProjectProvider)) },
28-
{ provide: AlertController, useValue: AlertControllerMock.instance() },
33+
{ provide: NavController, useValue: navController },
34+
{ provide: NavParams, useValue: navParams },
35+
{ provide: ProjectProvider, useValue: projectProvider },
36+
{ provide: AlertController, useValue: alertController },
2937

3038
//test fixture that needs to be mock
3139
{ provide: Platform, useClass: PlatformMock },
@@ -49,4 +57,29 @@ describe('HomePage', () => {
4957
it ('should create a valid instance of HomePage', () => {
5058
expect(component instanceof HomePage).toBe(true);
5159
});
60+
61+
it ('should show error message when project is not valid', () => {
62+
component.saveOrUpdateProject();
63+
expect(alertController.create).toHaveBeenCalled();
64+
});
65+
66+
it ('should have an instance of project when passed to params is null', () => {
67+
expect(component.project).toBeTruthy();
68+
});
69+
70+
it ('should have shown an alert message when provider throws error', () => {
71+
projectProvider.saveOrUpdate = (p: Project) => Observable.throw("some errors");
72+
expect(alertController.create).toHaveBeenCalled();
73+
});
74+
75+
// it ('should go back when saving a valid project', () => {
76+
// let validator = new Validator();
77+
// let errors = validator.validate(this.project);
78+
// component.project.name = "test";
79+
// expect(errors.length).toEqual(0);
80+
//
81+
// projectProvider.saveOrUpdate = (p: Project) => Observable.of(component.project);
82+
// expect(alertController.create).toHaveBeenCalledTimes(0);
83+
// expect(navController.pop).toHaveBeenCalled();
84+
// });
5285
});

0 commit comments

Comments
 (0)