Skip to content
Snippets Groups Projects

Users can apply multiple suggestions at once.

Merged Jesse Hall requested to merge jessehall3/gitlab-ee:25486-batch-suggestions into master
1 file
+ 68
0
Compare changes
  • Side-by-side
  • Inline
@@ -877,6 +877,74 @@ describe('Actions Notes Store', () => {
});
});
describe('submitSuggestionBatch', () => {
const discussionIds = ['discussion-id-1', 'discussion-id-2'];
const noteIds = ['note-id-1', 'note-id-2'];
const suggestionIds = ['suggestion-id-1', 'suggestion-id-2'];
const batchSuggestionsInfo = [
{ noteId: noteIds[0], suggestionId: suggestionIds[0], discussionId: discussionIds[0]},
{ noteId: noteIds[1], suggestionId: suggestionIds[1], discussionId: discussionIds[1]},
];
let flashContainer;
beforeEach(() => {
spyOn(Api, 'applySuggestionBatch');
dispatch.and.returnValue(Promise.resolve());
Api.applySuggestionBatch.and.returnValue(Promise.resolve());
state = { batchSuggestionsInfo };
flashContainer = {};
});
const testSubmitSuggestionBatch = (done, expectFn) => {
actions
.submitSuggestionBatch(
{ commit, dispatch, state },
flashContainer
)
.then(expectFn)
.then(done)
.catch(done.fail);
};
it('when service success, commits and resolves discussion', done => {
testSubmitSuggestionBatch(done, () => {
expect(commit.calls.allArgs()).toEqual([
[mutationTypes.SET_APPLYING_BATCH_STATE],
[mutationTypes.APPLY_SUGGESTION, batchSuggestionsInfo[0]],
[mutationTypes.APPLY_SUGGESTION, batchSuggestionsInfo[1]],
[mutationTypes.CLEAR_SUGGESTION_BATCH],
]);
expect(dispatch.calls.allArgs()).toEqual([
['resolveDiscussion', { discussionId: discussionIds[0] }],
['resolveDiscussion', { discussionId: discussionIds[1] }],
]);
expect(flashSpy).not.toHaveBeenCalled();
});
});
// it('when service fails, flashes error message', done => {
// const response = { response: { data: { message: TEST_ERROR_MESSAGE } } };
//
// Api.applySuggestion.and.returnValue(Promise.reject(response));
//
// testSubmitSuggestion(done, () => {
// expect(commit).not.toHaveBeenCalled();
// expect(dispatch).not.toHaveBeenCalled();
// expect(flashSpy).toHaveBeenCalledWith(`${TEST_ERROR_MESSAGE}.`, 'alert', flashContainer);
// });
// });
// it('when resolve discussion fails, fail gracefully', done => {
// dispatch.and.returnValue(Promise.reject());
//
// testSubmitSuggestion(done, () => {
// expect(flashSpy).not.toHaveBeenCalled();
// });
// });
});
describe('pushSuggestionToBatch', () => {
it('adds a suggestion\'s info to the current batch', done => {
testAction(
Loading