From 61844a348b2934321567b1457e6d05f318fc8b7e Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 6 Mar 2019 21:29:36 +0800 Subject: Reorganize file structure. --- .../src/app/todo/todo-item/todo-item.component.css | 25 ++++++++++++ .../app/todo/todo-item/todo-item.component.html | 9 +++++ .../app/todo/todo-item/todo-item.component.spec.ts | 46 ++++++++++++++++++++++ .../src/app/todo/todo-item/todo-item.component.ts | 13 ++++++ 4 files changed, 93 insertions(+) create mode 100644 Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.css create mode 100644 Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.html create mode 100644 Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.spec.ts create mode 100644 Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts (limited to 'Timeline/ClientApp/src/app/todo/todo-item') diff --git a/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.css b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.css new file mode 100644 index 00000000..dcf25fd8 --- /dev/null +++ b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.css @@ -0,0 +1,25 @@ +.item-card { + padding: 0; + display: flex; + overflow: hidden; +} + +.item-body-box { + margin: 5px!important +} + +.item-color-block { + width: 15px; + align-self: stretch; + flex: 0 0 auto; +} + +.item-title { + vertical-align: middle; +} + +.item-detail-button { + width: unset; + height: unset; + line-height: unset; +} diff --git a/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.html b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.html new file mode 100644 index 00000000..6f76e73b --- /dev/null +++ b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.html @@ -0,0 +1,9 @@ + + +
+ {{ item.number }}. {{ item.title }} + + arrow_forward + +
+
diff --git a/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.spec.ts b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.spec.ts new file mode 100644 index 00000000..239ffc42 --- /dev/null +++ b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.spec.ts @@ -0,0 +1,46 @@ +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; + +import { TodoItem } from '../todo-item'; +import { TodoItemComponent } from '../todo-item/todo-item.component'; + +describe('TodoItemComponent', () => { + let component: TodoItemComponent; + let fixture: ComponentFixture; + + const mockTodoItem: TodoItem = { + number: 1, + title: 'Title', + isClosed: true, + detailUrl: '/detail', + }; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [TodoItemComponent], + schemas: [NO_ERRORS_SCHEMA] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TodoItemComponent); + component = fixture.componentInstance; + component.item = mockTodoItem; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should set title', () => { + expect((fixture.debugElement.query(By.css('span.item-title')).nativeElement as HTMLSpanElement).textContent).toBe( + mockTodoItem.number + '. ' + mockTodoItem.title + ); + }); + + it('should set detail link', () => { + expect(fixture.debugElement.query(By.css('a.item-detail-button')).properties['href']).toBe(mockTodoItem.detailUrl); + }); +}); diff --git a/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts new file mode 100644 index 00000000..2ea6997a --- /dev/null +++ b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts @@ -0,0 +1,13 @@ +import { Component, Input } from '@angular/core'; +import { TodoItem } from '../todo-item'; + +@Component({ + selector: 'app-todo-item', + templateUrl: './todo-item.component.html', + styleUrls: ['./todo-item.component.css', '../todo-list-color-block.css'] +}) +export class TodoItemComponent { + + @Input() item: TodoItem; + +} -- cgit v1.2.3