@polar/lib-test-mount-parameters
Version:
Internal initialization parameters for testing framework in POLAR.
81 lines (76 loc) • 1.99 kB
text/typescript
import { createLocalVue } from '@vue/test-utils'
import i18next from 'i18next'
import Vue from 'vue'
import VueI18Next from 'i18next-vue'
import Vuetify from 'vuetify'
import Vuex, { Store } from 'vuex'
import { VueConstructor } from 'vue/types/umd'
import mpapiDefaults from '@polar/core/src/utils/createMap/defaults'
import { CoreGetters, CoreState, PolarStore } from '@polar/lib-custom-types'
Vue.use(VueI18Next, { i18next })
Vue.use(Vuetify)
Vue.use(Vuex)
export interface MockParameters {
localVue: VueConstructor<Vue>
store: PolarStore<CoreState, CoreGetters>
vuetify: Vuetify
emptyRoot: CoreState
}
const initializeI18n = (): Promise<void> =>
i18next
.init({
lng: 'cimode',
debug: false,
})
.then(() => {
// eslint-disable-next-line no-console
console.info(`i18next: Successfully initialized for testing.`)
})
.catch((error: Error) => {
console.error('i18next: Error while initializing for testing.', error)
})
export default (): MockParameters => {
initializeI18n()
const localVue: VueConstructor<Vue> = createLocalVue()
return {
localVue,
vuetify: new Vuetify(),
store: new Store({
modules: {
plugin: {
namespaced: true,
},
},
getters: {
// Base value. Should be adjusted in tests if necessary for the test.
hasSmallDisplay: () => false,
hasSmallHeight: () => false,
configuration: () => ({}),
},
}),
emptyRoot: {
map: 1,
clientHeight: 0,
clientWidth: 0,
center: null,
components: 1,
configuration: {
startCenter: [0, 0],
layerConf: [],
layers: [],
...mpapiDefaults,
},
errors: [],
hasSmallDisplay: false,
moveHandle: 0,
moveHandleActionButton: 0,
plugin: {},
language: '',
mapHasDimensions: false,
zoomLevel: 0,
hovered: 0,
selected: 0,
oidcToken: '',
},
}
}