From ed665a52af638042772c15835f5f86ee5c45d7ed Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Fri, 30 Mar 2018 14:10:07 -0400 Subject: [PATCH 1/4] added block provider spec --- app/src/providers/blocks/blocks.spec.ts | 50 +++++++++++++++++++++++++ app/src/services/blocksService.ts | 3 ++ 2 files changed, 53 insertions(+) create mode 100644 app/src/providers/blocks/blocks.spec.ts diff --git a/app/src/providers/blocks/blocks.spec.ts b/app/src/providers/blocks/blocks.spec.ts new file mode 100644 index 0000000..88f89fd --- /dev/null +++ b/app/src/providers/blocks/blocks.spec.ts @@ -0,0 +1,50 @@ +import { TestBed, getTestBed, inject, async } from '@angular/core/testing'; +import { Http, HttpModule, BaseRequestOptions, Response, ResponseOptions } from '@angular/http'; +import { MockBackend } from '@angular/http/testing'; +import { BlocksProvider } from './blocks' +import { ApiProvider } from '../api/api'; + +describe('Blocks Provider', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + ], + providers: [ + BlocksProvider, + ApiProvider, + MockBackend, + BaseRequestOptions, + { + provide: Http, + useFactory: (mockBackend, options) => { + return new Http(mockBackend, options); + }, + deps: [MockBackend, BaseRequestOptions] + } + ], + + imports: [ + HttpModule + ] + + }); + })); + + it('should ', inject([BlocksProvider, MockBackend], (blocksProvider, mockBackend) => { + const mockResponse = '{"blocks":[{"height":1563,"size":228,"virtualSize":228,"hash":"489e6480e453d763f58535d0ee01caf12aaaa14950af795b497b227fdbfbc502","time":1522354162,"txlength":1,"poolInfo":{}},{"height":1562,"size":228,"virtualSize":228,"hash":"48d7d1881936792f70ace3cdd1a7c4c1fd23271012f91158e3dcd5e41bcbcc8b","time":1522354162,"txlength":1,"poolInfo":{}},{"height":1561,"size":228,"virtualSize":228,"hash":"56cce3c458da02bc0c69797362178a5329a634a349c4ac7a15a0569169143de9","time":1522354162,"txlength":1,"poolInfo":{}},{"height":1560,"size":228,"virtualSize":228,"hash":"361c6eeadbd4547f8c821befda1d6e5cfcb82cb86069a01c473b53585d58fc34","time":1522354054,"txlength":1,"poolInfo":{}},{"height":1559,"size":228,"virtualSize":228,"hash":"435fa05d887f2426e1be3737bf6ef97949431e5bf52f2034fd797068cebedff4","time":1522354054,"txlength":1,"poolInfo":{}},{"height":1558,"size":228,"virtualSize":228,"hash":"32b34e269de0d96de19274c05cddf4a4b02abd2415935de5857c109a73b4bdd9","time":1522354054,"txlength":1,"poolInfo":{}},{"height":1557,"size":228,"virtualSize":228,"hash":"658314048fe1882392748acc5bb99ad9ab0d34508552a13ad8cbd45bfd8b3350","time":1522354054,"txlength":1,"poolInfo":{}}],"length":7,"pagination":{"next":"2018-03-30","prev":"2018-03-28","currentTs":1522367999,"current":"2018-03-29","isToday":true,"more":false}}'; + + mockBackend.connections.subscribe((connection) => { + connection.mockRespond(new Response(new ResponseOptions({ + body: mockResponse + }))); + }); + + blocksProvider.getBlocks().subscribe((response) => { + let blocks = JSON.parse(response._body).blocks; + + expect(Array.isArray(blocks)).toBeTruthy(); + expect(blocks.length).toBeGreaterThan(0); + expect(blocks.length).toBe(7); + }); + })); +}); diff --git a/app/src/services/blocksService.ts b/app/src/services/blocksService.ts index 6ebd7d3..9137647 100644 --- a/app/src/services/blocksService.ts +++ b/app/src/services/blocksService.ts @@ -3,6 +3,9 @@ import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { Block, InsightBlockObject } from '../models'; +/** + * @deprecated use BlocksProvider + */ @Injectable() export class BlocksService { From e438c546a79e4950a6dbc020fe44c22902ce0bb3 Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Fri, 30 Mar 2018 15:13:02 -0400 Subject: [PATCH 2/4] fixed tslint errors --- app/src/providers/blocks/blocks.spec.ts | 42 +++++++++++++++---------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/app/src/providers/blocks/blocks.spec.ts b/app/src/providers/blocks/blocks.spec.ts index 88f89fd..1aaa48a 100644 --- a/app/src/providers/blocks/blocks.spec.ts +++ b/app/src/providers/blocks/blocks.spec.ts @@ -1,7 +1,7 @@ -import { TestBed, getTestBed, inject, async } from '@angular/core/testing'; +import { TestBed, inject, async } from '@angular/core/testing'; import { Http, HttpModule, BaseRequestOptions, Response, ResponseOptions } from '@angular/http'; import { MockBackend } from '@angular/http/testing'; -import { BlocksProvider } from './blocks' +import { BlocksProvider } from './blocks'; import { ApiProvider } from '../api/api'; describe('Blocks Provider', () => { @@ -30,21 +30,29 @@ describe('Blocks Provider', () => { }); })); - it('should ', inject([BlocksProvider, MockBackend], (blocksProvider, mockBackend) => { - const mockResponse = '{"blocks":[{"height":1563,"size":228,"virtualSize":228,"hash":"489e6480e453d763f58535d0ee01caf12aaaa14950af795b497b227fdbfbc502","time":1522354162,"txlength":1,"poolInfo":{}},{"height":1562,"size":228,"virtualSize":228,"hash":"48d7d1881936792f70ace3cdd1a7c4c1fd23271012f91158e3dcd5e41bcbcc8b","time":1522354162,"txlength":1,"poolInfo":{}},{"height":1561,"size":228,"virtualSize":228,"hash":"56cce3c458da02bc0c69797362178a5329a634a349c4ac7a15a0569169143de9","time":1522354162,"txlength":1,"poolInfo":{}},{"height":1560,"size":228,"virtualSize":228,"hash":"361c6eeadbd4547f8c821befda1d6e5cfcb82cb86069a01c473b53585d58fc34","time":1522354054,"txlength":1,"poolInfo":{}},{"height":1559,"size":228,"virtualSize":228,"hash":"435fa05d887f2426e1be3737bf6ef97949431e5bf52f2034fd797068cebedff4","time":1522354054,"txlength":1,"poolInfo":{}},{"height":1558,"size":228,"virtualSize":228,"hash":"32b34e269de0d96de19274c05cddf4a4b02abd2415935de5857c109a73b4bdd9","time":1522354054,"txlength":1,"poolInfo":{}},{"height":1557,"size":228,"virtualSize":228,"hash":"658314048fe1882392748acc5bb99ad9ab0d34508552a13ad8cbd45bfd8b3350","time":1522354054,"txlength":1,"poolInfo":{}}],"length":7,"pagination":{"next":"2018-03-30","prev":"2018-03-28","currentTs":1522367999,"current":"2018-03-29","isToday":true,"more":false}}'; - - mockBackend.connections.subscribe((connection) => { - connection.mockRespond(new Response(new ResponseOptions({ - body: mockResponse - }))); - }); + it('should ', inject([BlocksProvider, MockBackend], (blocksProvider, mockBackend) => { + const mockResponse: string = `{"blocks":[ + {"height":1563,"size":228,"virtualSize":228,"hash":"489e6480e453d763f58535d0ee01caf12aaaa14950af795b497b227fdbfbc502","time":1522354162,"txlength":1,"poolInfo":{}}, + {"height":1562,"size":228,"virtualSize":228,"hash":"48d7d1881936792f70ace3cdd1a7c4c1fd23271012f91158e3dcd5e41bcbcc8b","time":1522354162,"txlength":1,"poolInfo":{}}, + {"height":1561,"size":228,"virtualSize":228,"hash":"56cce3c458da02bc0c69797362178a5329a634a349c4ac7a15a0569169143de9","time":1522354162,"txlength":1,"poolInfo":{}}, + {"height":1560,"size":228,"virtualSize":228,"hash":"361c6eeadbd4547f8c821befda1d6e5cfcb82cb86069a01c473b53585d58fc34","time":1522354054,"txlength":1,"poolInfo":{}}, + {"height":1559,"size":228,"virtualSize":228,"hash":"435fa05d887f2426e1be3737bf6ef97949431e5bf52f2034fd797068cebedff4","time":1522354054,"txlength":1,"poolInfo":{}}, + {"height":1558,"size":228,"virtualSize":228,"hash":"32b34e269de0d96de19274c05cddf4a4b02abd2415935de5857c109a73b4bdd9","time":1522354054,"txlength":1,"poolInfo":{}}, + {"height":1557,"size":228,"virtualSize":228,"hash":"658314048fe1882392748acc5bb99ad9ab0d34508552a13ad8cbd45bfd8b3350","time":1522354054,"txlength":1,"poolInfo":{}} + ],"length":7,"pagination":{"next":"2018-03-30","prev":"2018-03-28","currentTs":1522367999,"current":"2018-03-29","isToday":true,"more":false}}`; - blocksProvider.getBlocks().subscribe((response) => { - let blocks = JSON.parse(response._body).blocks; + mockBackend.connections.subscribe((connection) => { + connection.mockRespond(new Response(new ResponseOptions({ + body: mockResponse + }))); + }); - expect(Array.isArray(blocks)).toBeTruthy(); - expect(blocks.length).toBeGreaterThan(0); - expect(blocks.length).toBe(7); - }); - })); + blocksProvider.getBlocks().subscribe((response) => { + let blocks: any = JSON.parse(response._body).blocks; + + expect(Array.isArray(blocks)).toBeTruthy(); + expect(blocks.length).toBeGreaterThan(0); + expect(blocks.length).toBe(7); + }); + })); }); From ddcbeba3271a44f2871fd978452e33d69cad4a94 Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Mon, 23 Apr 2018 14:15:16 -0400 Subject: [PATCH 3/4] changed locationStrategy in order to remove hash from urls --- app/src/app/app.module.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/app/app.module.ts b/app/src/app/app.module.ts index f3b2050..6fbefc7 100644 --- a/app/src/app/app.module.ts +++ b/app/src/app/app.module.ts @@ -19,7 +19,9 @@ import { BlocksProvider } from '../providers/blocks/blocks'; BrowserModule, HttpModule, PagesModule, - IonicModule.forRoot(InsightApp) + IonicModule.forRoot(InsightApp, { + locationStrategy: 'path' + }) ], bootstrap: [IonicApp], entryComponents: [ From ca69a445ff678656a0e34119d7b79f26e5e0ea62 Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Mon, 23 Apr 2018 14:35:53 -0400 Subject: [PATCH 4/4] added description of blocks spec and removed console logs --- app/src/providers/blocks/blocks.spec.ts | 2 +- app/src/providers/currency/currency.ts | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/providers/blocks/blocks.spec.ts b/app/src/providers/blocks/blocks.spec.ts index 1aaa48a..a39ab64 100644 --- a/app/src/providers/blocks/blocks.spec.ts +++ b/app/src/providers/blocks/blocks.spec.ts @@ -30,7 +30,7 @@ describe('Blocks Provider', () => { }); })); - it('should ', inject([BlocksProvider, MockBackend], (blocksProvider, mockBackend) => { + it('should get blocks', inject([BlocksProvider, MockBackend], (blocksProvider, mockBackend) => { const mockResponse: string = `{"blocks":[ {"height":1563,"size":228,"virtualSize":228,"hash":"489e6480e453d763f58535d0ee01caf12aaaa14950af795b497b227fdbfbc502","time":1522354162,"txlength":1,"poolInfo":{}}, {"height":1562,"size":228,"virtualSize":228,"hash":"48d7d1881936792f70ace3cdd1a7c4c1fd23271012f91158e3dcd5e41bcbcc8b","time":1522354162,"txlength":1,"poolInfo":{}}, diff --git a/app/src/providers/currency/currency.ts b/app/src/providers/currency/currency.ts index 452fd10..0866276 100644 --- a/app/src/providers/currency/currency.ts +++ b/app/src/providers/currency/currency.ts @@ -26,10 +26,8 @@ export class CurrencyProvider { this.currencySymbol = this.defaultCurrency; let url: string = this.api.apiPrefix + 'explorers'; - console.log('exploers url is', url); this.http.get(url).subscribe( (data) => { - console.log('', data); this.explorers = JSON.parse(data['_body']); }, (err) => {