chore: 🤖 add unit test

This commit is contained in:
Binbin Sun
2019-12-29 11:14:03 +08:00
parent 4b8bbcbfde
commit 146b61e70d
5 changed files with 2534 additions and 22 deletions

3
jest.config.js Normal file
View File

@@ -0,0 +1,3 @@
module.exports = {
preset: '@vue/cli-plugin-unit-jest'
}

2447
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,28 +2,16 @@
"name": "vue-tree-list", "name": "vue-tree-list",
"version": "1.4.0", "version": "1.4.0",
"description": "A vue component for tree structure. Support adding treenode/leafnode, editing node's name and dragging.", "description": "A vue component for tree structure. Support adding treenode/leafnode, editing node's name and dragging.",
"main": "dist/vue-tree-list.umd.min.js", "author": "ayou",
"scripts": { "scripts": {
"commit": "npx git-cz",
"serve": "vue-cli-service serve dev", "serve": "vue-cli-service serve dev",
"build": "vue-cli-service build --target lib src/index.js", "build": "vue-cli-service build --target lib src/index.js",
"test:unit": "vue-cli-service test:unit",
"lint": "vue-cli-service lint", "lint": "vue-cli-service lint",
"commit": "npx git-cz",
"prepublish": "npm run build" "prepublish": "npm run build"
}, },
"repository": { "main": "dist/vue-tree-list.umd.min.js",
"type": "git",
"url": "git+https://github.com/ParadeTo/vue-tree-list.git"
},
"keywords": [
"vue",
"tree"
],
"author": "ayou",
"license": "ISC",
"bugs": {
"url": "https://github.com/ParadeTo/vue-tree-list/issues"
},
"homepage": "https://github.com/ParadeTo/vue-tree-list#readme",
"dependencies": { "dependencies": {
"core-js": "^3.4.3", "core-js": "^3.4.3",
"vue": "^2.6.10" "vue": "^2.6.10"
@@ -31,7 +19,9 @@
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-babel": "^4.1.0", "@vue/cli-plugin-babel": "^4.1.0",
"@vue/cli-plugin-eslint": "^4.1.0", "@vue/cli-plugin-eslint": "^4.1.0",
"@vue/cli-plugin-unit-jest": "^4.1.1",
"@vue/cli-service": "^4.1.0", "@vue/cli-service": "^4.1.0",
"@vue/test-utils": "1.0.0-beta.29",
"babel-eslint": "^10.0.3", "babel-eslint": "^10.0.3",
"eslint": "^5.16.0", "eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0", "eslint-plugin-vue": "^5.0.0",
@@ -53,10 +43,34 @@
}, },
"parserOptions": { "parserOptions": {
"parser": "babel-eslint" "parser": "babel-eslint"
} },
"overrides": [
{
"files": [
"**/__tests__/*.{j,t}s?(x)",
"**/tests/unit/**/*.spec.{j,t}s?(x)"
],
"env": {
"jest": true
}
}
]
}, },
"browserslist": [ "browserslist": [
"> 1%", "> 1%",
"last 2 versions" "last 2 versions"
] ],
"bugs": {
"url": "https://github.com/ParadeTo/vue-tree-list/issues"
},
"homepage": "https://github.com/ParadeTo/vue-tree-list#readme",
"keywords": [
"vue",
"tree"
],
"license": "ISC",
"repository": {
"type": "git",
"url": "git+https://github.com/ParadeTo/vue-tree-list.git"
}
} }

View File

@@ -94,9 +94,6 @@
let compInOperation = null let compInOperation = null
export default { export default {
components: {
item: () => import('./VueTreeList')
},
data: function () { data: function () {
return { return {
isHover: false, isHover: false,
@@ -155,6 +152,9 @@
} }
} }
}, },
beforeCreate () {
this.$options.components.item = require('./VueTreeList').default
},
mounted () { mounted () {
const vm = this const vm = this
addHandler(window, 'keyup', function (e) { addHandler(window, 'keyup', function (e) {

View File

@@ -0,0 +1,50 @@
import { mount } from "@vue/test-utils";
import { Tree, VueTreeList } from "@/index";
describe("VueTreeList", () => {
it("renders correctly", () => {
const wrapper = mount(VueTreeList, {
propsData: {
model: new Tree([
{
name: "Node 1",
id: 1,
pid: 0,
dragDisabled: true,
addTreeNodeDisabled: true,
addLeafNodeDisabled: true,
editNodeDisabled: true,
delNodeDisabled: true,
children: [
{
name: "Node 1-2",
id: 2,
isLeaf: true,
pid: 1
}
]
},
{
name: "Node 2",
id: 3,
pid: 0,
disabled: true
},
{
name: "Node 3",
id: 4,
pid: 0
}
]),
defaultTreeNodeName: "new node",
defaultLeafNodeName: "new leaf",
defaultExpanded: false
}
});
expect(wrapper.text()).toMatch(`Node 1················
Node 1-2················
Node 2················
Node 3`);
});
});