Simple vue composition api testing utilities
// используем yarn
yarn add vue-composition-test-utils -D
// используем npm
npm install vue-composition-test-utils -D
import { ref } from 'vue'
export function useCounter(initialValue = 0) {
const count = ref(initialValue)
const inc = (delta = 1) => (count.value += delta)
return { count, inc }
}
import { mountComposition, nextTick } from 'vue-composition-test-utils'
test('должен получить текущее значение композиции', function() {
const wrapper = mountComposition(useCounter)
expect(wrapper.result.current.count.value).toEqual(0)
});
test('шаблон должен отображаться через опцию template', async function() {
const wrapper = mountComposition(useCounter, {
component: {
template: 'hello world {{result.current.count.value}}',
}
})
expect(wrapper.html()).toEqual('hello world 0')
await nextTick(() => {
wrapper.result.current.inc()
})
expect(wrapper.result.current.count.value).toEqual(1)
expect(wrapper.html()).toEqual('hello world 1')
});
import {GlobalMountOptions} from "@vue/test-utils/dist/types";
import {ComponentOptionsWithoutProps} from "vue";
interface MountingOptions<Props, Data = {}> {
data?: () => {} extends Data ? any : Data extends object ? Partial<Data> : any;
props?: Props;
attrs?: Record<string, unknown>;
slots?: SlotDictionary & {
default?: Slot;
};
global?: GlobalMountOptions;
attachTo?: HTMLElement | string;
shallow?: boolean;
component?: ComponentOptionsWithoutProps;
}
interface MountingResult<R> {
current: R | null;
error: Error | null;
}
export declare const mountComposition: <R, Props>(callback: () => R, options?: MountingOptions<never>) => import("@vue/test-utils").VueWrapper<import("vue").ComponentPublicInstance<Props, {}, {}, {}, {}, Record<string, any>, import("vue").VNodeProps & Props, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>> & {
result: MountingResult<R>;
};
export const nextTick: (fn?: () => void) => Promise<void>
Этот проект вдохновлён vue-demi.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )