Skip to content

Commit

Permalink
feat: add e2e test
Browse files Browse the repository at this point in the history
  • Loading branch information
Mister-Hope committed Dec 11, 2023
1 parent ca7eb8c commit 34bb3a1
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 4 deletions.
9 changes: 9 additions & 0 deletions e2e/docs/.vuepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,13 @@ export default defineUserConfig({
process.env.E2E_BUNDLER === 'webpack' ? webpackBundler() : viteBundler(),

theme: e2eTheme(),

extendsPage: (page) => {
if (page.path === '/page-data/meta.html')
page.meta = {
a: 1,
b: 2,
...page.meta,
}
},
})
5 changes: 5 additions & 0 deletions e2e/docs/page-data/meta.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
meta:
a: 0
c: 3
---
38 changes: 38 additions & 0 deletions e2e/docs/router.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## GetPagesPath

<ul class="get-pages-path">
<li v-for="path in pagesPath">
{{path}}
</li>
</ul>

## isPageExist

<div class="is-page-exist">

- /: {{isPageExist('/')}}
- /README.md: {{isPageExist('/README.md')}}
- /index.html: {{isPageExist('/index.html')}}
- /not-exist: {{isPageExist('/not-exist')}}
- /not-exist.html: {{isPageExist('/not-exist.html')}}
- /not-exist.md: {{isPageExist('/not-exist.md')}}
- /zh/: {{isPageExist('/zh/')}}
- /zh: {{isPageExist('/zh')}}

</div>

## resolve

<div class="resolve">

- Clean url: {{JSON.stringify(resolve('/page-data/meta'))}}
- HTML: {{JSON.stringify(resolve('/page-data/meta.html'))}}
- Markdown: {{JSON.stringify(resolve('/page-data/meta.md'))}}

</div>

<script setup>
import { getPagesPath, isPageExist, pagesMap, resolve } from '@vuepress/client'

const pagesPath = getPagesPath();
</script>
60 changes: 60 additions & 0 deletions e2e/tests/router.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
context('router', () => {
it('getPagesPath', () => {
cy.visit('/router.html')

const paths = [
'/',
'/layouts/custom-layout.html',
'/layouts/layout.html',
'/markdown/code-blocks.html',
'/markdown/emoji.html',
'/markdown/import-code-blocks.html',
'/markdown/toc.html',
'/markdown/vue-components.html',
'/markdown/links/bar.html',
'/markdown/links/baz.html',
'/markdown/links/foo.html',
'/page-data/frontmatter.html',
'/page-data/headers.html',
'/page-data/lang.html',
'/page-data/meta.html',
'/page-data/permalink.html',
'/page-data/title-from-frontmatter.html',
'/page-data/title-from-h1.html',
'/router.html',
'/zh/',
'/404.html',
]

cy.get('.e2e-theme-content ul.get-pages-path li').each((el) => {
expect(paths.includes(el.text())).to.equal(true)
})
})

it('isPageExist', () => {
cy.visit('/router.html')
const results = [
'/: true',
'/README.md: true',
'/index.html: true',
'/not-exist: false',
'/not-exist.html: false',
'/not-exist.md: false',
'/zh/: true',
'/zh: false',
]

cy.get('.e2e-theme-content .is-page-exist ul li').each((el) => {
expect(results.includes(el.text())).to.equal(true)
})
})

it('resolve', () => {
cy.visit('/router.html')
const result = { path: '/page-data/meta.html', meta: { a: 0, b: 2, c: 3 } }

cy.get('.e2e-theme-content .resolve ul li').each((el) => {
expect(el.text()).to.contain(JSON.stringify(result))
})
})
})
6 changes: 3 additions & 3 deletions packages/client/src/composables/pagesMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
redirectsMap as redirectsMapRaw,
} from '@internal/pagesMap'
import type { PageRedirectsMap, PagesMap } from '@internal/pagesMap'
import { ref } from 'vue'
import { shallowRef } from 'vue'
import type { Ref } from 'vue'

/**
Expand All @@ -19,12 +19,12 @@ export type PageRedirectsRef = Ref<PageRedirectsMap>
/**
* Global pages map ref
*/
export const pagesMap: PagesMapRef = ref(pagesMapRaw)
export const pagesMap: PagesMapRef = shallowRef(pagesMapRaw)

/**
* Global pages map ref
*/
export const redirectsMap: PageRedirectsRef = ref(redirectsMapRaw)
export const redirectsMap: PageRedirectsRef = shallowRef(redirectsMapRaw)

/**
* Returns the ref of pages map
Expand Down
2 changes: 1 addition & 1 deletion packages/client/src/helpers/router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { resolvers } from '../resolvers.js'
*
* @returns all paths of pages
*/
export const getPagesPath = (): string[] => Object.keys(pagesMap.value)
export const getPagesPath = (): string[] => Array.from(pagesMap.value.keys())

/**
* Check whether the page exists
Expand Down

0 comments on commit 34bb3a1

Please sign in to comment.