Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
一杯枸杞茶ya
csdn-workflow
提交
28d322c6
C
csdn-workflow
项目概览
一杯枸杞茶ya
/
csdn-workflow
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
csdn-workflow
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
28d322c6
编写于
6月 07, 2021
作者:
T
Tomas Vik
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: comment controller can be disposed regardless of API failures
上级
17c7a92a
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
21 addition
and
6 deletion
+21
-6
src/data_providers/items/mr_item_model.test.ts
src/data_providers/items/mr_item_model.test.ts
+19
-5
src/data_providers/items/mr_item_model.ts
src/data_providers/items/mr_item_model.ts
+2
-1
未找到文件。
src/data_providers/items/mr_item_model.test.ts
浏览文件 @
28d322c6
...
...
@@ -16,22 +16,25 @@ describe('MrItemModel', () => {
let
commentThread
:
vscode
.
CommentThread
;
let
canUserCommentOnMr
=
false
;
let
commentController
:
any
;
let
gitLabService
:
any
;
const
createCommentThreadMock
=
jest
.
fn
();
beforeEach
(()
=>
{
const
repository
=
createWrappedRepository
({
gitLabService
:
{
gitLabService
=
{
getDiscussions
:
jest
.
fn
().
mockResolvedValue
([
discussionOnDiff
,
multipleNotes
]),
getMrDiff
:
jest
.
fn
().
mockResolvedValue
({
diffs
:
[]
}),
canUserCommentOnMr
:
jest
.
fn
(
async
()
=>
canUserCommentOnMr
),
},
};
const
repository
=
createWrappedRepository
({
gitLabService
,
});
item
=
new
MrItemModel
(
mr
,
repository
);
commentThread
=
{}
as
vscode
.
CommentThread
;
commentController
=
{
createCommentThread
:
createCommentThreadMock
.
mockReturnValue
(
commentThread
),
dispose
:
jest
.
fn
(),
};
createCommentControllerMock
.
mockReturnValue
(
commentController
);
});
...
...
@@ -70,5 +73,16 @@ describe('MrItemModel', () => {
expect
(
commentController
.
commentingRangeProvider
).
toBeInstanceOf
(
CommentingRangeProvider
);
});
// this test ensures that we add comment controller to disposables before calling API.
it
(
'
comment controller can be disposed regardless of API failures
'
,
async
()
=>
{
gitLabService
.
getDiscussions
=
()
=>
Promise
.
reject
(
new
Error
());
await
item
.
getChildren
();
expect
(
commentController
.
dispose
).
not
.
toHaveBeenCalled
();
item
.
dispose
();
expect
(
commentController
.
dispose
).
toHaveBeenCalled
();
});
});
});
src/data_providers/items/mr_item_model.ts
浏览文件 @
28d322c6
...
...
@@ -64,6 +64,8 @@ export class MrItemModel extends ItemModel {
this
.
mr
.
references
.
full
,
this
.
mr
.
title
,
);
this
.
setDisposableChildren
([
commentController
]);
const
gitlabService
=
this
.
repository
.
getGitLabService
();
if
(
await
gitlabService
.
canUserCommentOnMr
(
this
.
mr
))
{
...
...
@@ -83,6 +85,5 @@ export class MrItemModel extends ItemModel {
gitlabService
,
});
});
this
.
setDisposableChildren
([
commentController
]);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录