diff --git a/src/components/Products/ListProduct.vue b/src/components/Products/ListProduct.vue index e0d46f3..a13f261 100644 --- a/src/components/Products/ListProduct.vue +++ b/src/components/Products/ListProduct.vue @@ -40,6 +40,7 @@ depressed outlined @click="$emit('on-edit', product)" + class="edit" > fa-edit {{ $t('call_action_buttons.edit') }} diff --git a/tests/components/Products/ListProduct.test.js b/tests/components/Products/ListProduct.test.js index ff0aa21..50868c9 100644 --- a/tests/components/Products/ListProduct.test.js +++ b/tests/components/Products/ListProduct.test.js @@ -40,7 +40,7 @@ const wrapperFactory = () => mount(ListProduct, { }, loadingFavorite: false, currency: { - symbol: 'R$', + symbol: 'R$', } } }) @@ -72,5 +72,16 @@ describe('List Product Component', () => { expect(wrapper.props().currency).toBeTruthy() expect(wrapper.props().currency.symbol).toBe('R$') }) + + it('should be emit on-edit event', async () => { + await wrapper.find('.edit').trigger('click') + expect(wrapper.emitted('on-edit')).toBeTruthy() + }) + + it('should be emit view-details event', async () => { + await wrapper.find('span').trigger('click') + expect(wrapper.emitted('view-details')).toBeTruthy() + }) + }) \ No newline at end of file diff --git a/tests/mixins/miscellany/currencies.test.js b/tests/mixins/miscellany/currencies.test.js new file mode 100644 index 0000000..fba4f96 --- /dev/null +++ b/tests/mixins/miscellany/currencies.test.js @@ -0,0 +1,81 @@ +import { describe, it, expect } from 'vitest' +import { mount, config, createLocalVue } from '@vue/test-utils' +import addElemWithDataAppToBody from 'tests/mocks/DataAppElement'; +import currencies from '../../../src/mixins/miscellany/currencies.js'; +import mockComponent from '../../mocks/component.vue'; + +addElemWithDataAppToBody(); +config.stubs['font-awesome-icon'] = { template: "
" } + +const localVue = createLocalVue() + +const wrapperFactory = () => mount(mockComponent, { + mixins: [currencies], +}) + +const wrapper = wrapperFactory(); + +describe('Currencies Mixin', () => { + it('should save currencies in indexedDb', async () => { + await wrapper.vm.saveInIndexedDbCurrencies(); + }); + + it('should return an object when calling getCurrencies', () => { + expect(wrapper.vm.getCurrencies()).toBeInstanceOf(Object); + }); + + it('Should return USD currency when calling getPreferredcurrency and preferredCurrency is null', async () => { + expect(await wrapper.vm.getPreferredCurrency()).toEqual({ + code: "USD", + decimal_digits: 2, + name: "US Dollar", + name_plural: "US dollars", + rounding: 0, + symbol: "$", + symbol_native: "$", + }); + }); + + it('Should return the specified currency when calling getPreferredcurrency and preferredCurrency is not null', async () => { + await wrapper.vm.setPreferredCurrency({ + code: "DOP", + decimal_digits: 2, + name: "Dominican Peso", + name_plural: "Dominican pesos", + rounding: 0, + symbol: "RD$", + symbol_native: "RD$", + }); + expect(await wrapper.vm.getPreferredCurrency()).toEqual({ + code: "DOP", + decimal_digits: 2, + name: "Dominican Peso", + name_plural: "Dominican pesos", + rounding: 0, + symbol: "RD$", + symbol_native: "RD$", + }); + }); + + it('Should return an instance of localForage when calling getInstanceDb', () => { + expect(wrapper.vm.getInstanceDb()).toBeInstanceOf(Object); + }); + + it('Should return true when calling IsPreferredCurrencyNull and preferredCurrency is null', async () => { + await wrapper.vm.setPreferredCurrency(null); + expect(await wrapper.vm.IsPreferredCurrencyNull()).toBe(true); + }); + + it('Should return false when calling IsPreferredCurrencyNull and preferredCurrency is not null', async () => { + await wrapper.vm.setPreferredCurrency({ + code: "DOP", + decimal_digits: 2, + name: "Dominican Peso", + name_plural: "Dominican pesos", + rounding: 0, + symbol: "RD$", + symbol_native: "RD$", + }); + expect(await wrapper.vm.IsPreferredCurrencyNull()).toBe(false); + }); +}) \ No newline at end of file diff --git a/tests/mocks/component.vue b/tests/mocks/component.vue new file mode 100644 index 0000000..2b99cbc --- /dev/null +++ b/tests/mocks/component.vue @@ -0,0 +1,14 @@ + + + + \ No newline at end of file