ソースを参照

add range test

hufeng10 7 年 前
コミット
50ef29ac80
3 ファイル変更58 行追加1 行削除
  1. 1 1
      package.json
  2. 56 0
      src/packages/range/__test__/range.spec.js
  3. 1 0
      src/packages/range/range.vue

+ 1 - 1
package.json

@@ -24,7 +24,7 @@
     "build": "npm run build:prod && npm run build:prodmin && npm run build:disp",
     "build": "npm run build:prod && npm run build:prodmin && npm run build:disp",
     "eslint": "eslint src/packages/**/*.{js,vue}",
     "eslint": "eslint src/packages/**/*.{js,vue}",
     "add": "node scripts/createCptTpl.js",
     "add": "node scripts/createCptTpl.js",
-    "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text  mocha-webpack --webpack-config build/webpack.test.conf.js --require test/setup.js src/packages/*/__test__/**.spec.js",
+    "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text  mocha-webpack --webpack-config build/webpack.test.conf.js --watch --require test/setup.js src/packages/*/__test__/**.spec.js",
     "coveralls": "cat ./coverage/lcov.info | coveralls",
     "coveralls": "cat ./coverage/lcov.info | coveralls",
     "test:watch": "npm run test --watch"
     "test:watch": "npm run test --watch"
   },
   },

+ 56 - 0
src/packages/range/__test__/range.spec.js

@@ -0,0 +1,56 @@
+import { shallowMount } from '@vue/test-utils'
+import Range, {toRGBA} from '../range.vue';
+import Vue from 'vue';
+
+describe('Range.vue', () => {
+
+    const wrapper = shallowMount(Range);
+    
+    it('设置区间值', () => {
+        const {vm} = wrapper;
+        let rangeVal = [0, 100];
+        wrapper.setProps({
+            range: rangeVal,
+            rangeValues: rangeVal
+        });
+        const _range = vm.range;
+        expect(_range.length === 2).toBe(true);
+        expect(_range[0]).toBe(rangeVal[0]);
+        expect(_range[1]).toBe(rangeVal[1]);
+
+        const newRange = [12, 98];
+        vm.$emit('rangeValues', newRange);
+        expect(wrapper.emitted('rangeValues')).toBeTruthy();
+        expect(wrapper.emitted().rangeValues[0][0]).toEqual(newRange);
+    });
+
+    it('显示标签文字', () => {
+        const rangeVal = [0, 100];
+        wrapper.setProps({
+            range: rangeVal,
+            showRangeTxt: true
+        });
+        const leftEl = wrapper.find('.nut-range-left-text');
+        const rightEl = wrapper.find('.nut-range-right-text');
+
+        expect(leftEl.exists()).toBe(true);
+        expect(rightEl.exists()).toBe(true);
+        expect(+leftEl.text()).toBe(rangeVal[0]);
+        expect(+rightEl.text()).toBe(rangeVal[1]);
+    });
+
+    it('修改主题风格', () => {
+        const rangeVal = [0, 100];
+        const themeColor = "#31ccec";
+        wrapper.setProps({
+            range: rangeVal,
+            color: themeColor
+        });
+
+        const {mainColor, boxColor, subColor} = wrapper.vm;
+
+        expect(mainColor).toBe(toRGBA(themeColor));
+        expect(boxColor).toBe(toRGBA(themeColor, 0.3));
+        expect(subColor).toBe(toRGBA(themeColor, 0.5));
+    });
+});

+ 1 - 0
src/packages/range/range.vue

@@ -48,6 +48,7 @@ function toRGBA(c, opacity) {
 	return toRGBA('#ff0000', opacity);
 	return toRGBA('#ff0000', opacity);
 }
 }
 
 
+export {toRGBA};
 export default {
 export default {
   name: "nut-range",
   name: "nut-range",
   components: {
   components: {