提交 b9e601fd 编写于 作者: T Tomas Vik

test: adding integration test for creating new diff comments

上级 8d2896e0
......@@ -6,12 +6,16 @@ const { graphql } = require('msw');
const IssuableDataProvider = require('../../src/data_providers/issuable').DataProvider;
const { MrItemModel } = require('../../src/data_providers/items/mr_item_model');
const { tokenService } = require('../../src/services/token_service');
const { submitEdit } = require('../../src/commands/mr_discussion_commands');
const { submitEdit, createComment } = require('../../src/commands/mr_discussion_commands');
const openMergeRequestResponse = require('./fixtures/rest/open_mr.json');
const versionsResponse = require('./fixtures/rest/versions.json');
const versionResponse = require('./fixtures/rest/mr_version.json');
const diffNote = require('./fixtures/rest/diff_note.json');
const { projectWithMrDiscussions, noteOnDiff } = require('./fixtures/graphql/discussions');
const {
projectWithMrDiscussions,
noteOnDiff,
discussionOnDiff,
} = require('./fixtures/graphql/discussions');
const mrPermissionsResponse = require('./fixtures/graphql/mr_permissions.json');
const {
getServer,
......@@ -22,6 +26,7 @@ const { GITLAB_URL } = require('./test_infrastructure/constants');
const { ApiContentProvider } = require('../../src/review/api_content_provider');
const { PROGRAMMATIC_COMMANDS } = require('../../src/command_names');
const { gitExtensionWrapper } = require('../../src/git/git_extension_wrapper');
const { toReviewUri } = require('../../src/review/review_uri');
describe('MR Review', () => {
let server;
......@@ -50,6 +55,14 @@ describe('MR Review', () => {
return res(ctx.data(mrPermissionsResponse));
return res(ctx.data({ project: null }));
}),
graphql.mutation('CreateDiffNote', (req, res, ctx) => {
if (
req.variables.issuableId === `gid://gitlab/MergeRequest/${openMergeRequestResponse.id}` &&
req.variables.body === 'new comment'
)
return res(ctx.data({ createDiffNote: { note: { discussion: discussionOnDiff } } }));
return res(ctx.status(500));
}),
]);
await tokenService.setToken(GITLAB_URL, 'abcd-secret');
});
......@@ -212,5 +225,28 @@ describe('MR Review', () => {
assert.strictEqual(content, '');
});
});
describe('Creating a new diff comment thread', () => {
it('should create a new comment', async () => {
// This URI represents old version of `src/test.js` file (versionResponse fixture) in the test MR (openMergeRequestResponse fixture)
const uri = toReviewUri({
path: `src/test.js`,
commit: versionResponse.base_commit_sha, // base sha === old version of the file
mrId: openMergeRequestResponse.id,
projectId: openMergeRequestResponse.project_id,
repositoryRoot: gitExtensionWrapper.getActiveRepository().rootFsPath,
});
const thread = {
uri,
range: new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 0)),
comments: [],
};
await createComment({ text: 'new comment', thread });
assert.strictEqual(thread.comments.length, 1); // comment has been added
});
});
});
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册