UNPKG

@cnamts/vue-dot

Version:

Implementation of our Design System for the French Health Insurance

85 lines (67 loc) 2.17 kB
import Vue, { VueConstructor } from 'vue'; import { config } from '@vue/test-utils'; import { addVApp } from '../../../tests/utils/addVApp'; import { html } from '../../../tests/utils/html'; /** Function to apply global config */ export function applyGlobalConfig(): void { /** Function to init mocks */ function setMocks(): void { // If mocks is undefined, init it if (!config.mocks) { config.mocks = {}; } // Mock i18n functions config.mocks.$t = (key: string) => key; config.mocks.$tc = (key: string) => key; } setMocks(); addVApp(); } import InputFacade from 'vue-input-facade'; import Meta from 'vue-meta'; import VueDot from '../../../src'; import Vuex, { Store, StoreOptions } from 'vuex'; import Vuetify, { UserVuetifyPreset } from 'vuetify'; /** Install global plugins on localVue */ export function installGlobalPlugins(localVue: VueConstructor<Vue>): void { localVue.use(InputFacade); localVue.use(Meta); localVue.use(VueDot); localVue.use(Vuex); Vue.use(Vuetify); } /** Install router on localVue */ export function installRouter(localVue: VueConstructor<Vue>): void { localVue.use(VueRouter); } import VueRouter, { RouterOptions } from 'vue-router'; import { IndexedObject, VForm } from '../../types'; /** Create a router */ export function createRouter(options?: RouterOptions): VueRouter { return new VueRouter(options); } /** Create a store */ export function createStore<T = unknown>(options: StoreOptions<T>): Store<T> { return new Vuex.Store(options); } /** Create a Vuetify instance */ export function createVuetifyInstance(preset?: Partial<UserVuetifyPreset>): Vuetify { return new Vuetify(preset); } /** Mock a VForm ref */ export function mockVFormRef(isValid: boolean): VForm { return { validate: () => isValid, resetValidation: () => undefined, reset: () => undefined }; } /** Mock translations */ export function mockTranslations<T>(translations: IndexedObject<T>): IndexedObject<(key: string) => T | string> { return { $t: (key: string) => translations[key] ?? key }; } // Re-export elements from Vue Test Utils to simplify imports export * from '@vue/test-utils'; export { html };