44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
import { describe, expect, it, vi, beforeEach } from 'vitest';
|
|
import { createWrapper } from 'app/test/vitest/helper';
|
|
import VnAccountNumber from 'src/components/common/VnAccountNumber.vue';
|
|
|
|
describe('VnAccountNumber', () => {
|
|
let wrapper;
|
|
let input;
|
|
let vnInput;
|
|
let spyShort;
|
|
|
|
beforeEach(() => {
|
|
wrapper = createWrapper(VnAccountNumber);
|
|
wrapper = wrapper.wrapper;
|
|
input = wrapper.find('input');
|
|
vnInput = wrapper.findComponent({ name: 'VnInput' });
|
|
spyShort = vi.spyOn(wrapper.vm, 'useAccountShortToStandard');
|
|
});
|
|
|
|
it('should filter out non-numeric characters on input event', async () => {
|
|
await input.setValue('abc123.45!@#');
|
|
const emitted = wrapper.emitted('update:modelValue');
|
|
expect(emitted.pop()[0]).toBe('123.45');
|
|
expect(spyShort).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should apply conversion on blur when valid short value is provided', async () => {
|
|
await input.setValue('123.45');
|
|
await vnInput.trigger('blur');
|
|
|
|
const emitted = wrapper.emitted('update:modelValue');
|
|
expect(emitted.pop()[0]).toBe('1230000045');
|
|
expect(spyShort).toHaveBeenCalled();
|
|
});
|
|
|
|
it('should not change value for invalid input values', async () => {
|
|
await input.setValue('123');
|
|
await vnInput.trigger('blur');
|
|
|
|
const emitted = wrapper.emitted('update:modelValue');
|
|
expect(emitted.pop()[0]).toBe('123');
|
|
expect(spyShort).toHaveBeenCalled();
|
|
});
|
|
});
|