describe('LoadingService', () => { let tcb; beforeEach(inject([TestComponentBuilder], _tcb => { tcb = _tcb })); setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); it('should generate a template for loading spinner', done => { return tcb.createAsync(LoadingIndicator).then(fixture => { let element = fixture.nativeElement; fixture.detectChanges(); //trigger change detection expect(element.querySelector('div')).not.toBeNull(); expect(element.querySelector('div').className).toBe('loading'); expect(element.querySelector('div').querySelector('div')).not.toBeNull(); expect(element.querySelector('div').querySelector('div').className).toBe('loading-message'); expect(element.querySelector('div').querySelector('div').querySelector('paper-spinner')).not.toBeNull(); removeLoading(); done(); }) .catch(e => done.fail(e)); }); });
initialSetup(){ if(BasicTestSetup.isInitialized){ return; } BasicTestSetup.isInitialized = true; // reflector.reflectionCapabilities = new ReflectionCapabilities(); setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); // beforeEach configuration: // - clear the bindings before each test, // - collect the bindings before each test, see beforeEachProviders(), // - create the test injector to be used in beforeEach() and it() // gns.beforeEach(() { // _testInjector.reset(); // _currentTestFuture = null; // }); // var completerProvider = bind(AsyncTestCompleter).toFactory(() { // // Mark the test as async when an AsyncTestCompleter is injected in an it(), // if (!_inIt) throw 'AsyncTestCompleter can only be injected in an "it()"'; // _isCurrentTestAsync = true; // return new AsyncTestCompleter(); // }); // gns.beforeEach(() { // _isCurrentTestAsync = false; // _testInjector.addProviders([completerProvider]); // }); }
describe('MyList Tests', () => { setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); beforeEachProviders(() => { return [ HTTP_PROVIDERS, provide(XHRBackend, {useClass: MockBackend}), MyService ] }); it('Should create a component MyList', injectAsync([XHRBackend, MyService, TestComponentBuilder], (backend, service, tcb) => { backend.connections.subscribe( (connection:MockConnection) => { var options = new ResponseOptions({ body: [ { "login": "******", "id": 1, "avatar_url": "https://avatars.githubusercontent.com/u/1?v=3", "gravatar_id": "", "url": "https://api.github.com/users/mojombo", "html_url": "https://github.com/mojombo", "followers_url": "https://api.github.com/users/mojombo/followers", "following_url": "https://api.github.com/users/mojombo/following{/other_user}", "gists_url": "https://api.github.com/users/mojombo/gists{/gist_id}", "starred_url": "https://api.github.com/users/mojombo/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/mojombo/subscriptions", "organizations_url": "https://api.github.com/users/mojombo/orgs", "repos_url": "https://api.github.com/users/mojombo/repos", "events_url": "https://api.github.com/users/mojombo/events{/privacy}", "received_events_url": "https://api.github.com/users/mojombo/received_events", "type": "User", "site_admin": false } ] }); var response = new Response(options); connection.mockRespond(response); } ); return tcb .createAsync(TestMyList) .then((fixture) => { fixture.detectChanges(); var compiled = fixture.debugElement.nativeElement; expect(compiled.innerHTML).toContain('Mojombo'); }); }) ); });
describe('Employee Detail Tests', () => { resetBaseTestProviders(); setBaseTestProviders( TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS ); beforeEachProviders(() => { return [ ROUTER_DIRECTIVES, ROUTER_PROVIDERS, HTTP_PROVIDERS, EmployeeDetailServiceComponent, EmployeeDeleteServiceComponent, provide(XHRBackend, {useClass: MockBackend}), provide(APP_BASE_HREF, {useValue: '/'}), provide(ROUTER_PRIMARY_COMPONENT, {useValue: AppComponent}), provide(ApplicationRef, {useClass: MockApplicationRef}), RouteRegistry, provide(Location, {useClass: SpyLocation}), provide(Router, {useClass: RootRouter}), provide(RouteParams, { useValue: new RouteParams({ id: '1' }) }) ] }); it('Should display the list of employees', injectAsync([XHRBackend, TestComponentBuilder], (backend, tcb) => { backend.connections.subscribe( (connection:MockConnection) => { var options = new ResponseOptions({ body: { "id": 1, "name": "Roshan Shrestha" } }); var response = new Response(options); connection.mockRespond(response); } ); return tcb .createAsync(TestMyDetail) .then((fixture) => { fixture.detectChanges(); var compiled = fixture.nativeElement; expect(compiled.innerHTML).toContain('Roshan Shrestha'); var src = (new BrowserDomAdapter()).getProperty(compiled.querySelector('a'), 'href'); // Employee link expectation expect(src).toBe('http://localhost:9876/employee/1/edit'); }); }) ); });
describe('todo_component', () => { setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); beforeEachProviders(() => [provide(TodoService, {useClass: MockTodoService})]); describe('creation', () => { it('should create the component correctly', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb.createAsync(TodoCmp).then((fixture) => { fixture.detectChanges(); let compiled = fixture.debugElement.nativeElement; expect(compiled).toBeDefined(); }); })); it('should inicialize the cmp correctly', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb.createAsync(TodoCmp).then((fixture) => { let instance = fixture.debugElement.componentInstance; spyOn(instance, '_getAll').and.callFake(() => {}); fixture.detectChanges(); expect(instance._getAll).toHaveBeenCalled(); }); })); it('should call add correctly', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb.createAsync(TodoCmp).then((fixture) => { fixture.detectChanges(); let instance = fixture.debugElement.componentInstance; let _todoMsg = 'yo'; instance.add(_todoMsg); }); })); it('should call remove correctly', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb.createAsync(TodoCmp).then((fixture) => { fixture.detectChanges(); let instance = fixture.debugElement.componentInstance; let _id = 'abc123'; instance.remove(_id); }); })); }); });
describe('Employee Edit Form Tests', () => { resetBaseTestProviders(); setBaseTestProviders( TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS ); beforeEachProviders(() => { return [ ROUTER_DIRECTIVES, ROUTER_PROVIDERS, HTTP_PROVIDERS, EmployeeEditFormComponent, EmployeeDetailServiceComponent, EmployeeEditFormServiceComponent, provide(XHRBackend, {useClass: MockBackend}), provide(APP_BASE_HREF, {useValue: '/'}), provide(ROUTER_PRIMARY_COMPONENT, {useValue: AppComponent}), provide(ApplicationRef, {useClass: MockApplicationRef}), RouteRegistry, provide(Location, {useClass: SpyLocation}), provide(Router, {useClass: RootRouter}), provide(RouteParams, { useValue: new RouteParams({ id: '1' }) }) ] }); it('Should display the edit form of employees', injectAsync([XHRBackend, TestComponentBuilder], (backend, tcb) => { backend.connections.subscribe( (connection:MockConnection) => { var options = new ResponseOptions({ body: { "id": 1, "name": "Roshan Shrestha" } }); var response = new Response(options); connection.mockRespond(response); } ); return tcb .createAsync(TestMyEditForm) .then((fixture) => { fixture.detectChanges(); var compiled = fixture.nativeElement; expect(compiled.innerHTML).toContain('Employee Edit Form'); }); }) ); });
describe('Threads page test', () => { setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); let component: ThreadListComponent; var mockService: any; var response: any; beforeEach((done: Function) => { response = jasmine.createSpyObj("response", ["json"]); mockService = jasmine.createSpyObj("mockService", ["getService"]); var json = { "_embedded": { "threads": [{ "id": 1, "countOfPosts": 1, "title": "Spring MVC form Validation: How to remove these lines from getting displayed", "_links": { "self": { "href": "http://localhost:8080/forum-spring-angular/rest/thread/1" } } }, { "id": 2, "countOfPosts": 1, "title": "Spring Data JPA aggregation group by period of time", "_links": { "self": { "href": "http://localhost:8080/forum-spring-angular/rest/thread/2" } } }, { "id": 3, "countOfPosts": 1, "title": "How to find all revisions for an entity using spring data envers?", "_links": { "self": { "href": "http://localhost:8080/forum-spring-angular/rest/thread/3" } } }] }, "_links": { "self": { "href": "http://localhost:8080/forum-spring-angular/rest/thread" } }, "page": { "size": 20, "totalElements": 5, "totalPages": 1, "number": 0 } }; response.json.and.returnValue(json); mockService.getService.and.callFake(function(param: string) { return new Promise(function(resolve, reject) { if (true) { resolve(response); } }); }); done(); }); beforeEachProviders(() => [ provide(RouteParams, { useValue: mockService }), provide(RestService, { useValue: mockService }) ]); it('should be able to test', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb.createAsync(ThreadListComponent).then((fixture) => { fixture.detectChanges(); expect(mockService.getService).toHaveBeenCalled(); return fixture; }).then(fixture => { expect(response.json).toHaveBeenCalled(); fixture.detectChanges(); var results = fixture.debugElement.nativeElement.querySelectorAll("div.wrap-ut"); expect(results.length).toBe(3); expect(results[0].querySelector('link-to a').innerHTML).toBe('Spring MVC form Validation: How to remove these lines from getting displayed'); }); })); it('Should capitalize all words in a string', () => { var result = 'Golden Retriever'; expect(result).toEqual('Golden Retriever'); }); });
import { TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS} from 'angular2/platform/testing/browser'; import { setBaseTestProviders } from 'angular2/testing'; import { IonicApp, Platform, MenuController } from 'ionic-angular'; import { MyApp } from './app'; // this needs doing _once_ for the entire test suite, hence it's here setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); let redditApp : MyApp = null; function getComponentStub(name: string): any { 'use strict'; let component: Object = { setRoot: function(): boolean { return true; }, close: function(root: any): boolean { return true; }, }; return component; } export function main(): void { 'use strict'; describe('MyApp', () => { beforeEach(() => { let ionicApp: IonicApp = new IonicApp(null, null, null); let platform: Platform = new Platform(); let menuController: MenuController = new MenuController(); redditApp = new MyApp(ionicApp, platform, menuController); });
import 'es6-shim'; import 'zone.js'; import 'reflect-metadata'; import {setBaseTestProviders} from 'angular2/testing'; import {TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS} from 'angular2/platform/testing/browser'; import {UrlResolver} from 'angular2/compiler'; import {provide} from 'angular2/core'; setBaseTestProviders( TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS.concat([ provide(UrlResolver, {useFactory: () => new FakeUrlResolver()}) ]) ); class FakeUrlResolver extends UrlResolver { constructor() { super(); } resolve(baseUrl: string, url: string): string { // We do not attempt to load any CSS, // as it is irrelevant during unit tests. if (url.substr(-4) === '.css') { return ''; } return super.resolve(baseUrl, url); } }
beforeAll(() => { setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); });