import Login from "../Login.vue";
import {mount} from "@vue/test-utils";
import { shallowMount } from '@vue/test-utils'
import Service from "../service/Service";
import Contenu from "../Contenu";
import Volet_Base from "../components/Volet_Base";
import Volet_Menu from "../components/Volet_Menu";
import Volet_Contenu from "../components/Volet_Contenu";

// Rien a tester dans Index.vue, car c'est juste un "aggrégateur" pour d'autres composants.

test('Volet_Base', () => {

    const wrapper = shallowMount(Volet_Base)

    // Volet_Menu -> filtre choisi
    const subComponent = wrapper.findComponent(Volet_Menu)
    expect(subComponent.exists()).toBe(true)
    subComponent.vm.$emit("filtre_choisi", {filtre: "auteur"})
    expect(wrapper.vm.filtre_choisi).toEqual("auteur")

    // Volet_Contenu -> filtres choisis & mode_choisi
    const subComponentTwo = wrapper.findComponent(Volet_Contenu)
    // subComponentTwo.vm.$emit("filtresChoisis", {filtres: ["auteur", "tag1"]})

    // réception d'un changement de mode
    expect(wrapper.vm.panierChoisi).toEqual(true)
    subComponentTwo.vm.$emit("mode_choisi", {mode: "banque"})
    expect(wrapper.vm.panierChoisi).toEqual(false)


    // bouton de changement de variante
    let button = wrapper.find('#changerVariante');
    expect(wrapper.vm.variante).toEqual(false)
    button.trigger('click');
    expect(wrapper.vm.variante).toEqual(true)

    // bouton pour masquer / afficher le volet
    expect(wrapper.vm.isActif).toEqual(true)
    button = wrapper.find("#boutonVolet")
    button.trigger('click');
    expect(wrapper.vm.isActif).toEqual(false)

    // bouton pour cocher décocher l'affichage des contenus persos
    expect(wrapper.vm.persoChecked).toEqual(true)
    button = wrapper.find("#filtrePerso")
    button.trigger('click');
    expect(wrapper.vm.persoChecked).toEqual(false)

    // bouton pour cocher décocher l'affichage des contenus tiers
    expect(wrapper.vm.tiersChecked).toEqual(true)
    button = wrapper.find("#filtreTiers")
    button.trigger('click');
    expect(wrapper.vm.tiersChecked).toEqual(false)

    // bouton pour cocher décocher l'affichage des contenus en-cours
    expect(wrapper.vm.enCoursChecked).toEqual(true)
    button = wrapper.find("#filtreEnCours")
    button.trigger('click');
    expect(wrapper.vm.enCoursChecked).toEqual(false)


})