mirror of https://github.com/vuejs/vitepress
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
865 B
33 lines
865 B
import { expect, test } from 'vitest'
|
|
import { page, vitePressTestUrl, waitForLayout } from '~utils'
|
|
|
|
describe('outline', () => {
|
|
beforeAll(async () => {
|
|
await page.goto(
|
|
vitePressTestUrl + '/frontmatter/multiple-levels-outline.html'
|
|
)
|
|
await waitForLayout()
|
|
})
|
|
|
|
test('set outline to deep', async () => {
|
|
const outlineLinksLocator = await page.locator(
|
|
'.VPDocAsideOutline .root .outline-link'
|
|
)
|
|
|
|
const outlineLinksContent = await outlineLinksLocator.allTextContents()
|
|
expect(outlineLinksContent).toEqual([
|
|
'h2 - 1',
|
|
'h3 - 1',
|
|
'h3 - 2',
|
|
'h2 - 2',
|
|
'h3 - 3'
|
|
])
|
|
|
|
const linkHrefs = await outlineLinksLocator.evaluateAll((element) =>
|
|
element.map((element) => element.getAttribute('href'))
|
|
)
|
|
|
|
expect(linkHrefs).toEqual(['#h2-1', '#h3-1', '#h3-2', '#h2-2', '#h3-3'])
|
|
})
|
|
})
|