52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
|
import { shallowMount } from '@vue/test-utils';
|
||
|
import { mapComputed } from '~/vuex_shared/bindings';
|
||
|
|
||
|
describe('Binding utils', () => {
|
||
|
describe('mapComputed', () => {
|
||
|
const dummyComponent = {
|
||
|
computed: {
|
||
|
...mapComputed('foo', 'bar', ['baz']),
|
||
|
},
|
||
|
render() {
|
||
|
return null;
|
||
|
},
|
||
|
};
|
||
|
it('returns an object with keys equal to the last fn parameter ', () => {
|
||
|
const keyList = ['foo1', 'foo2'];
|
||
|
const result = mapComputed('foo', 'bar', keyList);
|
||
|
expect(Object.keys(result)).toEqual(keyList);
|
||
|
});
|
||
|
it('returned object has set and get function', () => {
|
||
|
const result = mapComputed('foo', 'bar', ['baz']);
|
||
|
expect(result.baz.set).toBeDefined();
|
||
|
expect(result.baz.get).toBeDefined();
|
||
|
});
|
||
|
|
||
|
it('set function invokes $store.dispatch', () => {
|
||
|
const context = shallowMount(dummyComponent, {
|
||
|
mocks: {
|
||
|
$store: {
|
||
|
dispatch: jest.fn(),
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
context.vm.baz = 'a';
|
||
|
expect(context.vm.$store.dispatch).toHaveBeenCalledWith('bar', { baz: 'a' });
|
||
|
});
|
||
|
it('get function returns $store.state[root][key]', () => {
|
||
|
const context = shallowMount(dummyComponent, {
|
||
|
mocks: {
|
||
|
$store: {
|
||
|
state: {
|
||
|
foo: {
|
||
|
baz: 1,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
expect(context.vm.baz).toBe(1);
|
||
|
});
|
||
|
});
|
||
|
});
|