feat: Add an option to delete campaigns (#2402)

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
This commit is contained in:
Muhsin Keloth
2021-06-15 14:14:59 +05:30
committed by GitHub
parent a56aa5656d
commit 0f377da109
12 changed files with 334 additions and 244 deletions

View File

@@ -54,6 +54,17 @@ export const actions = {
commit(types.SET_CAMPAIGN_UI_FLAG, { isUpdating: false });
}
},
delete: async ({ commit }, id) => {
commit(types.SET_CAMPAIGN_UI_FLAG, { isDeleting: true });
try {
await CampaignsAPI.delete(id);
commit(types.DELETE_CAMPAIGN, id);
} catch (error) {
throw new Error(error);
} finally {
commit(types.SET_CAMPAIGN_UI_FLAG, { isDeleting: false });
}
},
};
export const mutations = {
@@ -67,6 +78,7 @@ export const mutations = {
[types.ADD_CAMPAIGN]: MutationHelpers.create,
[types.SET_CAMPAIGNS]: MutationHelpers.set,
[types.EDIT_CAMPAIGN]: MutationHelpers.update,
[types.DELETE_CAMPAIGN]: MutationHelpers.destroy,
};
export default {

View File

@@ -68,4 +68,26 @@ describe('#actions', () => {
]);
});
});
describe('#delete', () => {
it('sends correct actions if API is success', async () => {
axios.delete.mockResolvedValue({ data: campaignList[0] });
await actions.delete({ commit }, campaignList[0].id);
expect(commit.mock.calls).toEqual([
[types.default.SET_CAMPAIGN_UI_FLAG, { isDeleting: true }],
[types.default.DELETE_CAMPAIGN, campaignList[0].id],
[types.default.SET_CAMPAIGN_UI_FLAG, { isDeleting: false }],
]);
});
it('sends correct actions if API is error', async () => {
axios.delete.mockRejectedValue({ message: 'Incorrect header' });
await expect(
actions.delete({ commit }, campaignList[0].id)
).rejects.toThrow(Error);
expect(commit.mock.calls).toEqual([
[types.default.SET_CAMPAIGN_UI_FLAG, { isDeleting: true }],
[types.default.SET_CAMPAIGN_UI_FLAG, { isDeleting: false }],
]);
});
});
});

View File

@@ -30,4 +30,12 @@ describe('#mutations', () => {
expect(state.records[0].message).toEqual('Hey, What brings you today');
});
});
describe('#DELETE_LABEL', () => {
it('delete campaign record', () => {
const state = { records: [campaigns[0]] };
mutations[types.DELETE_CAMPAIGN](state, 1);
expect(state.records).toEqual([]);
});
});
});