This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit e483e702 authored by Michael Breu's avatar Michael Breu :speech_balloon:
Browse files

Fixing Tests

parent 92a0c640
1 merge request!62created achievementService and separated some functionality out of...
......@@ -2,7 +2,7 @@ import { ComponentFixture, TestBed, waitForAsync, fakeAsync, tick } from '@angul
import { GitsearchTestModule } from '../../test.module';
import { PagesComponent } from 'app/editorialPages/pages.component';
import { PagesService } from 'app/shared/service/pages-service';
import { ActivatedRoute, Router, RouterState } from '@angular/router';
import { ActivatedRoute, Router } from '@angular/router';
import { PagesMarkDownViewerComponent } from 'app/editorialPages/markDownViewer/markDownViewer.component';
import { MarkdownComponent, MarkdownModule, MarkdownService, MarkedOptions } from 'ngx-markdown';
import { RouterTestingModule } from '@angular/router/testing';
......@@ -10,140 +10,149 @@ import { PagesResolve } from 'app/editorialPages/pages.route';
import { Location } from '@angular/common';
import { of } from 'rxjs';
import { By } from '@angular/platform-browser';
import { TranslateService } from '@ngx-translate/core';
import { markedOptionsFactory, MyRenderer } from 'app/editorialPages/editorialPages.module';
describe('Component Tests', () => {
describe('Pages Component', () => {
let comp: PagesComponent;
let fixture: ComponentFixture<PagesComponent>;
let compMD: PagesMarkDownViewerComponent;
let fixtureMD: ComponentFixture<PagesMarkDownViewerComponent>;
let compMarkDown: MarkdownComponent;
let fixtureMarkDown: ComponentFixture<MarkdownComponent>;
let pagesService: PagesService;
let router: Router;
let route: ActivatedRoute;
let location: Location;
beforeEach(waitForAsync(() => {
const pagesTestRoutes = {
path: 'pages',
children: [
{
path: "**",
// loadChildren: () => import('app/editorialPages/editorialPages.module').then(m => m.PagesModule),
resolve: {
pagePath: PagesResolve,
},
component: PagesComponent,
}
]
}
TestBed.configureTestingModule({
imports: [GitsearchTestModule, RouterTestingModule.withRoutes([pagesTestRoutes]), MarkdownModule.forRoot({
markedOptions: {
provide: MarkedOptions,
useFactory:markedOptionsFactory,
}})],
declarations: [PagesComponent, PagesMarkDownViewerComponent],
providers: [
MarkdownService,
{
provide: ActivatedRoute,
useValue:
{
url: of([]), data: of({ pagePath: 'start' }), params: of({ id: 123 }), queryParams: of([]), outlet: "Hello World",
component: "1", tagged: "hello WORLD"
}
}
],
})
.overrideTemplate(PagesComponent, '')
.overrideTemplate(PagesMarkDownViewerComponent, '<div *ngIf="page"><markdown #pageMarkDown ngPreserveWhitespaces [katexOptions]="katexOptions" [data]="page.content" (ready)="fixLinksToGoViaRouter()"></markdown></div>')
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PagesComponent);
/*
describe('Pages Component', () => {
let comp: PagesComponent;
let fixture: ComponentFixture<PagesComponent>;
let compMD: PagesMarkDownViewerComponent;
let fixtureMD: ComponentFixture<PagesMarkDownViewerComponent>;
let compMarkDown: MarkdownComponent;
let fixtureMarkDown: ComponentFixture<MarkdownComponent>;
let pagesService: PagesService;
let router: Router;
let location: Location;
beforeEach(
waitForAsync(() => {
const pagesTestRoutes = {
path: 'pages',
children: [
{
path: '**',
// loadChildren: () => import('app/editorialPages/editorialPages.module').then(m => m.PagesModule),
resolve: {
pagePath: PagesResolve,
},
component: PagesComponent,
},
],
};
TestBed.configureTestingModule({
imports: [
GitsearchTestModule,
RouterTestingModule.withRoutes([pagesTestRoutes]),
MarkdownModule.forRoot({
markedOptions: {
provide: MarkedOptions,
useFactory: markedOptionsFactory,
},
}),
],
declarations: [PagesComponent, PagesMarkDownViewerComponent],
providers: [
MarkdownService,
{
provide: ActivatedRoute,
useValue: {
url: of([]),
data: of({ pagePath: 'start' }),
params: of({ id: 123 }),
queryParams: of([]),
outlet: 'Hello World',
component: '1',
tagged: 'hello WORLD',
},
},
],
})
.overrideTemplate(PagesComponent, '')
.overrideTemplate(
PagesMarkDownViewerComponent,
'<div *ngIf="page"><markdown #pageMarkDown ngPreserveWhitespaces [katexOptions]="katexOptions" [data]="page.content" (ready)="fixLinksToGoViaRouter()"></markdown></div>'
)
.compileComponents();
})
);
beforeEach(() => {
fixture = TestBed.createComponent(PagesComponent);
/*
const translateService = fixture.debugElement.injector.get(TranslateService);
translateService.currentLang = "de";
spyOn(translateService, 'onLangChange').and.returnValue(of('de'));
*/
comp = fixture.componentInstance;
fixtureMD = TestBed.createComponent(PagesMarkDownViewerComponent);
compMD = fixtureMD.componentInstance;
fixtureMarkDown = TestBed.createComponent(MarkdownComponent);
compMarkDown = fixtureMarkDown.componentInstance;
router = TestBed.get(Router);
route = TestBed.get(ActivatedRoute);
location = TestBed.get(Location);
// router = fixture.debugElement.injector.get(Router);
router.initialNavigation();
pagesService = fixture.debugElement.injector.get(PagesService);
});
it('check routing of pages component', fakeAsync(() => {
/** unfortunatelly very rudimentary :-(
* router.navigate does not trigger page observers
*/
// GIVEN
comp = fixture.componentInstance;
fixtureMD = TestBed.createComponent(PagesMarkDownViewerComponent);
compMD = fixtureMD.componentInstance;
fixtureMarkDown = TestBed.createComponent(MarkdownComponent);
compMarkDown = fixtureMarkDown.componentInstance;
router = TestBed.get(Router);
route = TestBed.get(ActivatedRoute);
location = TestBed.get(Location);
// router = fixture.debugElement.injector.get(Router);
router.initialNavigation();
pagesService = fixture.debugElement.injector.get(PagesService);
});
comp.ngOnInit();
compMD.ngOnInit();
it('check routing of pages component', fakeAsync(() => {
/** unfortunatelly very rudimentary :-(
* router.navigate does not trigger page observers
*/
// GIVEN
router.navigate(['pages/en/start']);
comp.ngOnInit();
compMD.ngOnInit();
const getPageSpy = spyOn(pagesService, 'getPage').and.callFake((pagePath: string) => {
return of({ path: pagePath, content: "#head \n hello world" });
});
router.navigate(['pages/en/start']);
tick();
// WHEN,
compMD.path = "/start";
spyOn(pagesService, 'getPage').and.callFake((pagePath: string) => {
return of({ path: pagePath, content: '#head \n hello world' });
});
fixtureMD.detectChanges();
tick();
// WHEN,
compMD.path = '/start';
// THEN
expect(location.path()).toBe("/pages/en/start");
expect(comp.pagePath).toBe("start");
expect(compMD.page.path).toBe('en/start');
}));
fixtureMD.detectChanges();
it('check markdown generation', fakeAsync(() => {
// GIVEN
// THEN
expect(location.path()).toBe('/pages/en/start');
expect(comp.pagePath).toBe('start');
expect(compMD.page.path).toBe('en/start');
}));
const getPageSpy = spyOn(pagesService, 'getPage').and.callFake((pagePath: string) => {
return of({ path: pagePath, content: "# head\n[Wie stelle ich Inhalte zur Verfügung](de/publishers/howto)\n![image](uploads/78141952f6701c38c37b0bd2d8e01658/image.png)" });
});
it('check markdown generation', fakeAsync(() => {
// GIVEN
let myRenderer = compMarkDown.markdownService.renderer
spyOn(myRenderer as MyRenderer, 'getAttachmentURL').and.returnValue(of('/fake/attachment'));
compMD.ngOnInit();
spyOn(pagesService, 'getPage').and.callFake((pagePath: string) => {
return of({
path: pagePath,
content:
'# head\n[Wie stelle ich Inhalte zur Verfügung](de/publishers/howto)\n![image](uploads/78141952f6701c38c37b0bd2d8e01658/image.png)',
});
});
tick();
// WHEN,
compMD.path = "/start";
fixtureMD.detectChanges();
const myRenderer = compMarkDown.markdownService.renderer;
spyOn(myRenderer as MyRenderer, 'getAttachmentURL').and.returnValue(of('/fake/attachment'));
compMD.ngOnInit();
compMarkDown.data = compMD.page.content;
let renderedResult = compMarkDown.render(compMarkDown.data);
fixtureMarkDown.detectChanges();
tick();
// WHEN,
compMD.path = '/start';
fixtureMD.detectChanges();
let nativeElem = fixtureMarkDown.debugElement.nativeElement;
let child0 = nativeElem.children[0];
let child1 = nativeElem.children[1];
let h1 = fixtureMarkDown.debugElement.query(By.css("h1"))
let H1 = fixtureMarkDown.debugElement.query(By.css("H1"))
compMarkDown.data = compMD.page.content;
let renderedResult = compMarkDown.render(compMarkDown.data);
fixtureMarkDown.detectChanges();
let innerHtml = fixtureMarkDown.debugElement.nativeElement.innerHtml;
const nativeElem = fixtureMarkDown.debugElement.nativeElement;
// THEN
}));
const innerHtml = nativeElem.innerHtml;
});
})
// THEN
}));
});
});
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment