1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/thoughtworks-vue-composition-test-utils

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

vue-composition-test-utils

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')
});

vue2 + @vue/composition-api демо

https://github.com/ariesjia/vue-composition-test-utils/blob/master/packages/test-vue2/test/simple.test.js

vue3 демо

https://github.com/ariesjia/vue-composition-test-utils/blob/master/packages/test-vue3/test/simple.test.js

API

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Юнит-тесты для Vue 2 и 3 с использованием Simple vue composition api. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/thoughtworks-vue-composition-test-utils.git
git@api.gitlife.ru:oschina-mirror/thoughtworks-vue-composition-test-utils.git
oschina-mirror
thoughtworks-vue-composition-test-utils
thoughtworks-vue-composition-test-utils
master