Skip to content
The translation is synced to the docs on of which the commit hash is 1d8e1ee.

Transitions

En général, vous voudriez tester le DOM affiché après une transition, c'est pourquoi Vue Test Utils simule par défaut <transition> et <transition-group>.

Voici un composant simple qui passe d'un contenu à un autre avec une transition de fondu :

vue
<template>
  <button @click="show = !show">Lancer la transition</button>

  <transition name="fade">
    <p v-if="show">Bonjour</p>
  </transition>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const show = ref(false);

    return {
      show,
    };
  },
};
</script>

<style lang="css">
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s ease;
}

.fade-enter-from, .fade-leave-to {
  opacity: 0;
}
</style>

Comme Vue Test Utils substitue les transitions, vous pouvez tester le composant ci-dessus de la même manière que vous testez n'importe quel autre composant :

js
import Component from './Component.vue';
import { mount } from '@vue/test-utils';

test('fonctionne avec les transitions', async () => {
  const wrapper = mount(Component);

  expect(wrapper.find('Bonjour').exists()).toBe(false);

  await wrapper.find('button').trigger('click');

  // Après avoit cliqué sur le bouton, l'élément `<p>` existe et est visible.
  expect(wrapper.get('p').text()).toEqual('Bonjour');
});

Released under the MIT License.