mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch 'master' into 2730-devops-add-federation-modul-to-deployment-scripts
This commit is contained in:
commit
cfe2f9e1b0
31
.github/file-filters.yml
vendored
Normal file
31
.github/file-filters.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
# These file filter patterns are used by the action https://github.com/dorny/paths-filter
|
||||
|
||||
# more differentiated filters for admin interface, which might be used later
|
||||
# admin_locales: &admin_locales
|
||||
# - 'admin/src/locales/**'
|
||||
# - 'admin/scripts/sort*'
|
||||
|
||||
# admin_stylelinting: &admin_stylelinting
|
||||
# - 'admin/{components,layouts,pages}/**/*.{scss,vue}'
|
||||
# - 'admin/.stylelintrc.js'
|
||||
|
||||
# admin_linting: &admin_linting
|
||||
# - 'admin/.eslint*'
|
||||
# - 'admin/babel.config.js'
|
||||
# - 'admin/package.json'
|
||||
# - 'admin/**/*.{js,vue}'
|
||||
# - *admin_locales
|
||||
|
||||
# admin_unit_testing: &admin_unit_testing
|
||||
# - 'admin/package.json'
|
||||
# - 'admin/{jest,vue}.config.js'
|
||||
# - 'admin/{public,run,test}/**/*'
|
||||
# - 'admin/src/!(locales)/**/*'
|
||||
|
||||
# admin_docker_building: &admin_docker_building
|
||||
# - 'admin/.dockerignore'
|
||||
# - 'admin/Dockerfile'
|
||||
# - *admin_unit_testing
|
||||
|
||||
admin: &admin
|
||||
- 'admin/**/*'
|
||||
84
.github/workflows/test-admin-interface.yml
vendored
Normal file
84
.github/workflows/test-admin-interface.yml
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
name: Gradido Admin Interface Test CI
|
||||
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
# only (but most important) job from this workflow required for pull requests
|
||||
# check results serve as run conditions for all other jobs here
|
||||
files-changed:
|
||||
name: Detect File Changes - Admin Interface
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
admin: ${{ steps.changes.outputs.admin }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3.3.0
|
||||
|
||||
- name: Check for admin interface file changes
|
||||
uses: dorny/paths-filter@v2.11.1
|
||||
id: changes
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
filters: .github/file-filters.yml
|
||||
list-files: shell
|
||||
|
||||
|
||||
build_test:
|
||||
if: needs.files-changed.outputs.admin == 'true'
|
||||
name: Docker Build Test - Admin Interface
|
||||
needs: files-changed
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Admin Interface | Build 'test' image
|
||||
run: docker build --target test -t "gradido/admin:test" admin/ --build-arg NODE_ENV="test"
|
||||
|
||||
unit_test:
|
||||
if: needs.files-changed.outputs.admin == 'true'
|
||||
name: Unit Tests - Admin Interface
|
||||
needs: files-changed
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Admin Interface | Unit tests
|
||||
run: cd admin && yarn && yarn run test
|
||||
|
||||
lint:
|
||||
if: needs.files-changed.outputs.admin == 'true'
|
||||
name: Lint - Admin Interface
|
||||
needs: files-changed
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Admin Interface | Lint
|
||||
run: cd admin && yarn && yarn run lint
|
||||
|
||||
stylelint:
|
||||
if: needs.files-changed.outputs.admin == 'true'
|
||||
name: Stylelint - Admin Interface
|
||||
needs: files-changed
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Admin Interface | Stylelint
|
||||
run: cd admin && yarn && yarn run stylelint
|
||||
|
||||
locales:
|
||||
if: needs.files-changed.outputs.admin == 'true'
|
||||
name: Locales - Admin Interface
|
||||
needs: files-changed
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Admin Interface | Locales
|
||||
run: cd admin && yarn && yarn run locales
|
||||
151
.github/workflows/test.yml
vendored
151
.github/workflows/test.yml
vendored
@ -29,31 +29,6 @@ jobs:
|
||||
name: docker-frontend-test
|
||||
path: /tmp/frontend.tar
|
||||
|
||||
##############################################################################
|
||||
# JOB: DOCKER BUILD TEST ADMIN INTERFACE #####################################
|
||||
##############################################################################
|
||||
build_test_admin:
|
||||
name: Docker Build Test - Admin Interface
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
##########################################################################
|
||||
# CHECKOUT CODE ##########################################################
|
||||
##########################################################################
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
##########################################################################
|
||||
# ADMIN INTERFACE ########################################################
|
||||
##########################################################################
|
||||
- name: Admin | Build `test` image
|
||||
run: |
|
||||
docker build --target test -t "gradido/admin:test" admin/ --build-arg NODE_ENV="test"
|
||||
docker save "gradido/admin:test" > /tmp/admin.tar
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: docker-admin-test
|
||||
path: /tmp/admin.tar
|
||||
|
||||
##############################################################################
|
||||
# JOB: DOCKER BUILD TEST BACKEND #############################################
|
||||
##############################################################################
|
||||
@ -211,60 +186,6 @@ jobs:
|
||||
- name: Frontend | Stylelint
|
||||
run: cd frontend && yarn && yarn run stylelint
|
||||
|
||||
##############################################################################
|
||||
# JOB: LINT ADMIN INTERFACE ##################################################
|
||||
##############################################################################
|
||||
lint_admin:
|
||||
name: Lint - Admin Interface
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
##########################################################################
|
||||
# CHECKOUT CODE ##########################################################
|
||||
##########################################################################
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
##########################################################################
|
||||
# LINT ADMIN INTERFACE ###################################################
|
||||
##########################################################################
|
||||
- name: Admin Interface | Lint
|
||||
run: cd admin && yarn && yarn run lint
|
||||
|
||||
##############################################################################
|
||||
# JOB: STYLELINT ADMIN INTERFACE #############################################
|
||||
##############################################################################
|
||||
stylelint_admin:
|
||||
name: Stylelint - Admin Interface
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
##########################################################################
|
||||
# CHECKOUT CODE ##########################################################
|
||||
##########################################################################
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
##########################################################################
|
||||
# STYLELINT ADMIN INTERFACE ##############################################
|
||||
##########################################################################
|
||||
- name: Admin Interface | Stylelint
|
||||
run: cd admin && yarn && yarn run stylelint
|
||||
|
||||
##############################################################################
|
||||
# JOB: LOCALES ADMIN #########################################################
|
||||
##############################################################################
|
||||
locales_admin:
|
||||
name: Locales - Admin Interface
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
##########################################################################
|
||||
# CHECKOUT CODE ##########################################################
|
||||
##########################################################################
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
##########################################################################
|
||||
# LOCALES FRONTEND #######################################################
|
||||
##########################################################################
|
||||
- name: Admin | Locales
|
||||
run: cd admin && yarn && yarn run locales
|
||||
|
||||
##############################################################################
|
||||
# JOB: LINT BACKEND ##########################################################
|
||||
##############################################################################
|
||||
@ -335,51 +256,7 @@ jobs:
|
||||
# UNIT TESTS FRONTEND ####################################################
|
||||
##########################################################################
|
||||
- name: Frontend | Unit tests
|
||||
run: |
|
||||
cd frontend && yarn && yarn run test
|
||||
cp -r ./coverage ../
|
||||
##########################################################################
|
||||
# COVERAGE CHECK FRONTEND ################################################
|
||||
##########################################################################
|
||||
- name: frontend | Coverage check
|
||||
uses: webcraftmedia/coverage-check-action@master
|
||||
with:
|
||||
report_name: Coverage Frontend
|
||||
type: lcov
|
||||
result_path: ./frontend/coverage/lcov.info
|
||||
min_coverage: 95
|
||||
token: ${{ github.token }}
|
||||
|
||||
##############################################################################
|
||||
# JOB: UNIT TEST ADMIN INTERFACE #############################################
|
||||
##############################################################################
|
||||
unit_test_admin:
|
||||
name: Unit tests - Admin Interface
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
##########################################################################
|
||||
# CHECKOUT CODE ##########################################################
|
||||
##########################################################################
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
##########################################################################
|
||||
# UNIT TESTS ADMIN INTERFACE #############################################
|
||||
##########################################################################
|
||||
- name: Admin Interface | Unit tests
|
||||
run: |
|
||||
cd admin && yarn && yarn run test
|
||||
cp -r ./coverage ../
|
||||
##########################################################################
|
||||
# COVERAGE CHECK ADMIN INTERFACE #########################################
|
||||
##########################################################################
|
||||
- name: Admin Interface | Coverage check
|
||||
uses: webcraftmedia/coverage-check-action@master
|
||||
with:
|
||||
report_name: Coverage Admin Interface
|
||||
type: lcov
|
||||
result_path: ./admin/coverage/lcov.info
|
||||
min_coverage: 97
|
||||
token: ${{ github.token }}
|
||||
run: cd frontend && yarn && yarn run test
|
||||
|
||||
##############################################################################
|
||||
# JOB: UNIT TEST BACKEND ####################################################
|
||||
@ -415,20 +292,7 @@ jobs:
|
||||
- name: backend | docker-compose database
|
||||
run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database
|
||||
- name: backend Unit tests | test
|
||||
run: |
|
||||
cd database && yarn && yarn build && cd ../backend && yarn && yarn test
|
||||
cp -r ./coverage ../
|
||||
##########################################################################
|
||||
# COVERAGE CHECK BACKEND #################################################
|
||||
##########################################################################
|
||||
- name: backend | Coverage check
|
||||
uses: webcraftmedia/coverage-check-action@master
|
||||
with:
|
||||
report_name: Coverage Backend
|
||||
type: lcov
|
||||
result_path: ./backend/coverage/lcov.info
|
||||
min_coverage: 80
|
||||
token: ${{ github.token }}
|
||||
run: cd database && yarn && yarn build && cd ../backend && yarn && yarn test
|
||||
|
||||
##########################################################################
|
||||
# DATABASE MIGRATION TEST UP + RESET #####################################
|
||||
@ -459,7 +323,7 @@ jobs:
|
||||
end-to-end-tests:
|
||||
name: End-to-End Tests
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build_test_mariadb, build_test_database_up, build_test_admin, build_test_frontend, build_test_nginx]
|
||||
needs: [build_test_mariadb, build_test_database_up, build_test_frontend, build_test_nginx]
|
||||
steps:
|
||||
##########################################################################
|
||||
# CHECKOUT CODE ##########################################################
|
||||
@ -490,13 +354,6 @@ jobs:
|
||||
path: /tmp
|
||||
- name: Load Docker Image (Frontend)
|
||||
run: docker load < /tmp/frontend.tar
|
||||
- name: Download Docker Image (Admin Interface)
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: docker-admin-test
|
||||
path: /tmp
|
||||
- name: Load Docker Image (Admin Interface)
|
||||
run: docker load < /tmp/admin.tar
|
||||
- name: Download Docker Image (Nginx)
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
@ -550,7 +407,7 @@ jobs:
|
||||
run: |
|
||||
cd e2e-tests/
|
||||
yarn
|
||||
yarn run cypress run --spec cypress/e2e/User.Authentication.feature,cypress/e2e/User.Authentication.ResetPassword.feature,cypress/e2e/User.Registration.feature
|
||||
yarn run cypress run
|
||||
- name: End-to-end tests | if tests failed, upload screenshots
|
||||
if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
|
||||
14
.github/workflows/test_dht-node.yml
vendored
14
.github/workflows/test_dht-node.yml
vendored
@ -83,16 +83,4 @@ jobs:
|
||||
#- name: Unit tests
|
||||
# run: cd database && yarn && yarn build && cd ../dht-node && yarn && yarn test
|
||||
- name: Unit tests
|
||||
run: |
|
||||
docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net -v ~/coverage:/app/coverage --rm gradido/dht-node:test yarn run test
|
||||
cp -r ~/coverage ./coverage
|
||||
|
||||
- name: Coverage check
|
||||
uses: webcraftmedia/coverage-check-action@master
|
||||
with:
|
||||
report_name: Coverage DHT Node
|
||||
type: lcov
|
||||
#result_path: ./dht-node/coverage/lcov.info
|
||||
result_path: ./coverage/lcov.info
|
||||
min_coverage: 79
|
||||
token: ${{ github.token }}
|
||||
run: docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/dht-node:test yarn run test
|
||||
|
||||
13
.github/workflows/test_federation.yml
vendored
13
.github/workflows/test_federation.yml
vendored
@ -84,15 +84,4 @@ jobs:
|
||||
# run: cd database && yarn && yarn build && cd ../dht-node && yarn && yarn test
|
||||
- name: Unit tests
|
||||
run: |
|
||||
docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net -v ~/coverage:/app/coverage --rm gradido/federation:test yarn run test
|
||||
cp -r ~/coverage ./coverage
|
||||
|
||||
- name: Coverage check
|
||||
uses: webcraftmedia/coverage-check-action@master
|
||||
with:
|
||||
report_name: Coverage Federation
|
||||
type: lcov
|
||||
#result_path: ./federation/coverage/lcov.info
|
||||
result_path: ./coverage/lcov.info
|
||||
min_coverage: 72
|
||||
token: ${{ github.token }}
|
||||
docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/federation:test yarn run test
|
||||
|
||||
@ -1,11 +1,17 @@
|
||||
module.exports = {
|
||||
verbose: true,
|
||||
collectCoverage: true,
|
||||
collectCoverageFrom: [
|
||||
'src/**/*.{js,vue}',
|
||||
'!**/node_modules/**',
|
||||
'!src/assets/**',
|
||||
'!**/?(*.)+(spec|test).js?(x)',
|
||||
],
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
lines: 97,
|
||||
},
|
||||
},
|
||||
moduleFileExtensions: [
|
||||
'js',
|
||||
// 'jsx',
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
"analyse-bundle": "yarn build && webpack-bundle-analyzer dist/webpack.stats.json",
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
|
||||
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
|
||||
"test": "cross-env TZ=UTC jest --coverage",
|
||||
"test": "cross-env TZ=UTC jest",
|
||||
"locales": "scripts/sort.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
},
|
||||
"created": "Created for",
|
||||
"createdAt": "Created at",
|
||||
"creation": "Amount",
|
||||
"creation": "Creation",
|
||||
"creationList": "Creation list",
|
||||
"creation_form": {
|
||||
"creation_for": "Active Basic Income for",
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# Server
|
||||
JWT_EXPIRES_IN=1m
|
||||
JWT_EXPIRES_IN=2m
|
||||
|
||||
# Email
|
||||
EMAIL=true
|
||||
|
||||
@ -4,6 +4,11 @@ module.exports = {
|
||||
preset: 'ts-jest',
|
||||
collectCoverage: true,
|
||||
collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!src/seeds/**', '!build/**'],
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
lines: 80,
|
||||
},
|
||||
},
|
||||
setupFiles: ['<rootDir>/test/testSetup.ts'],
|
||||
setupFilesAfterEnv: ['<rootDir>/test/extensions.ts'],
|
||||
modulePathIgnorePatterns: ['<rootDir>/build/'],
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
"start": "cross-env TZ=UTC TS_NODE_BASEURL=./build node -r tsconfig-paths/register build/src/index.js",
|
||||
"dev": "cross-env TZ=UTC nodemon -w src --ext ts --exec ts-node -r tsconfig-paths/register src/index.ts",
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.ts .",
|
||||
"test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --coverage --forceExit --detectOpenHandles",
|
||||
"test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --forceExit --detectOpenHandles",
|
||||
"seed": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/seeds/index.ts",
|
||||
"klicktipp": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/util/klicktipp.ts",
|
||||
"locales": "scripts/sort.sh"
|
||||
|
||||
@ -16,9 +16,7 @@
|
||||
"dev_up": "cross-env TZ=UTC ts-node src/index.ts up",
|
||||
"dev_down": "cross-env TZ=UTC ts-node src/index.ts down",
|
||||
"dev_reset": "cross-env TZ=UTC ts-node src/index.ts reset",
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.ts .",
|
||||
"seed:config": "ts-node ./node_modules/typeorm-seeding/dist/cli.js config",
|
||||
"seed": "cross-env TZ=UTC ts-node src/index.ts seed"
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.ts ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/faker": "^5.5.9",
|
||||
|
||||
@ -4,6 +4,11 @@ module.exports = {
|
||||
preset: 'ts-jest',
|
||||
collectCoverage: true,
|
||||
collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!src/seeds/**', '!build/**'],
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
lines: 80,
|
||||
},
|
||||
},
|
||||
setupFiles: ['<rootDir>/test/testSetup.ts'],
|
||||
setupFilesAfterEnv: [],
|
||||
modulePathIgnorePatterns: ['<rootDir>/build/'],
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
"start": "cross-env TZ=UTC TS_NODE_BASEURL=./build node -r tsconfig-paths/register build/src/index.js",
|
||||
"dev": "cross-env TZ=UTC nodemon -w src --ext ts --exec ts-node -r dotenv/config -r tsconfig-paths/register src/index.ts",
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.ts .",
|
||||
"test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --coverage --forceExit --detectOpenHandles"
|
||||
"test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --forceExit --detectOpenHandles"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hyperswarm/dht": "^6.4.4",
|
||||
|
||||
@ -56,7 +56,7 @@ export default defineConfig({
|
||||
env: {
|
||||
backendURL: 'http://localhost:4000',
|
||||
mailserverURL: 'http://localhost:1080',
|
||||
loginQuery: `query ($email: String!, $password: String!, $publisherId: Int) {
|
||||
loginQuery: `mutation ($email: String!, $password: String!, $publisherId: Int) {
|
||||
login(email: $email, password: $password, publisherId: $publisherId) {
|
||||
email
|
||||
firstName
|
||||
@ -69,7 +69,8 @@ export default defineConfig({
|
||||
hasElopage
|
||||
publisherId
|
||||
isAdmin
|
||||
creation
|
||||
hideAmountGDD
|
||||
hideAmountGDT
|
||||
__typename
|
||||
}
|
||||
}`,
|
||||
|
||||
@ -5,13 +5,13 @@ Feature: User Authentication - reset password
|
||||
# TODO for these pre-conditions utilize seeding or API check, if user exists in test system
|
||||
# Background:
|
||||
# Given the following "users" are in the database:
|
||||
# | email | password | name |
|
||||
# | bibi@bloxberg.de | Aa12345_ | Bibi Bloxberg |
|
||||
# | email | password | name |
|
||||
# | raeuber@hotzenplotz.de | Aa12345_ | Räuber Hotzenplotz |
|
||||
|
||||
Scenario: Reset password from signin page successfully
|
||||
Given the user navigates to page "/login"
|
||||
And the user navigates to the forgot password page
|
||||
When the user enters the e-mail address "bibi@bloxberg.de"
|
||||
When the user enters the e-mail address "raeuber@hotzenplotz.de"
|
||||
And the user submits the e-mail form
|
||||
Then the user receives an e-mail containing the "password reset" link
|
||||
When the user opens the "password reset" link in the browser
|
||||
@ -19,7 +19,7 @@ Feature: User Authentication - reset password
|
||||
And the user repeats the password "12345Aa_"
|
||||
And the user submits the password form
|
||||
And the user clicks the sign in button
|
||||
Then the user submits the credentials "bibi@bloxberg.de" "Aa12345_"
|
||||
Then the user submits the credentials "raeuber@hotzenplotz.de" "Aa12345_"
|
||||
And the user cannot login
|
||||
But the user submits the credentials "bibi@bloxberg.de" "12345Aa_"
|
||||
And the user is logged in with username "Bibi Bloxberg"
|
||||
But the user submits the credentials "raeuber@hotzenplotz.de" "12345Aa_"
|
||||
And the user is logged in with username "Räuber Hotzenplotz"
|
||||
|
||||
@ -5,14 +5,14 @@ Feature: User profile - change password
|
||||
Background:
|
||||
# TODO for these pre-conditions utilize seeding or API check, if user exists in test system
|
||||
# Given the following "users" are in the database:
|
||||
# | email | password | name |
|
||||
# | bibi@bloxberg.de | Aa12345_ | Bibi Bloxberg | |
|
||||
# | email | password | name |
|
||||
# | bob@baumeister.de | Aa12345_ | Bob der Baumeister |
|
||||
|
||||
# TODO instead of credentials use the name of an user object (see seeds in backend)
|
||||
Given the user is logged in as "bibi@bloxberg.de" "Aa12345_"
|
||||
Given the user is logged in as "bob@baumeister.de" "Aa12345_"
|
||||
|
||||
Scenario: Change password successfully
|
||||
Given the user navigates to page "/profile"
|
||||
Given the user navigates to page "/settings"
|
||||
And the user opens the change password menu
|
||||
When the user fills the password form with:
|
||||
| Old password | Aa12345_ |
|
||||
@ -21,7 +21,7 @@ Feature: User profile - change password
|
||||
And the user submits the password form
|
||||
And the user is presented a "success" message
|
||||
And the user logs out
|
||||
Then the user submits the credentials "bibi@bloxberg.de" "Aa12345_"
|
||||
Then the user submits the credentials "bob@baumeister.de" "Aa12345_"
|
||||
And the user cannot login
|
||||
But the user submits the credentials "bibi@bloxberg.de" "12345Aa_"
|
||||
And the user is logged in with username "Bibi Bloxberg"
|
||||
But the user submits the credentials "bob@baumeister.de" "12345Aa_"
|
||||
And the user is logged in with username "Bob der Baumeister"
|
||||
|
||||
@ -11,7 +11,7 @@ export class SideNavMenu {
|
||||
}
|
||||
|
||||
logout() {
|
||||
cy.get(this.logoutMenu).click()
|
||||
cy.get('.main-sidebar').find(this.logoutMenu).click()
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,6 +9,11 @@ module.exports = {
|
||||
'!src/seeds/**',
|
||||
'!build/**',
|
||||
],
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
lines: 72,
|
||||
},
|
||||
},
|
||||
setupFiles: ['<rootDir>/test/testSetup.ts'],
|
||||
setupFilesAfterEnv: [],
|
||||
modulePathIgnorePatterns: ['<rootDir>/build/'],
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"build": "tsc --build",
|
||||
"clean": "tsc --build --clean",
|
||||
"start": "cross-env TZ=UTC TS_NODE_BASEURL=./build node -r tsconfig-paths/register build/src/index.js",
|
||||
"test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --coverage --forceExit --detectOpenHandles",
|
||||
"test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --forceExit --detectOpenHandles",
|
||||
"dev": "cross-env TZ=UTC nodemon -w src --ext ts --exec ts-node -r dotenv/config -r tsconfig-paths/register src/index.ts",
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.ts ."
|
||||
},
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
module.exports = {
|
||||
verbose: true,
|
||||
collectCoverage: true,
|
||||
collectCoverageFrom: ['src/**/*.{js,vue}', '!**/node_modules/**', '!**/?(*.)+(spec|test).js?(x)'],
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
lines: 95,
|
||||
},
|
||||
},
|
||||
moduleFileExtensions: [
|
||||
'js',
|
||||
// 'jsx',
|
||||
'json',
|
||||
'vue',
|
||||
],
|
||||
// coverageReporters: ['lcov', 'text'],
|
||||
moduleNameMapper: {
|
||||
'\\.(css|less)$': 'identity-obj-proxy',
|
||||
'\\.(scss)$': '<rootDir>/src/assets/mocks/styleMock.js',
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
"analyse-bundle": "yarn build && webpack-bundle-analyzer dist/webpack.stats.json",
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
|
||||
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
|
||||
"test": "cross-env TZ=UTC jest --coverage",
|
||||
"test": "cross-env TZ=UTC jest",
|
||||
"locales": "scripts/sort.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@ -49,15 +49,15 @@ describe('Sidebar', () => {
|
||||
expect(wrapper.findAll('.nav-item').at(2).text()).toEqual('navigation.transactions')
|
||||
})
|
||||
|
||||
it('has nav-item "gdt.gdt" in navbar', () => {
|
||||
it('has nav-item "creation" in navbar', () => {
|
||||
expect(wrapper.findAll('.nav-item').at(3).text()).toEqual('creation')
|
||||
})
|
||||
|
||||
it('has nav-item "creation" in navbar', () => {
|
||||
it('has nav-item "GDT" in navbar', () => {
|
||||
expect(wrapper.findAll('.nav-item').at(4).text()).toContain('GDT')
|
||||
})
|
||||
|
||||
it('has nav-item "Information" in navbar', () => {
|
||||
it('has nav-item "navigation.info" in navbar', () => {
|
||||
expect(wrapper.findAll('.nav-item').at(5).text()).toContain('navigation.info')
|
||||
})
|
||||
})
|
||||
@ -68,13 +68,13 @@ describe('Sidebar', () => {
|
||||
expect(wrapper.findAll('ul').at(1).findAll('.nav-item')).toHaveLength(2)
|
||||
})
|
||||
|
||||
it('has nav-item "navigation.info" in navbar', () => {
|
||||
it('has nav-item "navigation.settings" in navbar', () => {
|
||||
expect(wrapper.findAll('ul').at(1).findAll('.nav-item').at(0).text()).toEqual(
|
||||
'navigation.settings',
|
||||
)
|
||||
})
|
||||
|
||||
it('has nav-item "navigation.settings" in navbar', () => {
|
||||
it('has nav-item "navigation.logout" in navbar', () => {
|
||||
expect(wrapper.findAll('ul').at(1).findAll('.nav-item').at(1).text()).toEqual(
|
||||
'navigation.logout',
|
||||
)
|
||||
|
||||
@ -48,7 +48,12 @@
|
||||
<b-icon icon="shield-check" aria-hidden="true"></b-icon>
|
||||
<span class="ml-2">{{ $t('navigation.admin_area') }}</span>
|
||||
</b-nav-item>
|
||||
<b-nav-item class="font-weight-bold" @click="$emit('logout')" active-class="activeRoute">
|
||||
<b-nav-item
|
||||
class="font-weight-bold"
|
||||
@click="$emit('logout')"
|
||||
active-class="activeRoute"
|
||||
data-test="logout-menu"
|
||||
>
|
||||
<b-img src="/img/svg/logout.svg" height="20" class="svg-icon" />
|
||||
<span class="ml-2 text-205">{{ $t('navigation.logout') }}</span>
|
||||
</b-nav-item>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user