mirror of
https://github.com/typemill/typemill.git
synced 2025-01-30 11:59:35 +01:00
148 lines
5.2 KiB
JavaScript
148 lines
5.2 KiB
JavaScript
describe('Typemill Setup', function()
|
|
{
|
|
it('validates form input', function ()
|
|
{
|
|
// visit setup form
|
|
cy.visit('/setup')
|
|
// cy.visit('/setup',{ onBeforeLoad: (_contentWindow) => { Object.defineProperty(navigator, 'language', { value: 'fr-FR' }) } })
|
|
cy.url().should('include','/setup')
|
|
|
|
// add data and check attributes
|
|
cy.get('input[name="username"]')
|
|
.type('?1')
|
|
.should('have.value', '?1')
|
|
.and('have.attr', 'required')
|
|
|
|
cy.get('input[name="email"]')
|
|
.type('trendschau.net')
|
|
.should('have.value', 'trendschau.net')
|
|
.and('have.attr', 'required')
|
|
|
|
cy.get('input[name="password"]')
|
|
.type('pass')
|
|
.should('have.value', 'pass')
|
|
.and('have.attr', 'required')
|
|
|
|
// submit and get validation errors
|
|
cy.get('form').submit()
|
|
cy.get('#flash-message').should('contain', 'Please check your input and try again')
|
|
cy.get('.error').should('contain', 'invalid characters')
|
|
cy.get('.error').should('contain', 'e-mail is invalid')
|
|
cy.get('.error').should('contain', 'Length between 5 - 20')
|
|
})
|
|
|
|
it('fails without CSRF-token', function ()
|
|
{
|
|
cy.request({
|
|
method: 'POST',
|
|
url: '/setup', // baseUrl is prepended to url
|
|
form: true, // indicates the body should be form urlencoded and sets Content-Type: application/x-www-form-urlencoded headers
|
|
failOnStatusCode: false,
|
|
body: {
|
|
username: 'trendschau',
|
|
email: 'trendschau@gmail.com',
|
|
password: 'password'
|
|
}
|
|
})
|
|
.its('body')
|
|
.should('include', 'Failed CSRF check')
|
|
})
|
|
|
|
it('submits valid form data and visit welcome and settings page', function ()
|
|
{
|
|
cy.visit('/setup')
|
|
|
|
// enter correct data
|
|
cy.get('input[name="username"]').clear().type('trendschau')
|
|
cy.get('input[name="email"]').clear().type('trendschau@gmail.com')
|
|
cy.get('input[name="password"]').clear().type('password')
|
|
|
|
// submits valid form
|
|
cy.get('form').submit()
|
|
cy.url().should('include','/welcome')
|
|
cy.getCookie('typemill-session').should('exist')
|
|
Cypress.Cookies.preserveOnce('typemill-session')
|
|
|
|
// clicks link on welcome page to settings page
|
|
// cy.get('.button').should('contain', 'Configure your website')
|
|
cy.get('.button').click()
|
|
cy.url().should('include', '/tm/settings')
|
|
})
|
|
|
|
it('creates default settings data', function()
|
|
{
|
|
cy.get('input[name="settings[title]"]')
|
|
.should('have.value', 'TYPEMILL')
|
|
.and('have.attr','required')
|
|
cy.get('input[name="settings[author]"]')
|
|
cy.get('select[name="settings[copyright]"]')
|
|
cy.get('input[name="settings[year]"]')
|
|
.should('have.attr', 'required')
|
|
cy.get('select[name="settings[language]"]')
|
|
// cy.get('select[name="settings[langattr]"]')
|
|
cy.get('input[name="settings[sitemap]"]')
|
|
.should('have.value', 'http://localhost/typemillTest/cache/sitemap.xml')
|
|
.and('have.attr','readonly')
|
|
cy.get('input[name="settings[logo]"]')
|
|
cy.get('input[name="settings[deletelogo]"]')
|
|
cy.get('input[name="settings[favicon]"]')
|
|
cy.get('input[name="settings[deletefav]"]')
|
|
cy.get('input[name="settings[headlineanchors]"]')
|
|
cy.get('input[name="settings[editor]"]')
|
|
|
|
cy.get('select[name="settings[language]"]')
|
|
.select('en')
|
|
.should('have.value', 'en')
|
|
|
|
cy.get('form').submit()
|
|
cy.get('#flash-message').should('contain', 'Settings are stored')
|
|
|
|
Cypress.Cookies.preserveOnce('typemill-session')
|
|
})
|
|
|
|
it('creates default user data', function()
|
|
{
|
|
cy.visit('/tm/user/trendschau')
|
|
cy.url().should('include', '/tm/user/trendschau')
|
|
cy.get('input[name="user[username]"]')
|
|
.should('have.value', 'trendschau')
|
|
cy.get('input[name="user[firstname]"]')
|
|
.clear()
|
|
.type('Sebastian')
|
|
.should('have.value', 'Sebastian')
|
|
cy.get('input[name="user[lastname]"]')
|
|
.clear()
|
|
.type('Schürmanns')
|
|
.should('have.value', 'Schürmanns')
|
|
cy.get('input[name="user[email]"]')
|
|
.should('have.value', 'trendschau@gmail.com')
|
|
cy.get('select[name="user[userrole]"]')
|
|
.should('have.value','administrator')
|
|
cy.get('input[name="user[password]"]')
|
|
.should('have.value', '')
|
|
cy.get('input[name="user[newpassword]"]')
|
|
.should('have.value', '')
|
|
|
|
cy.get('#userform').submit()
|
|
cy.get('#flash-message').should('contain', 'Saved all changes')
|
|
|
|
})
|
|
|
|
it('logouts out', function()
|
|
{
|
|
// visits logout link
|
|
cy.visit('/tm/logout')
|
|
cy.url().should('include', '/tm/login')
|
|
|
|
// tries to open setup form again and gets redirected to login
|
|
cy.visit('/setup')
|
|
cy.url().should('include','/login')
|
|
})
|
|
|
|
it('redirects when tries to setup again', function()
|
|
{
|
|
// tries to open setup form again and gets redirected to login
|
|
cy.visit('/setup')
|
|
cy.url().should('include','/login')
|
|
})
|
|
}) |