mirror of
https://github.com/docsifyjs/docsify.git
synced 2026-10-17 04:31:18 +08:00
fix: avoid quadratic slugify cache lookup (#2783)
This commit is contained in:
@@ -167,6 +167,10 @@ describe('core/render/tpl', () => {
|
||||
});
|
||||
|
||||
describe('core/render/slugify', () => {
|
||||
beforeEach(() => {
|
||||
slugify.clear();
|
||||
});
|
||||
|
||||
test('slugify()', () => {
|
||||
const htmlStrippedSlug = slugify(
|
||||
'Bla bla bla <svg aria-label="broken" class="broken" viewPort="0 0 1 1"><circle cx="0.5" cy="0.5"/></svg>',
|
||||
@@ -218,4 +222,18 @@ describe('core/render/slugify', () => {
|
||||
);
|
||||
expect(markdownLinkSlug).toBe('_500-rc4-2026-03-11');
|
||||
});
|
||||
|
||||
test('slugify.clear() resets duplicate tracking', () => {
|
||||
expect(slugify('duplicate')).toBe('duplicate');
|
||||
expect(slugify('duplicate')).toBe('duplicate-1');
|
||||
|
||||
slugify.clear();
|
||||
|
||||
expect(slugify('duplicate')).toBe('duplicate');
|
||||
});
|
||||
|
||||
test('slugify() handles inherited property names as new slugs', () => {
|
||||
expect(slugify('constructor')).toBe('constructor');
|
||||
expect(slugify('constructor')).toBe('constructor-1');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user