Skip to content

Commit b93030e

Browse files
author
Andrea Barbasso
committed
[UXP-114] add and fix tests
1 parent 58206d5 commit b93030e

6 files changed

Lines changed: 77 additions & 20 deletions

File tree

src/app/core/shared/math.directive.spec.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,47 @@
11
import { TestBed } from '@angular/core/testing';
2+
import { Observable, of } from 'rxjs';
3+
import { MathService, MathJaxConfig } from './math.service';
24

3-
import { MathService } from './math.service';
5+
export class MockMathService extends MathService {
6+
protected mathJaxOptions: any = {};
7+
protected mathJax: MathJaxConfig = { source: '', id: '' };
8+
protected mathJaxFallback: MathJaxConfig = { source: '', id: '' };
9+
10+
protected registerMathJaxAsync(config: MathJaxConfig): Promise<any> {
11+
return Promise.resolve();
12+
}
13+
14+
ready(): Observable<boolean> {
15+
return of(true);
16+
}
17+
18+
render(element: HTMLElement): void {
19+
return;
20+
}
21+
}
422

523
describe('MathService', () => {
6-
let service: MathService;
24+
let service: MockMathService;
725

826
beforeEach(() => {
927
TestBed.configureTestingModule({});
10-
service = TestBed.inject(MathService);
28+
service = new MockMathService();
29+
spyOn(service, 'render');
1130
});
1231

1332
it('should be created', () => {
1433
expect(service).toBeTruthy();
1534
});
35+
36+
it('should be ready', (done) => {
37+
service.ready().subscribe(isReady => {
38+
expect(isReady).toBe(true);
39+
done();
40+
});
41+
});
42+
43+
it('should render', () => {
44+
service.render(document.createElement('div'));
45+
expect(service.render).toHaveBeenCalled();
46+
});
1647
});

src/app/item-page/full/full-item-page.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<ng-container *ngFor="let mdEntry of (metadata$ | async) | keyvalue">
2323
<tr *ngFor="let mdValue of mdEntry.value">
2424
<td>{{mdEntry.key}}</td>
25-
<td><ds-markdown-viewer [value]="mdValue.value"></ds-markdown-viewer></td>
25+
<td>{{mdValue.value}}</td>
2626
<td>{{mdValue.language}}</td>
2727
</tr>
2828
</ng-container>

src/app/item-page/simple/field-components/specific-field/item-page-field.component.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ import { MetadataMap, MetadataValue } from '../../../../core/shared/metadata.mod
99
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils';
1010
import { createPaginatedList } from '../../../../shared/testing/utils.test';
1111
import { environment } from '../../../../../environments/environment';
12-
import { MarkdownPipe } from '../../../../shared/utils/markdown.pipe';
1312
import { SharedModule } from '../../../../shared/shared.module';
1413
import { APP_CONFIG } from '../../../../../config/app-config.interface';
1514
import { By } from '@angular/platform-browser';
1615
import { BrowseDefinitionDataService } from '../../../../core/browse/browse-definition-data.service';
1716
import { BrowseDefinitionDataServiceStub } from '../../../../shared/testing/browse-definition-data-service.stub';
1817
import { RouterTestingModule } from '@angular/router/testing';
18+
import { MarkdownDirective } from '../../../../shared/utils/markdown.directive';
19+
import { MathService } from '../../../../core/shared/math.service';
1920

2021
let comp: ItemPageFieldComponent;
2122
let fixture: ComponentFixture<ItemPageFieldComponent>;
@@ -51,14 +52,15 @@ describe('ItemPageFieldComponent', () => {
5152
],
5253
providers: [
5354
{ provide: APP_CONFIG, useValue: appConfig },
54-
{ provide: BrowseDefinitionDataService, useValue: BrowseDefinitionDataServiceStub }
55+
{ provide: BrowseDefinitionDataService, useValue: BrowseDefinitionDataServiceStub },
56+
{ provide: MathService, useValue: {} }
5557
],
5658
declarations: [ItemPageFieldComponent, MetadataValuesComponent],
5759
schemas: [NO_ERRORS_SCHEMA]
5860
}).overrideComponent(ItemPageFieldComponent, {
5961
set: { changeDetection: ChangeDetectionStrategy.Default }
6062
}).compileComponents();
61-
markdownSpy = spyOn(MarkdownPipe.prototype, 'transform');
63+
markdownSpy = spyOn(MarkdownDirective.prototype, 'render');
6264
fixture = TestBed.createComponent(ItemPageFieldComponent);
6365
comp = fixture.componentInstance;
6466
comp.item = mockItemWithMetadataFieldsAndValue(mockFields, mockValue);

src/app/shared/markdown-viewer/markdown-viewer.component.spec.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
import { ComponentFixture, TestBed } from '@angular/core/testing';
22

33
import { MarkdownViewerComponent } from './markdown-viewer.component';
4-
import { MarkdownPipe } from '../utils/markdown.pipe';
54
import { By } from '@angular/platform-browser';
5+
import { MarkdownDirective } from '../utils/markdown.directive';
6+
import { MathService } from '../../core/shared/math.service';
67

78
describe('DsMarkdownViewerComponent', () => {
89
let component: MarkdownViewerComponent;
910
let fixture: ComponentFixture<MarkdownViewerComponent>;
1011

1112
beforeEach(async () => {
1213
await TestBed.configureTestingModule({
13-
declarations: [ MarkdownViewerComponent, MarkdownPipe ]
14+
declarations: [ MarkdownViewerComponent, MarkdownDirective ],
15+
providers: [{
16+
provide: MathService,
17+
useValue: {}
18+
} ]
1419
})
1520
.compileComponents();
1621
});
Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,35 @@
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
12
import { MarkdownDirective } from './markdown.directive';
3+
import { Component, DebugElement } from '@angular/core';
4+
import { By } from '@angular/platform-browser';
5+
import { MathService } from '../../core/shared/math.service';
6+
import { MockMathService } from '../../core/shared/math.service.spec';
7+
8+
@Component({
9+
template: `<div dsMarkdown="test"></div>`
10+
})
11+
class TestComponent {}
212

313
describe('MarkdownDirective', () => {
4-
it('should create an instance', () => {
5-
const directive = new MarkdownDirective();
6-
expect(directive).toBeTruthy();
14+
let component: TestComponent;
15+
let fixture: ComponentFixture<TestComponent>;
16+
let divEl: DebugElement;
17+
18+
beforeEach(async () => {
19+
await TestBed.configureTestingModule({
20+
declarations: [ TestComponent, MarkdownDirective ],
21+
providers: [
22+
{ provide: MathService, useClass: MockMathService },
23+
]
24+
}).compileComponents();
25+
spyOn(MarkdownDirective.prototype, 'render');
26+
fixture = TestBed.createComponent(TestComponent);
27+
component = fixture.componentInstance;
28+
divEl = fixture.debugElement.query(By.css('div'));
29+
});
30+
31+
it('should call render method', () => {
32+
fixture.detectChanges();
33+
expect(MarkdownDirective.prototype.render).toHaveBeenCalled();
734
});
835
});

0 commit comments

Comments
 (0)