Add spec reporter; Add BlogEntry delete button funct test

merge-requests/1/head
Florian Hartwich 2017-04-04 01:10:22 +02:00
parent 155881ad0f
commit d40cf1f01e
7 changed files with 59 additions and 34 deletions

View File

@ -18,10 +18,16 @@ module.exports = function(config) {
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-spec-reporter'),
require('@angular/cli/plugins/karma')
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
// list of files / patterns to load in the browser
files: [
'./src/test.ts'
@ -50,7 +56,7 @@ module.exports = function(config) {
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
reporters: ['spec'],
// web server port

View File

@ -1,17 +1,16 @@
import {TestBed} from "@angular/core/testing";
import {BlogEntryComponent} from "./blog-entry.component";
import {BlogEntry} from "./blog-entry";
import {BlogComponent} from "../blog.component";
import {RouterTestingModule} from "@angular/router/testing";
describe('Blog Entry Isolated Test', () => {
beforeEach(() => {
it('should render DOM correctly according to Input', () => {
// Umgebung initialisieren
TestBed.configureTestingModule({
declarations: [BlogEntryComponent],
})
});
it('should render DOM correct according to Input', () => {
// Umgebung initialisieren
const fixture = TestBed.createComponent(BlogEntryComponent);
const blogEntryComponent : BlogEntryComponent = fixture.componentInstance;
const element = fixture.nativeElement;
@ -40,8 +39,8 @@ describe('Blog Entry Isolated Test', () => {
// textContent statt innerHtml
// siehe http://stackoverflow.com/questions/40227533/angular-2-and-jasmine-unit-testing-cannot-get-the-innerhtml
const blogTitle = element.querySelector('div /deep/ .blog-summary > span');
expect(blogTitle.textContent).toBe(testTitle);
const blogTitle = element.querySelector('div /deep/ .blog-summary > span').textContent;
expect(blogTitle).toBe(testTitle);
const blogText = element.querySelector('div /deep/ .blog-summary > p').textContent;
expect(blogText).toBe(testText);
@ -58,3 +57,28 @@ describe('Blog Entry Isolated Test', () => {
});
});
describe('BlogEntryComp -> BlogComp Relational Test', () => {
it ('should remove entry from BlogComponent on "delete" button click', () => {
TestBed.configureTestingModule({
imports: [RouterTestingModule.withRoutes([])],
declarations: [BlogEntryComponent, BlogComponent]
});
const entryFixture = TestBed.createComponent(BlogEntryComponent);
const entryInstance : BlogEntryComponent = entryFixture.componentInstance;
const blogFixture = TestBed.createComponent(BlogComponent);
const blogInstance : BlogComponent = blogFixture.componentInstance;
const blogEntry : BlogEntry = blogInstance.entries[0];
entryInstance.entry = blogEntry;
entryInstance.blogComponent = blogInstance;
const oldLength = blogInstance.entries.length;
entryFixture.nativeElement.querySelector('div /deep/ .blog-delete > button').click();
expect(blogInstance.entries.length).toBe(oldLength - 1);
});
});

View File

@ -1,12 +1,11 @@
import {BlogComponent} from './blog.component'
import {Title} from "@angular/platform-browser";
describe('Blog Component Isolated Test', () => {
let blogComponent: BlogComponent;
beforeEach(() => {
blogComponent = new BlogComponent(null, null, new Title('Project Blog'));
blogComponent = new BlogComponent(null, null, null);
});
it('should have initial entries', () => {
@ -25,7 +24,7 @@ describe('Blog Component Isolated Test', () => {
blogComponent.createBlogEntry(entryTitle, entryImage, entryText);
let newEntry = blogComponent.entries[blogComponent.entries.length - 1];
expect(newEntry.id - 1).toBe(preCreationId)
expect(newEntry.id - 1).toBe(preCreationId);
expect(newEntry.image).toBe(entryImage);
expect(newEntry.text).toBe(entryText);
expect(newEntry.createdAt.getDate()).toBe(new Date().getDate());

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,6 @@ export class LoginComponent {
constructor(private loginService: LoginService,
private router: Router,
private route: ActivatedRoute) {
}
login(userName: string, password: string) {

View File

@ -1,5 +1,5 @@
// Test Suite
describe('Basic test', () => {
describe('Basic Test', () => {
// Variablendeklaration zur Verwendung in mehreren Testfällen
let someInt;