Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
Coder
code-server
提交
3243bb35
C
code-server
项目概览
镜像
/
Coder
/
code-server
2022-09-21 03:15:05同步失败
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
code-server
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
3243bb35
编写于
5月 06, 2021
作者:
J
Joe Previte
提交者:
GitHub
5月 06, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3290 from cdr/jsjoeio/update-constants-test
feat(testing): add test for src/node/constants.ts
上级
d27b12ba
cb5ab48d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
68 addition
and
32 deletion
+68
-32
package.json
package.json
+1
-1
test/unit/constants.test.ts
test/unit/constants.test.ts
+67
-31
未找到文件。
package.json
浏览文件 @
3243bb35
...
...
@@ -142,7 +142,7 @@
"clover"
],
"coveragePathIgnorePatterns"
:
[
"out"
"
/
out"
],
"coverageThreshold"
:
{
"global"
:
{
...
...
test/unit/constants.test.ts
浏览文件 @
3243bb35
import
*
as
fs
from
"
fs
"
import
{
commit
,
getPackageJson
,
version
}
from
"
../../src/node/constants
"
import
{
tmpdir
}
from
"
../../test/utils/constants
"
import
{
loggerModule
}
from
"
../utils/helpers
"
...
...
@@ -7,48 +6,85 @@ import { loggerModule } from "../utils/helpers"
jest
.
mock
(
"
@coder/logger
"
,
()
=>
require
(
"
../utils/helpers
"
).
loggerModule
)
describe
(
"
constants
"
,
()
=>
{
describe
(
"
getPackageJson
"
,
()
=>
{
afterEach
(()
=>
{
jest
.
clearAllMocks
()
beforeAll
(()
=>
{
jest
.
clearAllMocks
()
jest
.
resetModules
()
})
describe
(
"
with package.json defined
"
,
()
=>
{
const
{
getPackageJson
}
=
require
(
"
../../src/node/constants
"
)
let
mockPackageJson
=
{
name
:
"
mock-code-server
"
,
description
:
"
Run VS Code on a remote server.
"
,
repository
:
"
https://github.com/cdr/code-server
"
,
version
:
"
1.0.0
"
,
commit
:
"
f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b
"
,
}
let
version
=
""
let
commit
=
""
beforeEach
(()
=>
{
jest
.
mock
(
"
../../package.json
"
,
()
=>
mockPackageJson
,
{
virtual
:
true
})
commit
=
require
(
"
../../src/node/constants
"
).
commit
version
=
require
(
"
../../src/node/constants
"
).
version
})
afterAll
(()
=>
{
jest
.
restoreAllMocks
()
jest
.
clearAllMocks
()
jest
.
resetModules
()
})
it
(
"
should log a warning if package.json not found
"
,
()
=>
{
const
expectedErrorMessage
=
"
Cannot find module './package.json' from 'src/node/constants.ts'
"
getPackageJson
(
"
./package.json
"
)
it
(
"
should provide the commit
"
,
()
=>
{
expect
(
commit
).
toBe
(
"
f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b
"
)
})
expect
(
loggerModule
.
logger
.
warn
).
toHaveBeenCalled
()
expect
(
loggerModule
.
logger
.
warn
).
toHaveBeenCalledWith
(
expectedErrorMessage
)
it
(
"
should return the package.json version
"
,
()
=>
{
expect
(
version
).
toBe
(
mockPackageJson
.
version
)
})
it
(
"
should find the package.json
"
,
()
=>
{
// the function calls require from src/node/constants
// so to get the root package.json we need to use ../../
const
packageJson
=
getPackageJson
(
"
../../package.json
"
)
expect
(
Object
.
keys
(
packageJson
).
length
).
toBeGreaterThan
(
0
)
expect
(
packageJson
.
name
).
toBe
(
"
code-server
"
)
expect
(
packageJson
.
description
).
toBe
(
"
Run VS Code on a remote server.
"
)
expect
(
packageJson
.
repository
).
toBe
(
"
https://github.com/cdr/code-server
"
)
describe
(
"
getPackageJson
"
,
()
=>
{
it
(
"
should log a warning if package.json not found
"
,
()
=>
{
const
expectedErrorMessage
=
"
Cannot find module './package.json' from 'src/node/constants.ts'
"
getPackageJson
(
"
./package.json
"
)
expect
(
loggerModule
.
logger
.
warn
).
toHaveBeenCalled
()
expect
(
loggerModule
.
logger
.
warn
).
toHaveBeenCalledWith
(
expectedErrorMessage
)
})
it
(
"
should find the package.json
"
,
()
=>
{
// the function calls require from src/node/constants
// so to get the root package.json we need to use ../../
const
packageJson
=
getPackageJson
(
"
../../package.json
"
)
expect
(
Object
.
keys
(
packageJson
).
length
).
toBeGreaterThan
(
0
)
expect
(
packageJson
.
name
).
toBe
(
"
mock-code-server
"
)
expect
(
packageJson
.
description
).
toBe
(
"
Run VS Code on a remote server.
"
)
expect
(
packageJson
.
repository
).
toBe
(
"
https://github.com/cdr/code-server
"
)
})
})
})
describe
(
"
version
"
,
()
=>
{
it
(
"
should return the package.json version
"
,
()
=>
{
// Source: https://gist.github.com/jhorsman/62eeea161a13b80e39f5249281e17c39#gistcomment-2896416
const
validSemVar
=
new
RegExp
(
"
^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)
"
)
const
isValidSemVar
=
validSemVar
.
test
(
version
)
expect
(
version
).
not
.
toBe
(
null
)
expect
(
isValidSemVar
).
toBe
(
true
)
describe
(
"
with incomplete package.json
"
,
()
=>
{
let
mockPackageJson
=
{
name
:
"
mock-code-server
"
,
}
let
version
=
""
let
commit
=
""
beforeEach
(()
=>
{
jest
.
mock
(
"
../../package.json
"
,
()
=>
mockPackageJson
,
{
virtual
:
true
})
version
=
require
(
"
../../src/node/constants
"
).
version
commit
=
require
(
"
../../src/node/constants
"
).
commit
})
})
describe
(
"
commit
"
,
()
=>
{
it
(
"
should return 'development' if commit is undefined
"
,
()
=>
{
// In development, the commit is not stored in our package.json
// But when we build code-server and release it, it is
afterEach
(()
=>
{
jest
.
clearAllMocks
()
jest
.
resetModules
()
})
it
(
"
version should return 'development'
"
,
()
=>
{
expect
(
version
).
toBe
(
"
development
"
)
})
it
(
"
commit should return 'development'
"
,
()
=>
{
expect
(
commit
).
toBe
(
"
development
"
)
})
})
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录