diff options
Diffstat (limited to '')
-rw-r--r-- | third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts new file mode 100644 index 0000000000..1a15db9b5b --- /dev/null +++ b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts @@ -0,0 +1,106 @@ +import {TestBed, async, inject} from '@angular/core/testing'; +import {Todo} from './todo'; +import {TodoDataService} from './todo-data.service'; + +describe('TodoDataService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [TodoDataService] + }); + }); + + it('should ...', inject([TodoDataService], (service: TodoDataService) => { + expect(service).toBeTruthy(); + })); + + describe('#getAllTodos()', () => { + + it('should return an empty array by default', inject([TodoDataService], (service: TodoDataService) => { + expect(service.getAllTodos()).toEqual([]); + })); + + it('should return all todos', inject([TodoDataService], (service: TodoDataService) => { + let todo1 = new Todo({title: 'Hello 1', complete: false}); + let todo2 = new Todo({title: 'Hello 2', complete: true}); + service.addTodo(todo1); + service.addTodo(todo2); + expect(service.getAllTodos()).toEqual([todo1, todo2]); + })); + + }); + + describe('#save(todo)', () => { + + it('should automatically assign an incrementing id', inject([TodoDataService], (service: TodoDataService) => { + let todo1 = new Todo({title: 'Hello 1', complete: false}); + let todo2 = new Todo({title: 'Hello 2', complete: true}); + service.addTodo(todo1); + service.addTodo(todo2); + expect(service.getTodoById(1)).toEqual(todo1); + expect(service.getTodoById(2)).toEqual(todo2); + })); + + }); + + describe('#deleteTodoById(id)', () => { + + it('should remove todo with the corresponding id', inject([TodoDataService], (service: TodoDataService) => { + let todo1 = new Todo({title: 'Hello 1', complete: false}); + let todo2 = new Todo({title: 'Hello 2', complete: true}); + service.addTodo(todo1); + service.addTodo(todo2); + expect(service.getAllTodos()).toEqual([todo1, todo2]); + service.deleteTodoById(1); + expect(service.getAllTodos()).toEqual([todo2]); + service.deleteTodoById(2); + expect(service.getAllTodos()).toEqual([]); + })); + + it('should not removing anything if todo with corresponding id is not found', inject([TodoDataService], (service: TodoDataService) => { + let todo1 = new Todo({title: 'Hello 1', complete: false}); + let todo2 = new Todo({title: 'Hello 2', complete: true}); + service.addTodo(todo1); + service.addTodo(todo2); + expect(service.getAllTodos()).toEqual([todo1, todo2]); + service.deleteTodoById(3); + expect(service.getAllTodos()).toEqual([todo1, todo2]); + })); + + }); + + describe('#updateTodoById(id, values)', () => { + + it('should return todo with the corresponding id and updated data', inject([TodoDataService], (service: TodoDataService) => { + let todo = new Todo({title: 'Hello 1', complete: false}); + service.addTodo(todo); + let updatedTodo = service.updateTodoById(1, { + title: 'new title' + }); + expect(updatedTodo.title).toEqual('new title'); + })); + + it('should return null if todo is not found', inject([TodoDataService], (service: TodoDataService) => { + let todo = new Todo({title: 'Hello 1', complete: false}); + service.addTodo(todo); + let updatedTodo = service.updateTodoById(2, { + title: 'new title' + }); + expect(updatedTodo).toEqual(null); + })); + + }); + + describe('#toggleTodoComplete(todo)', () => { + + it('should return the updated todo with inverse complete status', inject([TodoDataService], (service: TodoDataService) => { + let todo = new Todo({title: 'Hello 1', complete: false}); + service.addTodo(todo); + let updatedTodo = service.toggleTodoComplete(todo); + expect(updatedTodo.complete).toEqual(true); + service.toggleTodoComplete(todo); + expect(updatedTodo.complete).toEqual(false); + })); + + }); + +});
\ No newline at end of file |