import { MarkdownPipe } from './markdown.pipe'; import { TestBed } from '@angular/core/testing'; import { APP_CONFIG } from '../../../config/app-config.interface'; import { environment } from '../../../environments/environment'; describe('Markdown Pipe', () => { let markdownPipe: MarkdownPipe; beforeEach(() => { TestBed.configureTestingModule({ providers: [ MarkdownPipe, { provide: APP_CONFIG, useValue: Object.assign(environment, { enableMarkdown: true, enableMathjax: true, }) }, ], }).compileComponents(); markdownPipe = TestBed.inject(MarkdownPipe); }); it('should render markdown', async () => { await testTransform( '# Header', '

Header

' ); }); it('should render mathjax', async () => { await testTransform( '$\\sqrt{2}^2$', '.*' ); }); it('should render regular links', async () => { await testTransform( /*eslint-disable quotemark*/ 'DSpace', 'DSpace' /* eslint-enable quotemark */ ); }); it('should not render javascript links', async () => { await testTransform( /*eslint-disable quotemark*/ 'exploit', 'exploit' /* eslint-enable quotemark */ ); }); async function testTransform(input: string, output: string) { expect( await markdownPipe.transform(input) ).toMatch( new RegExp('.*' + output + '.*') ); } });