Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
一杯枸杞茶ya
csdn-workflow
提交
de7837fe
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,发现更多精彩内容 >>
提交
de7837fe
编写于
4月 21, 2021
作者:
T
Tomas Vik
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: hide commenting ranges behind feature flag
上级
c34adb9c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
16 deletion
+45
-16
src/constants.ts
src/constants.ts
+3
-0
src/review/commenting_range_provider.test.ts
src/review/commenting_range_provider.test.ts
+37
-15
src/review/commenting_range_provider.ts
src/review/commenting_range_provider.ts
+3
-1
src/utils/get_extension_configuration.ts
src/utils/get_extension_configuration.ts
+2
-0
未找到文件。
src/constants.ts
浏览文件 @
de7837fe
...
@@ -6,3 +6,6 @@ export const ADDED = 'added';
...
@@ -6,3 +6,6 @@ export const ADDED = 'added';
export
const
DELETED
=
'
deleted
'
;
export
const
DELETED
=
'
deleted
'
;
export
const
RENAMED
=
'
renamed
'
;
export
const
RENAMED
=
'
renamed
'
;
export
const
MODIFIED
=
'
modified
'
;
export
const
MODIFIED
=
'
modified
'
;
// feature flags
export
const
FF_COMMENTING_RANGES
=
'
commenting-ranges
'
;
src/review/commenting_range_provider.test.ts
浏览文件 @
de7837fe
import
*
as
vscode
from
'
vscode
'
;
import
*
as
vscode
from
'
vscode
'
;
import
{
mr
,
mrVersion
}
from
'
../test_utils/entities
'
;
import
{
mr
,
mrVersion
}
from
'
../test_utils/entities
'
;
import
{
CommentingRangeProvider
}
from
'
./commenting_range_provider
'
;
import
{
CommentingRangeProvider
}
from
'
./commenting_range_provider
'
;
import
{
toReviewUri
}
from
'
./review_uri
'
;
import
{
ReviewParams
,
toReviewUri
}
from
'
./review_uri
'
;
import
{
getExtensionConfiguration
}
from
'
../utils/get_extension_configuration
'
;
import
{
FF_COMMENTING_RANGES
}
from
'
../constants
'
;
jest
.
mock
(
'
../utils/get_extension_configuration
'
);
describe
(
'
CommentingRangeProvider
'
,
()
=>
{
describe
(
'
CommentingRangeProvider
'
,
()
=>
{
let
commentingRangeProvider
:
CommentingRangeProvider
;
let
commentingRangeProvider
:
CommentingRangeProvider
;
const
commonUriParams
:
ReviewParams
=
{
path
:
`/path`
,
mrId
:
mr
.
id
,
projectId
:
mr
.
project_id
,
commit
:
mrVersion
.
base_commit_sha
,
workspacePath
:
'
/
'
,
};
const
oldFileUrl
=
toReviewUri
({
...
commonUriParams
,
commit
:
mrVersion
.
base_commit_sha
,
});
const
newFileUri
=
toReviewUri
({
...
commonUriParams
,
commit
:
mrVersion
.
head_commit_sha
,
});
beforeEach
(()
=>
{
beforeEach
(()
=>
{
(
getExtensionConfiguration
as
jest
.
Mock
).
mockReturnValue
({
featureFlags
:
[
FF_COMMENTING_RANGES
],
});
commentingRangeProvider
=
new
CommentingRangeProvider
(
mr
,
mrVersion
);
commentingRangeProvider
=
new
CommentingRangeProvider
(
mr
,
mrVersion
);
});
});
...
@@ -19,13 +43,7 @@ describe('CommentingRangeProvider', () => {
...
@@ -19,13 +43,7 @@ describe('CommentingRangeProvider', () => {
it
(
'
returns full range (all lines in the document) for old file
'
,
()
=>
{
it
(
'
returns full range (all lines in the document) for old file
'
,
()
=>
{
const
testDocument
=
{
const
testDocument
=
{
uri
:
toReviewUri
({
uri
:
oldFileUrl
,
path
:
`/path`
,
mrId
:
mr
.
id
,
projectId
:
mr
.
project_id
,
commit
:
mrVersion
.
base_commit_sha
,
workspacePath
:
'
/
'
,
}),
lineCount
:
200
,
lineCount
:
200
,
}
as
vscode
.
TextDocument
;
}
as
vscode
.
TextDocument
;
expect
(
commentingRangeProvider
.
provideCommentingRanges
(
testDocument
)).
toEqual
([
expect
(
commentingRangeProvider
.
provideCommentingRanges
(
testDocument
)).
toEqual
([
...
@@ -35,13 +53,17 @@ describe('CommentingRangeProvider', () => {
...
@@ -35,13 +53,17 @@ describe('CommentingRangeProvider', () => {
it
(
'
returns empty array for new file
'
,
()
=>
{
it
(
'
returns empty array for new file
'
,
()
=>
{
const
testDocument
=
{
const
testDocument
=
{
uri
:
toReviewUri
({
uri
:
newFileUri
,
path
:
`/path`
,
}
as
vscode
.
TextDocument
;
mrId
:
mr
.
id
,
expect
(
commentingRangeProvider
.
provideCommentingRanges
(
testDocument
)).
toEqual
([]);
projectId
:
mr
.
project_id
,
});
commit
:
mrVersion
.
head_commit_sha
,
workspacePath
:
'
/
'
,
it
(
'
returns empty array with the feature flag off
'
,
()
=>
{
}),
(
getExtensionConfiguration
as
jest
.
Mock
).
mockReturnValue
({
featureFlags
:
undefined
,
});
const
testDocument
=
{
uri
:
oldFileUrl
,
lineCount
:
200
,
lineCount
:
200
,
}
as
vscode
.
TextDocument
;
}
as
vscode
.
TextDocument
;
expect
(
commentingRangeProvider
.
provideCommentingRanges
(
testDocument
)).
toEqual
([]);
expect
(
commentingRangeProvider
.
provideCommentingRanges
(
testDocument
)).
toEqual
([]);
...
...
src/review/commenting_range_provider.ts
浏览文件 @
de7837fe
import
*
as
vscode
from
'
vscode
'
;
import
*
as
vscode
from
'
vscode
'
;
import
{
REVIEW_URI_SCHEME
}
from
'
../constants
'
;
import
{
FF_COMMENTING_RANGES
,
REVIEW_URI_SCHEME
}
from
'
../constants
'
;
import
{
getExtensionConfiguration
}
from
'
../utils/get_extension_configuration
'
;
import
{
fromReviewUri
}
from
'
./review_uri
'
;
import
{
fromReviewUri
}
from
'
./review_uri
'
;
export
class
CommentingRangeProvider
implements
vscode
.
CommentingRangeProvider
{
export
class
CommentingRangeProvider
implements
vscode
.
CommentingRangeProvider
{
...
@@ -13,6 +14,7 @@ export class CommentingRangeProvider implements vscode.CommentingRangeProvider {
...
@@ -13,6 +14,7 @@ export class CommentingRangeProvider implements vscode.CommentingRangeProvider {
}
}
provideCommentingRanges
(
document
:
vscode
.
TextDocument
):
vscode
.
Range
[]
{
provideCommentingRanges
(
document
:
vscode
.
TextDocument
):
vscode
.
Range
[]
{
if
(
!
getExtensionConfiguration
().
featureFlags
?.
includes
(
FF_COMMENTING_RANGES
))
return
[];
const
{
uri
}
=
document
;
const
{
uri
}
=
document
;
if
(
uri
.
scheme
!==
REVIEW_URI_SCHEME
)
return
[];
if
(
uri
.
scheme
!==
REVIEW_URI_SCHEME
)
return
[];
const
params
=
fromReviewUri
(
uri
);
const
params
=
fromReviewUri
(
uri
);
...
...
src/utils/get_extension_configuration.ts
浏览文件 @
de7837fe
...
@@ -4,6 +4,7 @@ import { CONFIG_NAMESPACE } from '../constants';
...
@@ -4,6 +4,7 @@ import { CONFIG_NAMESPACE } from '../constants';
interface
ExtensionConfiguration
{
interface
ExtensionConfiguration
{
remoteName
?:
string
;
remoteName
?:
string
;
pipelineGitRemoteName
?:
string
;
pipelineGitRemoteName
?:
string
;
featureFlags
?:
string
[];
}
}
// VS Code returns a value or `null` but undefined is better for using default function arguments
// VS Code returns a value or `null` but undefined is better for using default function arguments
...
@@ -14,5 +15,6 @@ export function getExtensionConfiguration(): ExtensionConfiguration {
...
@@ -14,5 +15,6 @@ export function getExtensionConfiguration(): ExtensionConfiguration {
return
{
return
{
remoteName
:
turnNullToUndefined
(
workspaceConfig
.
remoteName
),
remoteName
:
turnNullToUndefined
(
workspaceConfig
.
remoteName
),
pipelineGitRemoteName
:
turnNullToUndefined
(
workspaceConfig
.
pipelineGitRemoteName
),
pipelineGitRemoteName
:
turnNullToUndefined
(
workspaceConfig
.
pipelineGitRemoteName
),
featureFlags
:
turnNullToUndefined
(
workspaceConfig
.
featureFlags
),
};
};
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录