import {BlogComponent} from './blog.component' describe('Blog Component Isolated Test', () => { let blogComponent: BlogComponent; beforeEach(() => { blogComponent = new BlogComponent(null, null, null); }); it('should have initial entries', () => { expect(blogComponent.entries.length).toBe(2); blogComponent.entries.forEach((entry) => { expect(entry.id).toBeLessThanOrEqual(blogComponent.id); expect(entry.createdAt.getDate()).toBe(new Date().getDate()); }) }); it('should create new list entry and increment id', () => { let preCreationId = blogComponent.id; let entryTitle = "some fancy title"; let entryImage = "https://avatars1.githubusercontent.com/u/3284117"; let entryText = "some important text"; blogComponent.createBlogEntry(entryTitle, entryImage, entryText); let newEntry = blogComponent.entries[blogComponent.entries.length - 1]; expect(newEntry.id - 1).toBe(preCreationId); expect(newEntry.image).toBe(entryImage); expect(newEntry.text).toBe(entryText); expect(newEntry.createdAt.getDate()).toBe(new Date().getDate()); }); it('should delete entry by given id - and not change global max-id', () => { let preDeletionId = blogComponent.id; let latestId = blogComponent.entries[blogComponent.entries.length - 1].id; blogComponent.deleteBlogEntry(latestId); expect(blogComponent.id).toBe(preDeletionId); expect(() => { if (blogComponent.entries.length > 0) { return blogComponent.entries[blogComponent.entries.length - 1]; } else { return 0; } }).not.toBe(latestId); }); });