mirror of
https://github.com/Redocly/redoc.git
synced 2025-02-20 03:40:32 +03:00
Fix tests + don't crash on non-existing menu-items
This commit is contained in:
parent
d9bec1bd6a
commit
82575d6a77
|
@ -34,7 +34,8 @@ export class RedocSearch implements OnInit {
|
||||||
this.items = Object.keys(searchRes).map(id => ({
|
this.items = Object.keys(searchRes).map(id => ({
|
||||||
menuItem: this.menu.getItemById(id),
|
menuItem: this.menu.getItemById(id),
|
||||||
pointers: searchRes[id].map(el => el.pointer)
|
pointers: searchRes[id].map(el => el.pointer)
|
||||||
}));
|
})).filter(res => !!res.menuItem);
|
||||||
|
|
||||||
this.items.sort((a, b) => {
|
this.items.sort((a, b) => {
|
||||||
if (a.menuItem.depth > b.menuItem.depth) return 1;
|
if (a.menuItem.depth > b.menuItem.depth) return 1;
|
||||||
else if (a.menuItem.depth < b.menuItem.depth) return -1;
|
else if (a.menuItem.depth < b.menuItem.depth) return -1;
|
||||||
|
|
|
@ -4,20 +4,21 @@ import { MdRenderer } from '../../lib/utils/md-renderer';
|
||||||
|
|
||||||
describe('Utils', () => {
|
describe('Utils', () => {
|
||||||
describe('Markdown renderer', () => {
|
describe('Markdown renderer', () => {
|
||||||
let mdRender;
|
let mdRender: MdRenderer;
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
mdRender = new MdRenderer();
|
mdRender = new MdRenderer();
|
||||||
});
|
});
|
||||||
it('should return a level-1 heading even though level-2 is passed', () => {
|
it('should return a level-1 heading even though only level-2 is present', () => {
|
||||||
mdRender.renderMd('## Sub Intro');
|
mdRender.renderMd('## Sub Intro');
|
||||||
expect(mdRender.firstLevelHeadings.length).toEqual(1);
|
Object.keys(mdRender.headings).length.should.be.equal(1);
|
||||||
expect(mdRender.firstLevelHeadings).toEqual(['Sub Intro']);
|
should.exist(mdRender.headings['sub-intro']);
|
||||||
});
|
});
|
||||||
it('should return a level-1 heading and a level-2', () => {
|
it('should return a level-2 heading as a child of level-1', () => {
|
||||||
mdRender.renderMd('# Introduction \n ## Sub Intro');
|
mdRender.renderMd('# Introduction \n ## Sub Intro');
|
||||||
expect(mdRender.firstLevelHeadings.length).toEqual(1);
|
Object.keys(mdRender.headings).length.should.be.equal(1);
|
||||||
expect(mdRender.firstLevelHeadings).toEqual(['Introduction']);
|
should.exist(mdRender.headings['introduction']);
|
||||||
expect(mdRender.secondLevelHeadings).toEqual(['Introduction/Sub Intro']);
|
should.exist(mdRender.headings['introduction'].children);
|
||||||
|
Object.keys(mdRender.headings['introduction'].children).length.should.be.equal(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -107,10 +107,6 @@ export class MdRenderer {
|
||||||
return this._origRules.open(tokens, idx);
|
return this._origRules.open(tokens, idx);
|
||||||
} else {
|
} else {
|
||||||
let content = tokens[idx + 1].content;
|
let content = tokens[idx + 1].content;
|
||||||
// if no h1 1st, convert h2 to h1
|
|
||||||
if (this.firstLevelHeadings.length === 0 && tokens[idx].hLevel !== 1 ) {
|
|
||||||
tokens[idx].hLevel = 1;
|
|
||||||
}
|
|
||||||
if (tokens[idx].hLevel === 1 ) {
|
if (tokens[idx].hLevel === 1 ) {
|
||||||
this.currentTopHeading = this.saveHeading(content);;
|
this.currentTopHeading = this.saveHeading(content);;
|
||||||
let id = this.currentTopHeading.id;
|
let id = this.currentTopHeading.id;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user