diff options
author | crupest <crupest@outlook.com> | 2019-03-04 19:58:48 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-03-04 19:58:48 +0800 |
commit | 1715b3a618ddffc28177e58ae21c91b30d586ccf (patch) | |
tree | 3bef8b64aea0792c3b415fa9236837afd1a2577e /Timeline/ClientApp/src/app/todo-list-page/todo-list.service.spec.ts | |
parent | 80343fab6624f74f0777968dd213c3a26e65890d (diff) | |
parent | 8033d6523885486c24af2bdd57a24b0fd62d0b00 (diff) | |
download | timeline-1715b3a618ddffc28177e58ae21c91b30d586ccf.tar.gz timeline-1715b3a618ddffc28177e58ae21c91b30d586ccf.tar.bz2 timeline-1715b3a618ddffc28177e58ae21c91b30d586ccf.zip |
Merge branch 'master' into user
Diffstat (limited to 'Timeline/ClientApp/src/app/todo-list-page/todo-list.service.spec.ts')
-rw-r--r-- | Timeline/ClientApp/src/app/todo-list-page/todo-list.service.spec.ts | 87 |
1 files changed, 24 insertions, 63 deletions
diff --git a/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.spec.ts b/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.spec.ts index 49b7bbc4..a2ad0cbd 100644 --- a/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.spec.ts +++ b/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.spec.ts @@ -2,8 +2,7 @@ import { TestBed } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { - TodoListService, WorkItem, AzureDevOpsAccessInfo, - WiqlResult, WiqlWorkItemResult, WorkItemResult, WorkItemTypeResult + TodoListService, IssueResponse, IssueResponseItem, TodoItem } from './todo-list.service'; import { toArray } from 'rxjs/operators'; @@ -14,80 +13,42 @@ describe('TodoListServiceService', () => { })); it('should be created', () => { - const service: TodoListService = TestBed.get(TodoListService); expect(service).toBeTruthy(); }); it('should work well', () => { const service: TodoListService = TestBed.get(TodoListService); - expect(service).toBeTruthy(); - const mockAccessInfo: AzureDevOpsAccessInfo = { - username: 'testusername', - personalAccessToken: 'testtoken', - organization: 'testorganization', - project: 'testproject' - }; - - const baseUrl = `https://dev.azure.com/${mockAccessInfo.organization}/${mockAccessInfo.project}/`; - - const mockWorkItems: WorkItem[] = Array.from({ length: 2 }, (_, i) => <WorkItem>{ - id: i, - title: 'Test work item ' + i, - isCompleted: i === 0, - detailUrl: `${baseUrl}_workitems/edit/${i}/`, - iconUrl: `${baseUrl}_api/wit/icon/${i}`, - }); - - const workItemTypeMap = new Map<WorkItem, string>(Array.from(mockWorkItems, v => <[WorkItem, string]>[v, 'type' + v.id])); + const baseUrl = service.baseUrl; + + const mockIssueList: IssueResponse = [{ + number: 1, + title: 'Issue title 1', + state: 'open', + html_url: 'test_url1' + }, { + number: 2, + title: 'Issue title 2', + state: 'closed', + html_url: 'test_url2', + pull_request: {} + }]; + + const mockTodoItemList: TodoItem[] = [{ + number: 1, + title: 'Issue title 1', + isClosed: false, + detailUrl: 'test_url1' + }]; service.getWorkItemList().pipe(toArray()).subscribe(data => { - expect(data).toEqual(mockWorkItems); + expect(data).toEqual(mockTodoItemList); }); const httpController: HttpTestingController = TestBed.get(HttpTestingController); - httpController.expectOne('/api/TodoPage/AzureDevOpsAccessInfo').flush(mockAccessInfo); - - const mockWiqlWorkItems: WiqlWorkItemResult[] = Array.from(mockWorkItems, v => <WiqlWorkItemResult>{ - id: v.id, - url: `${baseUrl}_apis/wit/workItems/${v.id}` - }); - - const authorizationHeader = 'Basic ' + btoa(mockAccessInfo.username + ':' + mockAccessInfo.personalAccessToken); - - httpController.expectOne(req => - req.url === `${baseUrl}_apis/wit/wiql?api-version=5.0` && - req.headers.get('Authorization') === authorizationHeader - ).flush(<WiqlResult>{ workItems: mockWiqlWorkItems }); - - function mapWorkItemToResult(mockWorkItem: WorkItem): WorkItemResult { - return { - id: mockWorkItem.id, - fields: { - [TodoListService.titleFieldName]: mockWorkItem.title, - [TodoListService.stateFieldName]: (mockWorkItem.isCompleted ? 'Closed' : 'Active'), - [TodoListService.typeFieldName]: workItemTypeMap.get(mockWorkItem) - } - }; - } - - for (let i = 0; i < mockWorkItems.length; i++) { - httpController.expectOne(req => - req.url === mockWiqlWorkItems[i].url && - req.headers.get('Authorization') === authorizationHeader - ).flush(mapWorkItemToResult(mockWorkItems[i])); - - httpController.expectOne(req => - req.url === `${baseUrl}_apis/wit/workitemtypes/${encodeURIComponent(workItemTypeMap.get(mockWorkItems[i]))}?api-version=5.0` && - req.headers.get('Authorization') === authorizationHeader - ).flush(<WorkItemTypeResult>{ - icon: { - url: mockWorkItems[i].iconUrl - } - }); - } + httpController.expectOne(request => request.url === baseUrl + '/issues' && request.params.get('state') === 'all').flush(mockIssueList); httpController.verify(); }); |