feat: Conversation transcript in widget (#2549)
This commit is contained in:
@@ -7,12 +7,15 @@ const state = {
|
||||
},
|
||||
};
|
||||
|
||||
const getters = {
|
||||
export const getters = {
|
||||
getUIFlags: $state => $state.uiFlags,
|
||||
};
|
||||
|
||||
const actions = {
|
||||
update: async ({ commit }, { email, messageId, submittedValues }) => {
|
||||
export const actions = {
|
||||
update: async (
|
||||
{ commit, dispatch },
|
||||
{ email, messageId, submittedValues }
|
||||
) => {
|
||||
commit('toggleUpdateStatus', true);
|
||||
try {
|
||||
const {
|
||||
@@ -33,6 +36,7 @@ const actions = {
|
||||
},
|
||||
{ root: true }
|
||||
);
|
||||
dispatch('contacts/get', {}, { root: true });
|
||||
refreshActionCableConnector(pubsubToken);
|
||||
} catch (error) {
|
||||
// Ignore error
|
||||
@@ -41,7 +45,7 @@ const actions = {
|
||||
},
|
||||
};
|
||||
|
||||
const mutations = {
|
||||
export const mutations = {
|
||||
toggleUpdateStatus($state, status) {
|
||||
$state.uiFlags.isUpdating = status;
|
||||
},
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
import { API } from 'widget/helpers/axios';
|
||||
import { actions } from '../../message';
|
||||
|
||||
const commit = jest.fn();
|
||||
jest.mock('widget/helpers/axios');
|
||||
|
||||
describe('#actions', () => {
|
||||
describe('#update', () => {
|
||||
it('sends correct actions', async () => {
|
||||
const user = {
|
||||
email: 'john@acme.inc',
|
||||
messageId: 10,
|
||||
submittedValues: {
|
||||
email: 'john@acme.inc',
|
||||
},
|
||||
};
|
||||
API.patch.mockResolvedValue({
|
||||
data: { contact: { pubsub_token: '8npuMUfDgizrwVoqcK1t7FMY' } },
|
||||
});
|
||||
await actions.update({ commit }, user);
|
||||
expect(commit.mock.calls).toEqual([
|
||||
['toggleUpdateStatus', true],
|
||||
[
|
||||
'conversation/updateMessage',
|
||||
{
|
||||
id: 10,
|
||||
content_attributes: {
|
||||
submitted_email: 'john@acme.inc',
|
||||
submitted_values: null,
|
||||
},
|
||||
},
|
||||
{ root: true },
|
||||
],
|
||||
['toggleUpdateStatus', false],
|
||||
]);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,14 @@
|
||||
import { getters } from '../../message';
|
||||
|
||||
describe('#getters', () => {
|
||||
it('getUIFlags', () => {
|
||||
const state = {
|
||||
uiFlags: {
|
||||
isUpdating: false,
|
||||
},
|
||||
};
|
||||
expect(getters.getUIFlags(state)).toEqual({
|
||||
isUpdating: false,
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,11 @@
|
||||
import { mutations } from '../../message';
|
||||
|
||||
describe('#mutations', () => {
|
||||
describe('#toggleUpdateStatus', () => {
|
||||
it('set update flags', () => {
|
||||
const state = { uiFlags: { status: '' } };
|
||||
mutations.toggleUpdateStatus(state, 'sent');
|
||||
expect(state.uiFlags.isUpdating).toEqual('sent');
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user