diff --git a/example/app.json b/example/app.json
index 0d1aa51a..8c8c1e8c 100644
--- a/example/app.json
+++ b/example/app.json
@@ -80,6 +80,7 @@
"van-col": "./dist/col/index",
"van-col-demo": "./dist/col/demo/index",
"van-count-down": "./dist/count-down/index",
+ "van-count-down-demo": "./dist/count-down/demo/index",
"van-dialog": "./dist/dialog/index",
"van-dialog-demo": "./dist/dialog/demo/index",
"van-divider": "./dist/divider/index",
diff --git a/example/pages/count-down/index.js b/example/pages/count-down/index.js
index c992a982..cc11dfda 100644
--- a/example/pages/count-down/index.js
+++ b/example/pages/count-down/index.js
@@ -1,34 +1,3 @@
import Page from '../../common/page';
-import Toast from '../../dist/toast/toast';
-Page({
- data: {
- time: 30 * 60 * 60 * 1000,
- timeData: {}
- },
-
- onChange(e) {
- this.setData({
- timeData: e.detail
- });
- },
-
- start() {
- const countDown = this.selectComponent('.control-count-down');
- countDown.start();
- },
-
- pause() {
- const countDown = this.selectComponent('.control-count-down');
- countDown.pause();
- },
-
- reset() {
- const countDown = this.selectComponent('.control-count-down');
- countDown.reset();
- },
-
- finished() {
- Toast('倒计时结束');
- }
-});
+Page();
diff --git a/example/pages/count-down/index.wxml b/example/pages/count-down/index.wxml
index accf9e9d..d5fa784d 100644
--- a/example/pages/count-down/index.wxml
+++ b/example/pages/count-down/index.wxml
@@ -1,49 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ timeData.hours }}
- {{ timeData.minutes }}
- {{ timeData.seconds }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/packages/count-down/demo/index.json b/packages/count-down/demo/index.json
new file mode 100644
index 00000000..63cb202c
--- /dev/null
+++ b/packages/count-down/demo/index.json
@@ -0,0 +1,10 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-grid": "../../grid/index",
+ "van-toast": "../../toast/index",
+ "van-grid-item": "../../grid-item/index",
+ "van-count-down": "../../count-down/index",
+ "demo-block": "../../../example/components/demo-block/index"
+ }
+}
diff --git a/example/pages/count-down/index.wxss b/packages/count-down/demo/index.less
similarity index 100%
rename from example/pages/count-down/index.wxss
rename to packages/count-down/demo/index.less
diff --git a/packages/count-down/demo/index.ts b/packages/count-down/demo/index.ts
new file mode 100644
index 00000000..649d15a1
--- /dev/null
+++ b/packages/count-down/demo/index.ts
@@ -0,0 +1,39 @@
+import { VantComponent } from '../../common/component';
+import Toast from '../../toast/toast';
+
+VantComponent({
+ data: {
+ time: 30 * 60 * 60 * 1000,
+ timeData: {},
+ },
+
+ methods: {
+ onChange(e) {
+ this.setData({
+ timeData: e.detail,
+ });
+ },
+
+ start() {
+ const countDown = this.selectComponent('.control-count-down');
+ countDown.start();
+ },
+
+ pause() {
+ const countDown = this.selectComponent('.control-count-down');
+ countDown.pause();
+ },
+
+ reset() {
+ const countDown = this.selectComponent('.control-count-down');
+ countDown.reset();
+ },
+
+ finished() {
+ Toast({
+ context: this,
+ message: '倒计时结束',
+ });
+ },
+ },
+});
diff --git a/packages/count-down/demo/index.wxml b/packages/count-down/demo/index.wxml
new file mode 100644
index 00000000..d19209d0
--- /dev/null
+++ b/packages/count-down/demo/index.wxml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ timeData.hours }}
+ {{ timeData.minutes }}
+ {{ timeData.seconds }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/count-down/test/__snapshots__/demo.spec.ts.snap b/packages/count-down/test/__snapshots__/demo.spec.ts.snap
new file mode 100644
index 00000000..e70ddaf5
--- /dev/null
+++ b/packages/count-down/test/__snapshots__/demo.spec.ts.snap
@@ -0,0 +1,228 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`should render demo and match snapshot 1`] = `
+
+
+
+
+ 基础用法
+
+
+
+ 30:00:00
+
+
+
+
+
+
+
+ 自定义格式
+
+
+
+ 01 天 06 时 00 分 00 秒
+
+
+
+
+
+
+
+ 毫秒级渲染
+
+
+
+ 30:00:00:000
+
+
+
+
+
+
+
+ 自定义样式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 手动控制
+
+
+
+ 03:000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 开始
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 暂停
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/packages/count-down/test/demo.spec.ts b/packages/count-down/test/demo.spec.ts
new file mode 100644
index 00000000..4c3798cb
--- /dev/null
+++ b/packages/count-down/test/demo.spec.ts
@@ -0,0 +1,11 @@
+import path from 'path';
+import simulate from 'miniprogram-simulate';
+
+test('should render demo and match snapshot', () => {
+ const id = simulate.load(path.resolve(__dirname, '../demo/index'), {
+ rootPath: path.resolve(__dirname, '../../'),
+ });
+ const comp = simulate.render(id);
+ comp.attach(document.createElement('parent-wrapper'));
+ expect(comp.toJSON()).toMatchSnapshot();
+});