mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
Improved internationalization test
This commit is contained in:
parent
8b0823e01b
commit
3626fb2fa0
@ -3,14 +3,17 @@ Feature: Internationalization
|
|||||||
I would like to see the user interface translated to my preferred language
|
I would like to see the user interface translated to my preferred language
|
||||||
In order to be able to understand the interface
|
In order to be able to understand the interface
|
||||||
|
|
||||||
Scenario: See english loginpage
|
Background:
|
||||||
When I visit the "/login" page
|
When I visit the "login" page
|
||||||
Then I can see the english is selected
|
|
||||||
|
|
||||||
Scenario: See german loginpage
|
Scenario: Change the language
|
||||||
When I visit the "/login" page
|
When I select "Deutsch" in the language menu
|
||||||
And I select german
|
Then The whole user interface appears in "Deutsch"
|
||||||
Then I can see the german is selected
|
|
||||||
Then There should be a locale cooke set to de
|
When I select "English" in the language menu
|
||||||
When I refresh the page
|
Then The whole user interface appears in "English"
|
||||||
Then I can see the german is selected
|
|
||||||
|
Scenario: Keep preferred language after refresh
|
||||||
|
When I select "Deutsch" in the language menu
|
||||||
|
And I refresh the page
|
||||||
|
Then The whole user interface appears in "Deutsch"
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'
|
import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'
|
||||||
|
import find from 'lodash/find'
|
||||||
|
|
||||||
const baseUrl = 'http://localhost:3000'
|
const baseUrl = 'http://localhost:3000'
|
||||||
const username = 'Peter Lustig'
|
const username = 'Peter Lustig'
|
||||||
|
|
||||||
|
const locales = require('../../../locales')
|
||||||
|
|
||||||
const login = (email, password) => {
|
const login = (email, password) => {
|
||||||
cy.visit(`${baseUrl}/login`)
|
cy.visit(`${baseUrl}/login`)
|
||||||
cy.get('input[name=email]')
|
cy.get('input[name=email]')
|
||||||
@ -40,9 +43,15 @@ Given('my user account has the role {string}', (role) => {
|
|||||||
|
|
||||||
When('I log out', logout)
|
When('I log out', logout)
|
||||||
|
|
||||||
When(`I visit the {string} page`, route => {
|
When('I visit the {string} page', route => {
|
||||||
|
if (route === 'main') {
|
||||||
|
route = ''
|
||||||
|
}
|
||||||
cy.visit(`${baseUrl}/${route}`)
|
cy.visit(`${baseUrl}/${route}`)
|
||||||
})
|
})
|
||||||
|
Given('I am on the {string} page', page => {
|
||||||
|
cy.location('pathname').should('contain', `/${page}`)
|
||||||
|
})
|
||||||
|
|
||||||
When('I fill in my email and password combination and click submit', () => {
|
When('I fill in my email and password combination and click submit', () => {
|
||||||
login('admin@example.org', 1234)
|
login('admin@example.org', 1234)
|
||||||
@ -79,22 +88,18 @@ Then('I am still logged in', () => {
|
|||||||
cy.get('.avatar-menu-popover').contains(username)
|
cy.get('.avatar-menu-popover').contains(username)
|
||||||
})
|
})
|
||||||
|
|
||||||
When('I can see the english is selected', () => {
|
When('I select {string} in the language menu', name => {
|
||||||
cy.get('.login-locale-switch img[alt="English"]')
|
|
||||||
})
|
|
||||||
When('I can see the german is selected', () => {
|
|
||||||
cy.get('.login-locale-switch img[alt="Deutsch"]')
|
|
||||||
})
|
|
||||||
When('I select german', () => {
|
|
||||||
cy.get('.login-locale-switch a')
|
cy.get('.login-locale-switch a')
|
||||||
.click()
|
.click()
|
||||||
.wait(50)
|
.wait(50)
|
||||||
cy.get('.locale-menu-popover a.de')
|
const code = find(locales, ['name', name]).code
|
||||||
|
cy.get(`.locale-menu-popover a.${code}`)
|
||||||
.click()
|
.click()
|
||||||
.wait(500)
|
.wait(500)
|
||||||
})
|
})
|
||||||
Then(`There should be a locale cooke set to de`, () => {
|
Then('The whole user interface appears in {string}', name => {
|
||||||
cy.getCookie('locale').should('have.property', 'value', 'de')
|
const code = find(locales, ['name', name]).code
|
||||||
|
cy.getCookie('locale').should('have.property', 'value', code)
|
||||||
})
|
})
|
||||||
|
|
||||||
When('I navigate to the administration dashboard', () => {
|
When('I navigate to the administration dashboard', () => {
|
||||||
@ -104,11 +109,11 @@ When('I navigate to the administration dashboard', () => {
|
|||||||
.click()
|
.click()
|
||||||
})
|
})
|
||||||
|
|
||||||
When(`I click on {string}`, (linkOrButton) => {
|
When('I click on {string}', linkOrButton => {
|
||||||
cy.contains(linkOrButton).click()
|
cy.contains(linkOrButton).click()
|
||||||
})
|
})
|
||||||
|
|
||||||
Then('I can see a list of categories ordered by post count:', (table) => {
|
Then('I can see a list of categories ordered by post count:', table => {
|
||||||
// TODO: match the table in the feature with the html table
|
// TODO: match the table in the feature with the html table
|
||||||
cy.get('thead').find('tr th').should('have.length', 3)
|
cy.get('thead').find('tr th').should('have.length', 3)
|
||||||
const last_column = cy.get('tbody').find('tr td:last-child').then((last_column) => {
|
const last_column = cy.get('tbody').find('tr td:last-child').then((last_column) => {
|
||||||
@ -119,7 +124,7 @@ Then('I can see a list of categories ordered by post count:', (table) => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
Then('I can see a list of tags ordered by user and post count:', (table) => {
|
Then('I can see a list of tags ordered by user and post count:', table => {
|
||||||
// TODO: match the table in the feature with the html table
|
// TODO: match the table in the feature with the html table
|
||||||
cy.get('thead').find('tr th').should('have.length', 4)
|
cy.get('thead').find('tr th').should('have.length', 4)
|
||||||
const last_column = cy.get('tbody').find('tr td:last-child').then((last_column) => {
|
const last_column = cy.get('tbody').find('tr td:last-child').then((last_column) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user