mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
use bv toaster on login and test it. Hack console warn to filter portal vue warnings
This commit is contained in:
parent
b9bbcb2998
commit
fcd89dd139
@ -13,7 +13,7 @@ export const getCommunityInfoMixin = {
|
|||||||
return result.data.getCommunityInfo
|
return result.data.getCommunityInfo
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.$toasted.global.error(error.message)
|
this.toastError(error.message)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -14,7 +14,7 @@ export const toasters = {
|
|||||||
},
|
},
|
||||||
toast(message, options) {
|
toast(message, options) {
|
||||||
this.$bvToast.toast(message, {
|
this.$bvToast.toast(message, {
|
||||||
autoHideDelay: 50000,
|
autoHideDelay: 5000,
|
||||||
appendToast: false,
|
appendToast: false,
|
||||||
solid: true,
|
solid: true,
|
||||||
toaster: 'b-toaster-top-right',
|
toaster: 'b-toaster-top-right',
|
||||||
|
|||||||
@ -2,6 +2,8 @@ import { RouterLinkStub, mount } from '@vue/test-utils'
|
|||||||
import flushPromises from 'flush-promises'
|
import flushPromises from 'flush-promises'
|
||||||
import Login from './Login'
|
import Login from './Login'
|
||||||
|
|
||||||
|
import { toasters } from '../../mixins/toaster'
|
||||||
|
|
||||||
const localVue = global.localVue
|
const localVue = global.localVue
|
||||||
|
|
||||||
const apolloQueryMock = jest.fn().mockResolvedValue({
|
const apolloQueryMock = jest.fn().mockResolvedValue({
|
||||||
@ -15,7 +17,6 @@ const apolloQueryMock = jest.fn().mockResolvedValue({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const toastErrorMock = jest.fn()
|
|
||||||
const mockStoreDispach = jest.fn()
|
const mockStoreDispach = jest.fn()
|
||||||
const mockStoreCommit = jest.fn()
|
const mockStoreCommit = jest.fn()
|
||||||
const mockRouterPush = jest.fn()
|
const mockRouterPush = jest.fn()
|
||||||
@ -26,6 +27,8 @@ const spinnerMock = jest.fn(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const toastErrorSpy = jest.spyOn(toasters.methods, 'toastError')
|
||||||
|
|
||||||
describe('Login', () => {
|
describe('Login', () => {
|
||||||
let wrapper
|
let wrapper
|
||||||
|
|
||||||
@ -51,11 +54,6 @@ describe('Login', () => {
|
|||||||
$router: {
|
$router: {
|
||||||
push: mockRouterPush,
|
push: mockRouterPush,
|
||||||
},
|
},
|
||||||
$toasted: {
|
|
||||||
global: {
|
|
||||||
error: toastErrorMock,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
$apollo: {
|
$apollo: {
|
||||||
query: apolloQueryMock,
|
query: apolloQueryMock,
|
||||||
},
|
},
|
||||||
@ -96,7 +94,7 @@ describe('Login', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('toasts an error message', () => {
|
it('toasts an error message', () => {
|
||||||
expect(toastErrorMock).toBeCalledWith('Failed to get communities')
|
expect(toastErrorSpy).toBeCalledWith('Failed to get communities')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -249,7 +247,7 @@ describe('Login', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('toasts an error message', () => {
|
it('toasts an error message', () => {
|
||||||
expect(toastErrorMock).toBeCalledWith('error.no-account')
|
expect(toastErrorSpy).toBeCalledWith('error.no-account')
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('login fails with "User email not validated"', () => {
|
describe('login fails with "User email not validated"', () => {
|
||||||
|
|||||||
@ -105,7 +105,7 @@ export default {
|
|||||||
loader.hide()
|
loader.hide()
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.$toasted.global.error(this.$t('error.no-account'))
|
this.toastError(this.$t('error.no-account'))
|
||||||
if (error.message.includes('User email not validated')) {
|
if (error.message.includes('User email not validated')) {
|
||||||
this.$router.push('/thx/login')
|
this.$router.push('/thx/login')
|
||||||
} else if (error.message.includes('User has no password set yet')) {
|
} else if (error.message.includes('User has no password set yet')) {
|
||||||
|
|||||||
@ -17,6 +17,8 @@ import { focus } from 'vue-focus'
|
|||||||
|
|
||||||
import { loadAllRules } from '../src/validation-rules'
|
import { loadAllRules } from '../src/validation-rules'
|
||||||
|
|
||||||
|
import { toasters } from '../src/mixins/toaster'
|
||||||
|
|
||||||
Object.keys(rules).forEach((rule) => {
|
Object.keys(rules).forEach((rule) => {
|
||||||
extend(rule, {
|
extend(rule, {
|
||||||
...rules[rule], // copies rule configuration
|
...rules[rule], // copies rule configuration
|
||||||
@ -47,6 +49,17 @@ global.localVue.component('validation-observer', ValidationObserver)
|
|||||||
// global.localVue.directive('click-outside', clickOutside)
|
// global.localVue.directive('click-outside', clickOutside)
|
||||||
global.localVue.directive('focus', focus)
|
global.localVue.directive('focus', focus)
|
||||||
|
|
||||||
|
global.localVue.mixin(toasters)
|
||||||
|
|
||||||
|
// Filter the warnings for portal vue
|
||||||
|
const consoleWarn = global.console.warn
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
delete console.warn
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.warn = (m) => {
|
||||||
|
if (!m.match(/^\[portal-vue\]: Target .+ already exists$/)) consoleWarn(m)
|
||||||
|
}
|
||||||
|
|
||||||
// throw errors for vue warnings to force the programmers to take care about warnings
|
// throw errors for vue warnings to force the programmers to take care about warnings
|
||||||
Vue.config.warnHandler = (w) => {
|
Vue.config.warnHandler = (w) => {
|
||||||
throw new Error(w)
|
throw new Error(w)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user