Merge branch 'tests'

This commit is contained in:
2020-07-14 18:24:56 +02:00
14 changed files with 473 additions and 173 deletions

View File

@@ -1,33 +1,29 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule],
declarations: [AppComponent],
}).compileComponents();
}));
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
it(`should have as title 'frontend'`, () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app.title).toEqual('frontend');
});
it('should render title', () => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector('.content span').textContent).toContain(
'frontend app is running!'
);
});
});
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
],
declarations: [
AppComponent,
],
}).compileComponents();
}));
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
it('should render router-outlet', () => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector('router-outlet').textContent).toBeDefined();
});
});

View File

@@ -0,0 +1,28 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { BacklogComponent } from './backlog.component';
import { BackendService } from '../../services/backend.service';
import { HttpClientModule } from '@angular/common/http';
describe('BacklogComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
HttpClientModule,
],
declarations: [
BacklogComponent,
],
providers: [
BackendService,
]
}).compileComponents();
}));
it('should create the component', () => {
const fixture = TestBed.createComponent(BacklogComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
});

View File

@@ -0,0 +1,35 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { BackendService } from '../../services/backend.service';
import { HttpClientModule } from '@angular/common/http';
import { DashboardComponent } from './dashboard.component';
describe('DashboardComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
HttpClientModule,
],
declarations: [
DashboardComponent,
],
providers: [
BackendService,
]
}).compileComponents();
}));
it('should create the component', () => {
const fixture = TestBed.createComponent(DashboardComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
it('should parse dates correctly', () => {
const fixture = TestBed.createComponent(DashboardComponent);
const app = fixture.componentInstance;
expect(app.toDateString('2020-07-01T14:30:20')).toEqual('1.7.2020');
expect(app.toDateString('2020-11-23T07:30:20')).toEqual('23.11.2020');
});
});

View File

@@ -0,0 +1,36 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { HttpClientModule } from '@angular/common/http';
import { BackendService } from '../../services/backend.service';
import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { SprintFormComponent } from './sprint-form.component';
describe('SprintFormComponent', () => {
let component: SprintFormComponent;
let fixture: ComponentFixture<SprintFormComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
NgbModule,
],
declarations: [ SprintFormComponent ],
providers: [
BackendService,
NgbActiveModal,
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SprintFormComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -0,0 +1,28 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { BackendService } from '../../services/backend.service';
import { HttpClientModule } from '@angular/common/http';
import { SprintTableComponent } from './sprint-table.component';
describe('SprintTableComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
HttpClientModule,
],
declarations: [
SprintTableComponent,
],
providers: [
BackendService,
]
}).compileComponents();
}));
it('should create the component', () => {
const fixture = TestBed.createComponent(SprintTableComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
});

View File

@@ -0,0 +1,28 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { BackendService } from '../../services/backend.service';
import { HttpClientModule } from '@angular/common/http';
import { TaskTableComponent } from './task-table.component';
describe('TaskTableComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
HttpClientModule,
],
declarations: [
TaskTableComponent,
],
providers: [
BackendService,
]
}).compileComponents();
}));
it('should create the component', () => {
const fixture = TestBed.createComponent(TaskTableComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
});

View File

@@ -0,0 +1,28 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { BackendService } from '../../../services/backend.service';
import { HttpClientModule } from '@angular/common/http';
import { UserstoryTableComponent } from './userstory-table.component';
describe('UserstoryTableComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
HttpClientModule,
],
declarations: [
UserstoryTableComponent,
],
providers: [
BackendService,
]
}).compileComponents();
}));
it('should create the component', () => {
const fixture = TestBed.createComponent(UserstoryTableComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
});

View File

@@ -1,24 +1,36 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TaskFormComponent } from './task-form.component';
describe('TaskFormComponent', () => {
let component: TaskFormComponent;
let fixture: ComponentFixture<TaskFormComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [TaskFormComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TaskFormComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TaskFormComponent } from './task-form.component';
import { HttpClientModule } from '@angular/common/http';
import { BackendService } from '../../services/backend.service';
import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';
describe('TaskFormComponent', () => {
let component: TaskFormComponent;
let fixture: ComponentFixture<TaskFormComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
NgbModule,
],
declarations: [TaskFormComponent],
providers: [
BackendService,
NgbActiveModal,
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TaskFormComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -0,0 +1,36 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { HttpClientModule } from '@angular/common/http';
import { BackendService } from '../../services/backend.service';
import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { UserstoryFormComponent } from './userstory-form.component';
describe('UserstoryFormComponent', () => {
let component: UserstoryFormComponent;
let fixture: ComponentFixture<UserstoryFormComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
NgbModule,
],
declarations: [ UserstoryFormComponent ],
providers: [
BackendService,
NgbActiveModal,
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(UserstoryFormComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -0,0 +1,28 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { BackendService } from '../../services/backend.service';
import { HttpClientModule } from '@angular/common/http';
import { UserstoryInnerTableComponent } from './userstory-inner-table.component';
describe('UserstoryInnerTableComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
HttpClientModule,
],
declarations: [
UserstoryInnerTableComponent,
],
providers: [
BackendService,
]
}).compileComponents();
}));
it('should create the component', () => {
const fixture = TestBed.createComponent(UserstoryInnerTableComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
});

View File

@@ -0,0 +1,39 @@
import { sortByDateAscending, sortByNumberAscending, sortByStringAscending } from './sorting.service';
describe('SortingService', () => {
it('should sort correctly by number', () => {
const items = [7, 3, 2, 6, 4, 8, 0];
sortByNumberAscending(items, x => x);
expect(items).toEqual([0, 2, 3, 4, 6, 7, 8]);
});
it('should sort strings by length correctly', () => {
const items = ['aaaaa', 'a', 'aaa'];
sortByNumberAscending(items, x => x.length);
expect(items).toEqual(['a', 'aaa', 'aaaaa']);
});
it('should sort strings alphanumerically', () => {
const items = ['biz', 'bar', 'foo'];
sortByStringAscending(items, x => x);
expect(items).toEqual(['bar', 'biz', 'foo']);
});
it('should sort dates correctly', () => {
const items = [
new Date(2020, 2, 10, 13, 30),
new Date(2020, 2, 10, 12, 30),
new Date(2019, 4, 4),
new Date(2020, 2, 11, 13, 30),
];
sortByDateAscending(items, x => x);
expect(items).toEqual([
new Date(2019, 4, 4),
new Date(2020, 2, 10, 12, 30),
new Date(2020, 2, 10, 13, 30),
new Date(2020, 2, 11, 13, 30),
]);
});
});

View File

@@ -1,24 +1,24 @@
import { Priority } from './backend.service';
export function sortByNumberAscending<T>(items: T[], key: (T) => number) {
return items.sort((a, b) => key(a) - key(b));
}
export function sortByStringAscending<T>(items: T[], key: (T) => string) {
return items.sort((a, b) => key(a).localeCompare(key(b)));
}
export function sortByDateAscending<T>(items: T[], key: (T) => Date) {
return items.sort((a, b) => <any>key(b) - <any>key(a));
}
export function getNumberForPriority(priority: Priority): number {
switch (priority) {
case Priority.High:
return 2;
case Priority.Medium:
return 1;
case Priority.Low:
return 0;
}
}
import { Priority } from './backend.service';
export function sortByNumberAscending<T>(items: T[], key: (T) => number) {
return items.sort((a, b) => key(a) - key(b));
}
export function sortByStringAscending<T>(items: T[], key: (T) => string) {
return items.sort((a, b) => key(a).localeCompare(key(b)));
}
export function sortByDateAscending<T>(items: T[], key: (T) => Date) {
return items.sort((a, b) => (key(a) as any) - (key(b) as any));
}
export function getNumberForPriority(priority: Priority): number {
switch (priority) {
case Priority.High:
return 2;
case Priority.Medium:
return 1;
case Priority.Low:
return 0;
}
}