hedgedoc/cypress/integration/documentTitle.spec.ts
2021-03-09 23:00:14 +01:00

100 lines
3.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { branding } from '../support/config'
const title = 'This is a test title'
describe('Document Title', () => {
beforeEach(() => {
cy.loadConfig()
cy.visitTestEditor()
cy.get('.btn.active.btn-outline-secondary > i.fa-columns')
.should('exist')
})
describe('title should be yaml metadata title', () => {
it('just yaml metadata title', () => {
cy.codemirrorFill(`---\ntitle: ${ title }\n---`)
cy.title()
.should('eq', `${ title } - HedgeDoc @ ${ branding.name }`)
})
it('yaml metadata title and opengraph title', () => {
cy.codemirrorFill(`---\ntitle: ${ title }\nopengraph:\n title: False title\n---`)
cy.title()
.should('eq', `${ title } - HedgeDoc @ ${ branding.name }`)
})
it('yaml metadata title, opengraph title and first heading', () => {
cy.codemirrorFill(`---\ntitle: ${ title }\nopengraph:\n title: False title\n---\n# a first title`)
cy.title()
.should('eq', `${ title } - HedgeDoc @ ${ branding.name }`)
})
})
describe('title should be opengraph title', () => {
it('just opengraph title', () => {
cy.codemirrorFill(`---\nopengraph:\n title: ${ title }\n---`)
cy.title()
.should('eq', `${ title } - HedgeDoc @ ${ branding.name }`)
})
it('opengraph title and first heading', () => {
cy.codemirrorFill(`---\nopengraph:\n title: ${ title }\n---\n# a first title`)
cy.title()
.should('eq', `${ title } - HedgeDoc @ ${ branding.name }`)
})
})
describe('title should be first heading', () => {
it('just first heading', () => {
cy.codemirrorFill(`# ${ title }`)
cy.title()
.should('eq', `${ title } - HedgeDoc @ ${ branding.name }`)
})
it('just first heading with alt-text instead of image', () => {
cy.codemirrorFill(`# ${ title } ![abc](https://dummyimage.com/48)`)
cy.title()
.should('eq', `${ title } abc - HedgeDoc @ ${ branding.name }`)
})
it('just first heading without link syntax', () => {
cy.codemirrorFill(`# ${ title } [link](https://hedgedoc.org)`)
cy.title()
.should('eq', `${ title } link - HedgeDoc @ ${ branding.name }`)
})
it('markdown syntax removed first', () => {
cy.codemirrorFill(`# ${ title } 1*2*3 4*5**`)
cy.title()
.should('eq', `${ title } 123 4*5** - HedgeDoc @ ${ branding.name }`)
})
it('markdown syntax removed second', () => {
cy.codemirrorFill(`# ${ title } **1 2*`)
cy.title()
.should('eq', `${ title } *1 2 - HedgeDoc @ ${ branding.name }`)
})
it('markdown syntax removed third', () => {
cy.codemirrorFill(`# ${ title } _asd_`)
cy.title()
.should('eq', `${ title } asd - HedgeDoc @ ${ branding.name }`)
})
it('katex code looks right', () => {
cy.codemirrorFill(`# $\\alpha$-foo`)
cy.getMarkdownRenderer()
.find('h1')
.should('contain', 'α')
cy.get('.CodeMirror textarea')
.type('{Enter}{Enter}{Enter}{Enter}{Enter}') //This is a workaround because I don't know how to make sure, that the title gets updated in time.
cy.title()
.should('eq', `α-foo - HedgeDoc @ ${ branding.name }`)
})
})
})