NuxtJS, средство выбора языка модульного тестирования с Jest и nuxt-i18n - PullRequest
2 голосов
/ 11 апреля 2019

У меня есть компонент, который переключает язык приложения nuxtjs, используя nuxt-i18n следующим образом

<template>
  <div class="navbar-item has-dropdown is-hoverable">
    <a class="navbar-link langpicker">{{ $t("language_picker") }} </a>
    <div class="navbar-dropdown is-hidden-mobile">
      <div>
        <nuxt-link
          v-if="currentLanguage != 'en'"
          class="navbar-item"
          :to="switchLocalePath('en')"
        >
          <img src="~/static/flags/us.svg" class="flagIcon" /> English
        </nuxt-link>
        <nuxt-link
          v-if="currentLanguage != 'el'"
          class="navbar-item"
          :to="switchLocalePath('el')"
        >
          <img src="~/static/flags/el.svg" class="flagIcon" /> Ελληνικά
        </nuxt-link>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: "LangPicker",
  computed: {
    currentLanguage() {
      return this.$i18n.locale || "en";
    }
  }
};
</script>

Я хочу написать модульный тест, который проверяет правильность переключения языка при нажатии «nuxt-link».

Пока у меня есть следующее

import { mount, RouterLinkStub } from "@vue/test-utils";
import LangPicker from "@/components/layout/LangPicker";

describe("LangPicker with locale en", () => {
  let cmp;
  beforeEach(() => {
    cmp = mount(LangPicker, {
      mocks: {
        $t: msg => msg,
        $i18n: { locale: "en" },
        switchLocalePath: msg => msg
      },
      stubs: {
        NuxtLink: RouterLinkStub
      }
    });
  });

  it("Trigger language", () => {
    const el = cmp.findAll(".navbar-item")
  });
});

cmp.find(".navbar-item") вернуть пустой объект.

Я не знаю, как мне настроить «срабатывание» события щелчка.

const el = cmp.findAll(".navbar-item")[1].trigger("click");

1 Ответ

1 голос
/ 09 июня 2019

убедитесь, что ваш селектор поиска правильный.

const comp = cmp.find(".navbar-item");
comp.trigger('click');

вы можете использовать утилиту выбора инструментов chrome dev.Для подробной информации см. эту ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...