docsify/cypress/integration/sidebar/config.spec.js
Carsten Daurehøj 724ac024dd
feat: added capability to add css class and id to images + links + refactoring (#820)
* method extraction

* support for CSS class and id

* Update package.json

* Added tests for refactored render-methods

* minor refactoring
2020-02-08 21:54:18 +05:30

344 lines
7.5 KiB
JavaScript

context('sidebar.configurations', () => {
beforeEach(() => {
cy.visit('http://localhost:3000')
})
const quickStartIds = [
'initialize',
'writing-content',
'preview-your-site',
'manual-initialization',
'loading-dialog'
]
quickStartIds.forEach(id => {
it('go to #quickstart?id=' + id, () => {
cy.get(
'.sidebar-nav > :nth-child(1) > :nth-child(1) > ul > :nth-child(1) > a'
).click()
cy.get(`a.section-link[href='#/quickstart?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const configurationIds = [
'el',
'repo',
'maxlevel',
'loadnavbar',
'loadsidebar',
'submaxlevel',
'auto2top',
'homepage',
'basepath',
'relativepath',
'coverpage',
'logo',
'name',
'namelink',
'markdown',
'themecolor',
'alias',
'autoheader',
'executescript',
'noemoji',
'mergenavbar',
'formatupdated',
'externallinktarget',
'cornerexternallinktarget',
'externallinkrel',
'routermode',
'nocompilelinks',
'onlycover',
'requestheaders',
'ext',
'fallbacklanguages',
'notfoundpage'
]
configurationIds.forEach(id => {
it('go to #configuration?id=' + id, () => {
cy.get('[href="#/configuration"]').click()
cy.get(`a.section-link[href='#/configuration?id=${id}']`)
.click()
.then(() => {
cy.wait(500) // its more far from the cover
cy.matchImageSnapshot()
})
})
})
const morePagesIds = [
'sidebar',
'nested-sidebars',
'set-page-titles-from-sidebar-selection',
'table-of-contents',
'ignoring-subheaders'
]
morePagesIds.forEach(id => {
it('go to #more-pages?id=' + id, () => {
cy.get('[href="#/more-pages"]').click()
cy.get(`a.section-link[href='#/more-pages?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const customNavbarIds = [
'html',
'markdown',
'nesting',
'combining-custom-navbars-with-the-emoji-plugin'
]
customNavbarIds.forEach(id => {
it('go to #custom-navbar?id=' + id, () => {
cy.get('[href="#/custom-navbar"]').click()
cy.get(`a.section-link[href='#/custom-navbar?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const coverIds = [
'basic-usage',
'custom-background',
'coverpage-as-homepage',
'multiple-covers'
]
coverIds.forEach(id => {
it('go to #cover?id=' + id, () => {
cy.get('[href="#/cover"]').click()
cy.get(`a.section-link[href='#/cover?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const themesIds = ['other-themes']
themesIds.forEach(id => {
it('go to #themes?id=' + id, () => {
cy.get('[href="#/themes"]').click()
cy.get(`a.section-link[href='#/themes?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const pluginsIds = [
'full-text-search',
'google-analytics',
'emoji',
'external-script',
'zoom-image',
'edit-on-github',
'demo-code-with-instant-preview-and-jsfiddle-integration',
'copy-to-clipboard',
'disqus',
'gitalk',
'pagination',
'codefund',
'tabs',
'more-plugins'
]
pluginsIds.forEach(id => {
it('go to #plugins?id=' + id, () => {
cy.get('[href="#/plugins"]').click()
cy.get(`a.section-link[href='#/plugins?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const writeAPluginIds = ['full-configuration', 'example', 'tips']
writeAPluginIds.forEach(id => {
it('go to #write-a-plugin?id=' + id, () => {
cy.get('[href="#/write-a-plugin"]').click()
cy.get(`a.section-link[href='#/write-a-plugin?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const markdownIds = ['supports-mermaid']
markdownIds.forEach(id => {
it('go to #markdown?id=' + id, () => {
cy.get('[href="#/markdown"]').click()
cy.get(`a.section-link[href='#/markdown?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
it('go to #Language-highlight', () => {
cy.get('a[href="#/language-highlight"]')
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
// const deployIds = [
// 'github-pages',
// 'gitlab-pages',
// 'firebase-hosting',
// 'vps',
// 'netlify',
// 'zeit-now',
// 'aws-amplify'
// ]
// deployIds.forEach(id => {
// it('go to #deploy?id=' + id, () => {
// cy.get('[href="#/deploy"]').click()
// cy.get(`a.section-link[href='#/deploy?id=${id}']`)
// .click()
// .then(() => {
// cy.wait(500)
// cy.matchImageSnapshot()
// })
// })
// })
const helpersIds = [
'important-content',
'general-tips',
'ignore-to-compile-link',
'set-target-attribute-for-link',
'disable-link',
'github-task-lists',
'customise-id-for-headings',
'markdown-in-html-tag'
]
helpersIds.forEach(id => {
it('go to #helpers?id=' + id, () => {
cy.get('[href="#/helpers"]').click()
cy.get(`a.section-link[href='#/helpers?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const vueIds = ['basic-usage', 'combine-vuep-to-write-playground']
vueIds.forEach(id => {
it('go to #vue?id=' + id, () => {
cy.get('[href="#/vue"]').click()
cy.get(`a.section-link[href='#/vue?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const cdnIds = [
'latest-version',
'specific-version',
'compressed-file',
'other-cdn'
]
cdnIds.forEach(id => {
it('go to #cdn?id=' + id, () => {
cy.get('[href="#/cdn"]').click()
cy.get(`a.section-link[href='#/cdn?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const pwaIds = ['create-serviceworker', 'register', 'enjoy-it']
pwaIds.forEach(id => {
it('go to #pwa?id=' + id, () => {
cy.get('[href="#/pwa"]').click()
cy.get(`a.section-link[href='#/pwa?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const ssrIds = [
'why-ssr',
'quick-start',
'custom-template',
'configuration',
'deploy-for-your-vps'
]
ssrIds.forEach(id => {
it('go to #ssr?id=' + id, () => {
cy.get('[href="#/ssr"]').click()
cy.get(`a.section-link[href='#/ssr?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
const embedFilesIds = [
'embedded-file-type',
'embedded-code-fragments',
'tag-attribute',
'the-code-block-highlight'
]
embedFilesIds.forEach(id => {
it('go to #embed-files?id=' + id, () => {
cy.get('[href="#/embed-files"]').click()
cy.get(`a.section-link[href='#/embed-files?id=${id}']`)
.click()
.then(() => {
cy.wait(500)
cy.matchImageSnapshot()
})
})
})
})