Skip to content

Commit

Permalink
fix: sidebar active class and expand don't work as expect when use "s…
Browse files Browse the repository at this point in the history
…pace" in markdown filename (#1454)

* fix: decode href in sidebar (#1032)

* Create sidebar.test.js

Co-authored-by: 沈唁 <[email protected]>
  • Loading branch information
enzy and sy-records authored Dec 20, 2020
1 parent 76c5e68 commit dcf5a64
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/core/event/sidebar.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ export function getAndActive(router, el, isParent, autoTitle) {
links
.sort((a, b) => b.href.length - a.href.length)
.forEach(a => {
const href = a.getAttribute('href');
const href = decodeURI(a.getAttribute('href'));
const node = isParent ? a.parentNode : a;

a.title = a.title || a.innerText;
Expand Down
70 changes: 70 additions & 0 deletions test/e2e/sidebar.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
const docsifyInit = require('../helpers/docsify-init');

// Suite
// -----------------------------------------------------------------------------
describe('Sidebar Tests', function() {
// Tests
// ---------------------------------------------------------------------------
test('Active Test', async () => {
const docsifyInitConfig = {
markdown: {
sidebar: `
- [Test Space](test%20space)
- [Test _](test_foo)
- [Test -](test-foo)
- [Test .](test.foo)
- [Test >](test>foo)
- [Test](test)
`,
},
routes: {
'/test space.md': `
# Test Space
`,
'/test_foo.md': `
# Test _
`,
'/test-foo.md': `
# Test -
`,
'/test.foo.md': `
# Test .
`,
'/test>foo.md': `
# Test >
`,
'/test.md': `
# Test page
`,
},
};

await docsifyInit(docsifyInitConfig);
await page.click('a[href="#/test%20space"]');
await expect(page).toEqualText(
'.sidebar-nav li[class=active]',
'Test Space'
);
expect(page.url()).toMatch(/\/test%20space$/);

await page.click('a[href="#/test_foo"]');
await expect(page).toEqualText('.sidebar-nav li[class=active]', 'Test _');
expect(page.url()).toMatch(/\/test_foo$/);

await page.click('a[href="#/test-foo"]');
await expect(page).toEqualText('.sidebar-nav li[class=active]', 'Test -');
expect(page.url()).toMatch(/\/test-foo$/);

await page.click('a[href="#/test.foo"]');
await expect(page).toEqualText('.sidebar-nav li[class=active]', 'Test .');
expect(page.url()).toMatch(/\/test.foo$/);

await page.click('a[href="#/test>foo"]');
await expect(page).toEqualText('.sidebar-nav li[class=active]', 'Test >');
expect(page.url()).toMatch(/\/test%3Efoo$/);

await page.click('a[href="#/test"]');
await expect(page).toEqualText('.sidebar-nav li[class=active]', 'Test');
expect(page.url()).toMatch(/\/test$/);
});
});

1 comment on commit dcf5a64

@vercel
Copy link

@vercel vercel bot commented on dcf5a64 Dec 20, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.