Feature: Ability to set an account name (#667)

* Ability to change the account name 
* Ability to set a language to the account

Addresses: #667  #307  

Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
This commit is contained in:
Nithin David Thomas
2020-04-06 22:17:07 +05:30
committed by GitHub
parent a1a81e3799
commit 99eaf59509
48 changed files with 1385 additions and 67 deletions

View File

@@ -0,0 +1,56 @@
import axios from 'axios';
import { actions, getters } from '../../accounts';
import * as types from '../../../mutation-types';
const accountData = {
id: 1,
name: 'Company one',
locale: 'en',
};
const commit = jest.fn();
global.axios = axios;
jest.mock('axios');
describe('#actions', () => {
describe('#get', () => {
it('sends correct actions if API is success', async () => {
axios.get.mockResolvedValue({ data: accountData });
await actions.get({ commit });
expect(commit.mock.calls).toEqual([
[types.default.SET_ACCOUNT_UI_FLAG, { isFetchingItem: true }],
[types.default.ADD_ACCOUNT, accountData],
[types.default.SET_ACCOUNT_UI_FLAG, { isFetchingItem: false }],
]);
});
it('sends correct actions if API is error', async () => {
axios.get.mockRejectedValue({ message: 'Incorrect header' });
await actions.get({ commit });
expect(commit.mock.calls).toEqual([
[types.default.SET_ACCOUNT_UI_FLAG, { isFetchingItem: true }],
[types.default.SET_ACCOUNT_UI_FLAG, { isFetchingItem: false }],
]);
});
});
describe('#update', () => {
it('sends correct actions if API is success', async () => {
axios.patch.mockResolvedValue();
await actions.update({ commit, getters }, accountData);
expect(commit.mock.calls).toEqual([
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: true }],
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false }],
]);
});
it('sends correct actions if API is error', async () => {
axios.patch.mockRejectedValue({ message: 'Incorrect header' });
await expect(
actions.update({ commit, getters }, accountData)
).rejects.toThrow(Error);
expect(commit.mock.calls).toEqual([
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: true }],
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false }],
]);
});
});
});

View File

@@ -0,0 +1,32 @@
import { getters } from '../../accounts';
const accountData = {
id: 1,
name: 'Company one',
locale: 'en',
};
describe('#getters', () => {
it('getAccount', () => {
const state = {
records: [accountData],
};
expect(getters.getAccount(state)(1)).toEqual(accountData);
});
it('getUIFlags', () => {
const state = {
uiFlags: {
isFetching: true,
isCreating: false,
isUpdating: false,
isDeleting: false,
},
};
expect(getters.getUIFlags(state)).toEqual({
isFetching: true,
isCreating: false,
isUpdating: false,
isDeleting: false,
});
});
});

View File

@@ -0,0 +1,30 @@
import * as types from '../../../mutation-types';
import { mutations } from '../../accounts';
const accountData = {
id: 1,
name: 'Company one',
locale: 'en',
};
describe('#mutations', () => {
describe('#ADD_ACCOUNT', () => {
it('push contact data to the store', () => {
const state = {
records: [],
};
mutations[types.default.ADD_ACCOUNT](state, accountData);
expect(state.records).toEqual([accountData]);
});
});
describe('#EDIT_ACCOUNT', () => {
it('update contact', () => {
const state = {
records: [{ ...accountData, locale: 'fr' }],
};
mutations[types.default.EDIT_ACCOUNT](state, accountData);
expect(state.records).toEqual([accountData]);
});
});
});