Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
7a0f4289
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
6007
Star
91
Fork
164
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
7a0f4289
编写于
3月 15, 2024
作者:
DCloud_iOS_WZT
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev' of
https://gitcode.net/dcloud/hello-uni-app-x
into dev
上级
867b164f
6abe5043
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
227 addition
and
43 deletion
+227
-43
jest-setup.js
jest-setup.js
+146
-23
pages.json
pages.json
+6
-6
pages/component/scroll-view/scroll-view-custom-refresher-props.uvue
...onent/scroll-view/scroll-view-custom-refresher-props.uvue
+1
-1
pages/template/calendar/calendar.uvue
pages/template/calendar/calendar.uvue
+13
-13
pages/template/custom-refresher/custom-refresher.uvue
pages/template/custom-refresher/custom-refresher.uvue
+1
-0
pages/toSaveSnapshot-toSaveImageSnapshot-template.test.js
pages/toSaveSnapshot-toSaveImageSnapshot-template.test.js
+60
-0
未找到文件。
jest-setup.js
浏览文件 @
7a0f4289
// 自动化测试
const
path
=
require
(
'
path
'
);
const
{
configureToMatchImageSnapshot
}
=
require
(
'
jest-image-snapshot
'
);
const
hbuilderx_version
=
process
.
env
.
HX_Version
const
uniTestPlatformInfo
=
process
.
env
.
uniTestPlatformInfo
?
process
.
env
.
uniTestPlatformInfo
.
replace
(
/
\s
/g
,
'
_
'
)
:
''
const
folderName
=
`__image_snapshots__/
${
hbuilderx_version
}
/__
${
uniTestPlatformInfo
}
__`
let
environment
=
'
official
'
if
(
hbuilderx_version
.
includes
(
'
dev
'
)){
environment
=
'
dev
'
}
else
if
(
hbuilderx_version
.
includes
(
'
alpha
'
)){
environment
=
'
alpha
'
}
const
baseFolderName
=
`__image_snapshots__/base/
${
environment
}
/__
${
uniTestPlatformInfo
}
__`
const
path
=
require
(
"
path
"
);
const
fs
=
require
(
"
fs
"
);
const
{
configureToMatchImageSnapshot
}
=
require
(
"
jest-image-snapshot
"
);
const
hbuilderx_version
=
process
.
env
.
HX_Version
;
const
uniTestPlatformInfo
=
process
.
env
.
uniTestPlatformInfo
?
process
.
env
.
uniTestPlatformInfo
.
replace
(
/
\s
/g
,
"
_
"
)
:
""
;
const
folderName
=
`__image_snapshots__/
${
hbuilderx_version
}
/__
${
uniTestPlatformInfo
}
__`
;
let
environment
=
"
official
"
;
if
(
hbuilderx_version
.
includes
(
"
dev
"
))
{
environment
=
"
dev
"
;
}
else
if
(
hbuilderx_version
.
includes
(
"
alpha
"
))
{
environment
=
"
alpha
"
;
}
const
baseFolderName
=
`__image_snapshots__/base/
${
environment
}
/__
${
uniTestPlatformInfo
}
__`
;
expect
.
extend
({
toMatchImageSnapshot
:
configureToMatchImageSnapshot
({
customSnapshotIdentifier
(
args
)
{
return
args
.
currentTestName
.
replace
(
/
\/
/g
,
'
-
'
).
replace
(
'
'
,
'
-
'
);
return
args
.
currentTestName
.
replace
(
/
\/
/g
,
"
-
"
).
replace
(
"
"
,
"
-
"
);
},
customSnapshotsDir
:
path
.
join
(
__dirname
,
baseFolderName
),
customDiffDir
:
path
.
join
(
__dirname
,
`
${
folderName
}
/`
,
'
diff
'
),
customDiffDir
:
path
.
join
(
__dirname
,
`
${
folderName
}
/`
,
"
diff
"
),
}),
toSaveSnapshot
,
toSaveImageSnapshot
,
});
function
toSaveSnapshot
(
received
,
{
customSnapshotsDir
,
fileName
}
=
{})
{
const
{
testPath
,
currentTestName
}
=
this
;
const
SNAPSHOTS_DIR
=
"
__file_snapshots__
"
;
const
snapshotDir
=
process
.
env
.
saveSnapshotDir
||
createSnapshotDir
({
customSnapshotsDir
,
testPath
,
SNAPSHOTS_DIR
,
});
const
_fileName
=
createFileName
({
fileName
,
testPath
,
currentTestName
,
});
const
filePath
=
path
.
join
(
snapshotDir
,
_fileName
);
let
message
=
()
=>
`
${
currentTestName
}
toSaveSnapshot success`
;
let
pass
=
true
;
try
{
checkSnapshotDir
(
snapshotDir
);
fs
.
writeFileSync
(
filePath
,
received
);
}
catch
(
e
)
{
console
.
log
(
"
toSaveSnapshot fail
"
,
e
);
message
=
()
=>
e
.
message
;
pass
=
false
;
}
return
{
message
,
pass
,
};
}
function
toSaveImageSnapshot
(
received
,
{
customSnapshotsDir
,
customSnapshotIdentifier
}
=
{}
)
{
const
{
testPath
,
currentTestName
}
=
this
;
const
SNAPSHOTS_DIR
=
"
__image_snapshots__
"
;
const
snapshotDir
=
process
.
env
.
saveImageSnapshotDir
||
createSnapshotDir
({
customSnapshotsDir
,
testPath
,
SNAPSHOTS_DIR
,
});
const
_fileName
=
createFileName
({
fileName
:
customSnapshotIdentifier
?
customSnapshotIdentifier
()
:
""
,
testPath
,
currentTestName
,
fileType
:
"
png
"
,
});
const
filePath
=
path
.
join
(
snapshotDir
,
_fileName
);
let
message
=
()
=>
`
${
currentTestName
}
toSaveImageSnapshot success`
;
let
pass
=
true
;
try
{
checkSnapshotDir
(
snapshotDir
);
fs
.
writeFileSync
(
filePath
,
Buffer
.
from
(
received
,
"
base64
"
));
}
catch
(
e
)
{
console
.
log
(
"
toSaveImageSnapshot fail
"
,
e
);
message
=
()
=>
e
.
message
;
pass
=
false
;
}
return
{
message
,
pass
,
};
}
function
createSnapshotDir
({
customSnapshotsDir
,
testPath
,
SNAPSHOTS_DIR
})
{
return
customSnapshotsDir
||
path
.
join
(
path
.
dirname
(
testPath
),
SNAPSHOTS_DIR
);
}
function
createFileName
({
fileName
,
testPath
,
currentTestName
,
fileType
})
{
return
(
fileName
||
createSnapshotIdentifier
({
testPath
,
currentTestName
,
fileType
,
})
);
}
function
createSnapshotIdentifier
({
testPath
,
currentTestName
,
fileType
=
"
txt
"
,
})
{
const
snapshotIdentifier
=
kebabCase
(
`
${
path
.
basename
(
testPath
)}
-
${
currentTestName
}
`
);
const
counter
=
timesCalled
.
get
(
`
${
snapshotIdentifier
}
-
${
fileType
}
`
)
||
1
;
timesCalled
.
set
(
`
${
snapshotIdentifier
}
-
${
fileType
}
`
,
counter
+
1
);
return
`
${
snapshotIdentifier
}
-
${
counter
}
.
${
fileType
}
`
;
}
function
kebabCase
(
str
)
{
return
str
.
replaceAll
(
/
([
a-z
])([
A-Z
])
/g
,
"
$1-$2
"
)
.
replaceAll
(
/
\s
+/g
,
"
-
"
)
.
replaceAll
(
/_+/g
,
"
-
"
)
.
replaceAll
(
/
\/
+/g
,
"
-
"
)
.
replaceAll
(
/
\.
+/g
,
"
-
"
)
.
toLowerCase
();
}
function
checkSnapshotDir
(
snapshotDir
)
{
if
(
!
fs
.
existsSync
(
snapshotDir
))
{
fs
.
mkdirSync
(
snapshotDir
,
{
recursive
:
true
,
});
}
}
const
timesCalled
=
new
Map
();
pages.json
浏览文件 @
7a0f4289
...
...
@@ -652,18 +652,18 @@
"navigationBarTitleText"
:
"get-window-info"
}
},
//
#ifdef
APP-ANDROID
{
"path"
:
"pages/API/
facial-recognition-verify/facial-recognition-verify
"
,
"path"
:
"pages/API/
element-draw/element-draw
"
,
"style"
:
{
"navigationBarTitleText"
:
""
,
"navigationBarTitleText"
:
"
getDrawableContext
"
,
"enablePullDownRefresh"
:
false
}
},
//
#ifdef
APP-ANDROID
{
"path"
:
"pages/API/
element-draw/element-draw
"
,
"path"
:
"pages/API/
facial-recognition-verify/facial-recognition-verify
"
,
"style"
:
{
"navigationBarTitleText"
:
"
getDrawableContext
"
,
"navigationBarTitleText"
:
""
,
"enablePullDownRefresh"
:
false
}
},
...
...
@@ -1153,13 +1153,13 @@
}
},
//
#endif
//
#ifdef
APP-ANDROID
{
"path"
:
"pages/template/calendar/calendar"
,
"style"
:
{
"navigationBarTitleText"
:
"日历"
}
},
//
#ifdef
APP-ANDROID
{
"path"
:
"pages/template/schema/schema"
,
"style"
:
{
...
...
pages/component/scroll-view/scroll-view-custom-refresher-props.uvue
浏览文件 @
7a0f4289
<template>
<scroll-view style="flex:1;" :refresher-enabled="true" :refresher-triggered="refresherTriggered"
refresher-default-style="none" @refresherpulling="onRefresherpulling" @refresherrefresh="onRefresherrefresh" @refresherrestore="onRefreshrestore">
refresher-default-style="none" @refresherpulling="onRefresherpulling" @refresherrefresh="onRefresherrefresh" @refresherrestore="onRefreshrestore"
refresher-max-drag-distance="200px"
>
<view style="height: 25px;"></view>
<view v-for="i in 20" class="content-item">
<text class="text">item-{{i}}</text>
...
...
pages/template/calendar/calendar.uvue
浏览文件 @
7a0f4289
...
...
@@ -87,7 +87,7 @@ export default {
// 点击具体的日历格子
clickGrid (x: number, y: number) {
// 小格子数组
const gridArray = this.$coords
const gridArray = this.$
data.$
coords
// 遍历小格子数组,找到最接近点击坐标的小格子
for (let i = 0; i < gridArray.length; i++) {
...
...
@@ -103,7 +103,7 @@ export default {
if (is_select) {
const data = grid.data
this.timeData = this.$calendar.getDateInfo(data.fullDate)
this.timeData = this.$
data.$
calendar.getDateInfo(data.fullDate)
this.drawWeek(this.weeks, grid.data.fullDate)
}
}
...
...
@@ -111,10 +111,10 @@ export default {
// 切换上个月
preDate () {
const fulldate = this.timeData.fullDate
const time = this.$calendar.getDate(fulldate, -1, 'month')
this.timeData = this.$calendar.getDateInfo(time.fullDate)
const time = this.$
data.$
calendar.getDate(fulldate, -1, 'month')
this.timeData = this.$
data.$
calendar.getDateInfo(time.fullDate)
this.weeks = this.$calendar.getWeeks(time.fullDate)
this.weeks = this.$
data.$
calendar.getWeeks(time.fullDate)
// 重新绘制日历
this.drawWeek(this.weeks, time.fullDate)
...
...
@@ -123,20 +123,20 @@ export default {
// 切换下个他
nextDate () {
const fulldate = this.timeData.fullDate
const time = this.$calendar.getDate(fulldate, 1, 'month')
this.timeData = this.$calendar.getDateInfo(time.fullDate)
const time = this.$
data.$
calendar.getDate(fulldate, 1, 'month')
this.timeData = this.$
data.$
calendar.getDateInfo(time.fullDate)
this.weeks = this.$calendar.getWeeks(time.fullDate)
this.weeks = this.$
data.$
calendar.getWeeks(time.fullDate)
// 重新绘制日历
this.drawWeek(this.weeks, time.fullDate)
},
// 回到今天
gotoToday () {
const time = this.$calendar.getDate()
this.timeData = this.$calendar.getDateInfo(time.fullDate)
const time = this.$
data.$
calendar.getDate()
this.timeData = this.$
data.$
calendar.getDateInfo(time.fullDate)
this.weeks = this.$calendar.getWeeks(time.fullDate)
this.weeks = this.$
data.$
calendar.getWeeks(time.fullDate)
// 重新绘制日历
this.drawWeek(this.weeks, time.fullDate)
...
...
@@ -183,7 +183,7 @@ export default {
const one_height = height / week_len
if (time !== '') {
this.$coords = []
this.$
data.$
coords = []
ctx.reset()
}
...
...
@@ -232,7 +232,7 @@ export default {
height: day_height,
data: day_item
}
this.$coords.push(coords)
this.$
data.$
coords.push(coords)
// }
}
...
...
pages/template/custom-refresher/custom-refresher.uvue
浏览文件 @
7a0f4289
...
...
@@ -5,6 +5,7 @@
@refresherrefresh="onRefresherrefresh"
@refresherrestore="onRefreshrestore"
:refresher-threshold="refresherThreshold"
refresher-max-drag-distance="200px"
>
<view v-for="i in 20" class="content-item">
<text class="text">item-{{i}}</text>
...
...
pages/toSaveSnapshot-toSaveImageSnapshot-template.test.js
0 → 100644
浏览文件 @
7a0f4289
describe
(
'
toSaveSnapshot & toSaveImageSnapshot template
'
,
()
=>
{
beforeAll
(
async
()
=>
{
let
page
=
await
program
.
reLaunch
(
'
/pages/tabBar/component
'
);
await
page
.
waitFor
(
1000
);
})
it
(
'
test toSaveSnapshot 1
'
,
async
()
=>
{
const
text1
=
'
test-toSaveSnapshot-1-1-
'
+
Date
.
now
()
expect
(
text1
).
toSaveSnapshot
()
const
text2
=
'
test-toSaveSnapshot-1-2-
'
+
Date
.
now
()
expect
(
text2
).
toSaveSnapshot
()
})
it
(
'
test toSaveSnapshot 2
'
,
async
()
=>
{
const
text1
=
'
test-toSaveSnapshot-2-1-
'
+
Date
.
now
()
expect
(
text1
).
toSaveSnapshot
({
customSnapshotsDir
:
`./customDir/__file_snapshots__`
,
fileName
:
'
test-toSaveSnapshot-2-1.txt
'
})
const
text2
=
'
test-toSaveSnapshot-2-2-
'
+
Date
.
now
()
expect
(
text2
).
toSaveSnapshot
({
customSnapshotsDir
:
'
./customDir/__file_snapshots__
'
})
const
text3
=
'
test-toSaveSnapshot-2-3-
'
+
Date
.
now
()
expect
(
text3
).
toSaveSnapshot
({
fileName
:
'
test-toSaveSnapshot-2-3.json
'
})
})
it
(
'
test toSaveImageSnapshot 1
'
,
async
()
=>
{
const
img1
=
await
program
.
screenshot
();
expect
(
img1
).
toSaveImageSnapshot
()
const
img2
=
await
program
.
screenshot
();
expect
(
img2
).
toSaveImageSnapshot
()
})
it
(
'
test toSaveImageSnapshot 2
'
,
async
()
=>
{
const
img1
=
await
program
.
screenshot
();
expect
(
img1
).
toSaveImageSnapshot
({
customSnapshotsDir
:
'
./customDir/__image_snapshots__
'
,
customSnapshotIdentifier
()
{
return
'
test-toSaveImageSnapshot-2-1.png
'
;
},
})
const
img2
=
await
program
.
screenshot
();
expect
(
img2
).
toSaveImageSnapshot
({
customSnapshotsDir
:
'
./customDir/__image_snapshots__
'
,
})
const
img3
=
await
program
.
screenshot
();
expect
(
img3
).
toSaveImageSnapshot
({
customSnapshotIdentifier
()
{
return
'
test-toSaveImageSnapshot-2-3.png
'
;
},
})
})
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录