From 38789fb77f96c19026f0e5e63c1341ad5d894a51 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Wed, 12 Dec 2018 07:21:41 -0700 Subject: [PATCH] SHIBUI-1031 Fixing unit tests --- .../user/admin/service/admin.service.spec.ts | 77 +++++++++++++++---- ui/src/app/user/user.component.ts | 7 +- 2 files changed, 61 insertions(+), 23 deletions(-) diff --git a/ui/src/app/user/admin/service/admin.service.spec.ts b/ui/src/app/user/admin/service/admin.service.spec.ts index 77b1a27ea..294bc7c3f 100644 --- a/ui/src/app/user/admin/service/admin.service.spec.ts +++ b/ui/src/app/user/admin/service/admin.service.spec.ts @@ -1,37 +1,80 @@ import { TestBed, async, inject } from '@angular/core/testing'; -import { HttpModule } from '@angular/http'; import { AdminService } from './admin.service'; +import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; +import { HttpRequest, HttpClientModule } from '@angular/common/http'; +import { Admin } from '../model/admin'; + +let users = [ + { + resourceId: 'abc', + role: 'SUPER_ADMIN', + email: 'foo@bar.com', + name: { + first: 'Jane', + last: 'Doe' + } + }, + { + resourceId: 'def', + role: 'DELEGATED_ADMIN', + email: 'bar@baz.com', + name: { + first: 'John', + last: 'Doe' + } + } +]; describe('Admin Service', () => { - let service: AdminService; + // let service: AdminService; beforeEach(() => { TestBed.configureTestingModule({ - imports: [HttpModule], + imports: [ + HttpClientModule, + HttpClientTestingModule + ], providers: [ AdminService ] }); - service = TestBed.get(AdminService); + // service = TestBed.get(AdminService); }); - it('should instantiate', () => { - expect(service).toBeDefined(); - }); + describe('query', () => { + it(`should send an expected query request`, async(inject([AdminService, HttpTestingController], + (service: AdminService, backend: HttpTestingController) => { + service.query().subscribe(); - describe('query method', () => { - it('should return a list of users', () => { - expect(true).toBe(false); - }); + backend.expectOne((req: HttpRequest) => { + return req.url === '/api/users' + && req.method === 'GET'; + }, `GET admin collection`); + } + ))); }); describe('update method', () => { - it('should send an http put request', () => { - expect(true).toBe(false); - }); + it(`should send an expected put request`, async(inject([AdminService, HttpTestingController], + (service: AdminService, backend: HttpTestingController) => { + service.update({...users[0]}).subscribe(); + + backend.expectOne((req: HttpRequest) => { + return req.url === '/api/users/abc' + && req.method === 'PUT'; + }, `PUT admin user`); + } + ))); }); describe('remove method', () => { - it('should send an http delete request', () => { - expect(true).toBe(false); - }); + it(`should send an expected delete request`, async(inject([AdminService, HttpTestingController], + (service: AdminService, backend: HttpTestingController) => { + service.remove(users[0].resourceId).subscribe(); + + backend.expectOne((req: HttpRequest) => { + return req.url === '/api/users/abc' + && req.method === 'DELETE'; + }, `DELETE admin user`); + } + ))); }); }); diff --git a/ui/src/app/user/user.component.ts b/ui/src/app/user/user.component.ts index 6dcb47615..1c571d4b0 100644 --- a/ui/src/app/user/user.component.ts +++ b/ui/src/app/user/user.component.ts @@ -1,7 +1,4 @@ import { Component, ChangeDetectionStrategy } from '@angular/core'; -import { Store } from '@ngrx/store'; - -import * as fromRoot from '../app.reducer'; @Component({ selector: 'user-page', @@ -11,7 +8,5 @@ import * as fromRoot from '../app.reducer'; }) export class UserPageComponent { - constructor( - private store: Store - ) {} + constructor() {} }