Cómo escribir una prueba de unidad JEST para este cálculo que verifica y filtra por tipo:
MODELO:
Escriba el correo electrónico:
<CommunicationPreference v-for="(communication, index) in communicationPreferenceTypeEmail" :key="index + communication.name" :consent="communication.consent" :name="communication.name" @update="updateConsent" />No escribir correo electrónico:
<CommunicationPreference v-for="(communication, index) in communicationPreferenceTypeNotEmail" :key="index + communication.name" :consent="communication.consent" :name="communication.name" @update="updateConsent" />Calculé los archivadores por tipo para poder mostrar en dos listas separadas una que tiene un tipo de correo electrónico y luego otra que es todo lo demás:
computed: { ...mapState('account', ['communicationPreferences']), communicationPreferenceTypeEmail() { return this.communicationPreferences.filter((e) => e.type === 'EMAIL') }, communicationPreferenceTypeNotEmail() { return this.communicationPreferences.filter((e) => e.type !== 'EMAIL') }, },Mi especificación de prueba:
it('should filter communication preferences by TYPE', () => {})Su pregunta solo incluye la parte de su plantilla con el componente CommunicationPreference , por lo que es difícil saber cómo se vería el resto de la plantilla. Pero creo que esto te puede ayudar:
import { mount } from '@vue/test-utils' import Component from './path/to/Component' const mockedCommunicationPreferencies = [ { //..., type: 'EMAIL', }, //... { //..., type: 'NOT-EMAIL', } ] it('should filter communication preferencies by TYPE', () => { let component = mount(Component) component.setData({ communicationPreferences: mockedCommunicationPreferences }) const emailCommunicationPreferences = component.vm.communicationPreferenceTypeEmail const nonEmailCommunicationPreferences = component.vm.communicationPreferenceTypeNotEmail expect(emailCommunicationPreferencies.every(cp => cp.type === 'EMAIL')).toBeTruthy() expect(nonEmailCommunicationPreferencies.every(cp => cp.type !== 'EMAIL')).toBeTruthy() })