From d20572bdabb89c8f24b08914fd26070b51a1811b Mon Sep 17 00:00:00 2001 From: Wei Zhu Date: Tue, 22 Nov 2016 13:43:53 +0800 Subject: [PATCH] test: demo snapshot testing (#3916) * Run snapshot testing against all demos * Split demo tests * ignore coverage folder * Upgrade antd-demo-jest * enable cache * intergate with coveralls.io * Add node test * Set worker to 2 https://github.com/facebook/jest/issues/1742 * config coverage * Set default supportServerRender to true --- .babelrc | 5 ++- .gitignore | 1 + .jest.node.json | 15 ++++++++ .travis.yml | 3 ++ components/table/demo/grouping-columns.md | 2 +- components/transfer/demo/basic.md | 4 +-- components/upload/index.tsx | 1 + package.json | 35 +++++++++++++------ tests/affix/demo.test.js | 3 ++ tests/alert/demo.test.js | 3 ++ tests/anchor/demo.test.js | 3 ++ tests/auto-complete/demo.test.js | 3 ++ tests/back-top/demo.test.js | 3 ++ tests/badge/demo.test.js | 3 ++ tests/breadcrumb/demo.test.js | 3 ++ .../__snapshots__/index.test.js.snap} | 0 tests/button/demo.test.js | 3 ++ .../{button.test.js => button/index.test.js} | 2 +- tests/calendar/demo.test.js | 3 ++ tests/card/demo.test.js | 3 ++ tests/carousel/demo.test.js | 12 +++++++ tests/checkbox/demo.test.js | 3 ++ tests/collapse/demo.test.js | 3 ++ tests/date-picker/demo.test.js | 3 ++ tests/dropdown/demo.test.js | 3 ++ tests/form/demo.test.js | 3 ++ tests/grid/demo.test.js | 3 ++ tests/{icon.test.js => icon/index.test.js} | 2 +- tests/input-number/demo.test.js | 3 ++ tests/input/demo.test.js | 3 ++ .../{layout.test.js => layout/index.test.js} | 2 +- tests/locale-provider/demo.test.js | 3 ++ tests/mention/demo.test.js | 3 ++ tests/menu/demo.test.js | 3 ++ tests/message/demo.test.js | 3 ++ tests/modal/demo.test.js | 3 ++ tests/notification/demo.test.js | 3 ++ tests/pagination/demo.test.js | 3 ++ tests/popconfirm/demo.test.js | 3 ++ tests/popover/demo.test.js | 3 ++ .../index.test.js} | 2 +- tests/progress/demo.test.js | 3 ++ tests/radio/demo.test.js | 3 ++ tests/rate/demo.test.js | 3 ++ tests/select/demo.test.js | 3 ++ tests/shared/demoTest.js | 16 +++++++++ tests/slider/demo.test.js | 3 ++ tests/spin/demo.test.js | 3 ++ tests/steps/demo.test.js | 3 ++ tests/switch/demo.test.js | 3 ++ tests/table/demo.test.js | 3 ++ tests/tabs/demo.test.js | 3 ++ tests/tag/demo.test.js | 3 ++ tests/time-picker/demo.test.js | 3 ++ tests/timeline/demo.test.js | 3 ++ tests/tooltip/demo.test.js | 3 ++ tests/transfer/demo.test.js | 3 ++ tests/tree-select/demo.test.js | 3 ++ tests/tree/demo.test.js | 3 ++ tests/upload/demo.test.js | 3 ++ 60 files changed, 219 insertions(+), 18 deletions(-) create mode 100644 .jest.node.json create mode 100644 tests/affix/demo.test.js create mode 100644 tests/alert/demo.test.js create mode 100644 tests/anchor/demo.test.js create mode 100644 tests/auto-complete/demo.test.js create mode 100644 tests/back-top/demo.test.js create mode 100644 tests/badge/demo.test.js create mode 100644 tests/breadcrumb/demo.test.js rename tests/{__snapshots__/button.test.js.snap => button/__snapshots__/index.test.js.snap} (100%) create mode 100644 tests/button/demo.test.js rename tests/{button.test.js => button/index.test.js} (90%) create mode 100644 tests/calendar/demo.test.js create mode 100644 tests/card/demo.test.js create mode 100644 tests/carousel/demo.test.js create mode 100644 tests/checkbox/demo.test.js create mode 100644 tests/collapse/demo.test.js create mode 100644 tests/date-picker/demo.test.js create mode 100644 tests/dropdown/demo.test.js create mode 100644 tests/form/demo.test.js create mode 100644 tests/grid/demo.test.js rename tests/{icon.test.js => icon/index.test.js} (93%) create mode 100644 tests/input-number/demo.test.js create mode 100644 tests/input/demo.test.js rename tests/{layout.test.js => layout/index.test.js} (90%) create mode 100644 tests/locale-provider/demo.test.js create mode 100644 tests/mention/demo.test.js create mode 100644 tests/menu/demo.test.js create mode 100644 tests/message/demo.test.js create mode 100644 tests/modal/demo.test.js create mode 100644 tests/notification/demo.test.js create mode 100644 tests/pagination/demo.test.js create mode 100644 tests/popconfirm/demo.test.js create mode 100644 tests/popover/demo.test.js rename tests/{popover.test.js => popover/index.test.js} (94%) create mode 100644 tests/progress/demo.test.js create mode 100644 tests/radio/demo.test.js create mode 100644 tests/rate/demo.test.js create mode 100644 tests/select/demo.test.js create mode 100644 tests/shared/demoTest.js create mode 100644 tests/slider/demo.test.js create mode 100644 tests/spin/demo.test.js create mode 100644 tests/steps/demo.test.js create mode 100644 tests/switch/demo.test.js create mode 100644 tests/table/demo.test.js create mode 100644 tests/tabs/demo.test.js create mode 100644 tests/tag/demo.test.js create mode 100644 tests/time-picker/demo.test.js create mode 100644 tests/timeline/demo.test.js create mode 100644 tests/tooltip/demo.test.js create mode 100644 tests/transfer/demo.test.js create mode 100644 tests/tree-select/demo.test.js create mode 100644 tests/tree/demo.test.js create mode 100644 tests/upload/demo.test.js diff --git a/.babelrc b/.babelrc index 4687bc4f44..36a371c9f7 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,6 @@ { - "presets": ["es2015", "react", "stage-0"] + "presets": ["es2015", "react", "stage-0"], + "plugins": [ + "add-module-exports" + ] } diff --git a/.gitignore b/.gitignore index 940aeae84e..fcc3d98669 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ config/base.yaml components/**/*.js components/**/*.jsx /.vscode/ +/coverage diff --git a/.jest.node.json b/.jest.node.json new file mode 100644 index 0000000000..b82fdee94c --- /dev/null +++ b/.jest.node.json @@ -0,0 +1,15 @@ +{ + "moduleFileExtensions": [ + "ts", + "tsx", + "js", + "md" + ], + "transform": { + "\\.tsx?$": "node_modules/typescript-babel-jest", + "tests/.*\\.js$": "node_modules/babel-jest", + "\\.md$": "node_modules/antd-demo-jest" + }, + "testRegex": "/tests/node/.*\\.test\\.js$", + "testEnvironment": "node" +} diff --git a/.travis.yml b/.travis.yml index f9b1f3ad6f..293cbbca2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,3 +4,6 @@ language: node_js node_js: - "6" + +after_script: + - cat ./coverage/lcov.info | node_modules/coveralls/bin/coveralls.js diff --git a/components/table/demo/grouping-columns.md b/components/table/demo/grouping-columns.md index 27849c94ca..e0e033f6bf 100644 --- a/components/table/demo/grouping-columns.md +++ b/components/table/demo/grouping-columns.md @@ -86,7 +86,7 @@ for (let i = 0; i < 100; i++) { data.push({ key: i, name: 'John Brown', - age: Math.ceil(Math.random() * 100), + age: i + 1, street: 'Lake Park', building: 'C', number: 2035, diff --git a/components/transfer/demo/basic.md b/components/transfer/demo/basic.md index 6eb9d1824a..ff4ae5facc 100644 --- a/components/transfer/demo/basic.md +++ b/components/transfer/demo/basic.md @@ -22,12 +22,12 @@ for (let i = 0; i < 20; i++) { key: i.toString(), title: `content${i + 1}`, description: `description of content${i + 1}`, - disabled: Math.random() * 3 < 1, + disabled: i % 3 < 1, }); } const targetKeys = mockData - .filter(() => Math.random() * 2 > 1) + .filter(item => +item.key % 3 > 1) .map(item => item.key); const App = React.createClass({ diff --git a/components/upload/index.tsx b/components/upload/index.tsx index 633a412dca..b8ee7901ac 100644 --- a/components/upload/index.tsx +++ b/components/upload/index.tsx @@ -71,6 +71,7 @@ export default class Upload extends React.Component { listType: 'text', // or pictrue className: '', disabled: false, + supportServerRender: true, }; recentUploadStatus: boolean | PromiseLike; diff --git a/package.json b/package.json index 75d2acf99b..6f53a12e45 100644 --- a/package.json +++ b/package.json @@ -78,20 +78,22 @@ "devDependencies": { "@types/react": "~0.14.41", "@types/react-dom": "~0.14.18", + "antd-demo-jest": "^1.0.5", "antd-tools": "0.14.2", "babel-cli": "^6.18.0", - "babel-preset-es2015": "^6.18.0", - "babel-preset-react": "^6.16.0", - "babel-preset-stage-0": "^6.16.0", "babel-eslint": "^7.1.0", "babel-jest": "^17.0.0", "babel-plugin-import": "^1.0.0", "babel-plugin-transform-runtime": "~6.15.0", + "babel-preset-es2015": "^6.18.0", + "babel-preset-react": "^6.16.0", + "babel-preset-stage-0": "^6.16.0", "bisheng": "^0.17.0", "bisheng-plugin-antd": "~0.6.0", "bisheng-plugin-description": "^0.1.1", "bisheng-plugin-react": "^0.3.0", "bisheng-plugin-toc": "^0.3.0", + "coveralls": "^2.11.15", "css-split-webpack-plugin": "^0.2.1", "dekko": "^0.2.0", "dora-plugin-upload": "^0.3.1", @@ -107,6 +109,7 @@ "eslint-plugin-markdown": "*", "eslint-plugin-react": "^6.1.2", "eslint-tinker": "^0.4.0", + "glob": "^7.1.1", "history": "^4.4.0", "jest": "^17.0.1", "jest-cli": "^17.0.0", @@ -133,7 +136,8 @@ "react-sublime-video": "^0.2.0", "reqwest": "^2.0.5", "typescript-babel-jest": "^0.1.5", - "values.js": "^1.0.3" + "values.js": "^1.0.3", + "xhr2": "^0.1.3" }, "babel": { "presets": [ @@ -143,7 +147,7 @@ ] }, "scripts": { - "test": "npm run lint && npm run dist && npm run jest && npm run site", + "test": "npm run lint && npm run dist && npm run jest -- --coverage -w 2 && npm run jest:node -- -w 2 && npm run site", "lint": "npm run tslint && npm run eslint && npm run demolint && npm run lesshint", "tslint": "antd-tools run ts-lint && npm run compile && rm -rf lib", "eslint": "eslint test site scripts ./.eslintrc.js ./webpack.config.js --ext '.js,.jsx,.tsx' --ignore-pattern '!.eslintrc.js'", @@ -151,7 +155,8 @@ "lesshint": "lesshint components -r scripts/lesshint-report.js", "eslint-fix": "eslint --fix test site scripts ./.eslintrc.js ./webpack.config.js --ext '.js,.jsx,.tsx' --ignore-pattern '!.eslintrc.js' && eslint-tinker ./components/*/demo/*.md", - "jest": "jest --no-cache", + "jest": "jest", + "jest:node": "jest --config .jest.node.json", "clean": "antd-tools run clean", "dist": "antd-tools run dist && node ./tests/dekko/dist.test.js", @@ -174,19 +179,29 @@ "tsx", "js", "jsx", - "json" + "json", + "md" ], "modulePathIgnorePatterns": [ "/_site/" ], "testPathIgnorePatterns": [ "dekko", - "/node_modules/" + "/node_modules/", + "node" ], "transform": { - ".*": "node_modules/typescript-babel-jest" + "\\.tsx?$": "node_modules/typescript-babel-jest", + "tests/.*\\.js$": "node_modules/babel-jest", + "\\.md$": "node_modules/antd-demo-jest" }, - "testRegex": "(/tests/.*|\\.(test|spec))\\.(js)$" + "testRegex": "/tests/.*\\.test\\.js$", + "coveragePathIgnorePatterns": [ + "/node_modules/", + "components/.*/demo", + "/dist/", + "/tests/" + ] }, "pre-commit": [ "lint" diff --git a/tests/affix/demo.test.js b/tests/affix/demo.test.js new file mode 100644 index 0000000000..581b91466f --- /dev/null +++ b/tests/affix/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('affix'); diff --git a/tests/alert/demo.test.js b/tests/alert/demo.test.js new file mode 100644 index 0000000000..60ec055e1e --- /dev/null +++ b/tests/alert/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('alert'); diff --git a/tests/anchor/demo.test.js b/tests/anchor/demo.test.js new file mode 100644 index 0000000000..eacddd3d06 --- /dev/null +++ b/tests/anchor/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('anchor'); diff --git a/tests/auto-complete/demo.test.js b/tests/auto-complete/demo.test.js new file mode 100644 index 0000000000..14c4743fd8 --- /dev/null +++ b/tests/auto-complete/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('auto-complete'); diff --git a/tests/back-top/demo.test.js b/tests/back-top/demo.test.js new file mode 100644 index 0000000000..4415e98eeb --- /dev/null +++ b/tests/back-top/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('back-top'); diff --git a/tests/badge/demo.test.js b/tests/badge/demo.test.js new file mode 100644 index 0000000000..6c55fba0b5 --- /dev/null +++ b/tests/badge/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('badge'); diff --git a/tests/breadcrumb/demo.test.js b/tests/breadcrumb/demo.test.js new file mode 100644 index 0000000000..27e49e4df2 --- /dev/null +++ b/tests/breadcrumb/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('breadcrumb'); diff --git a/tests/__snapshots__/button.test.js.snap b/tests/button/__snapshots__/index.test.js.snap similarity index 100% rename from tests/__snapshots__/button.test.js.snap rename to tests/button/__snapshots__/index.test.js.snap diff --git a/tests/button/demo.test.js b/tests/button/demo.test.js new file mode 100644 index 0000000000..d68c668d7b --- /dev/null +++ b/tests/button/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('button'); diff --git a/tests/button.test.js b/tests/button/index.test.js similarity index 90% rename from tests/button.test.js rename to tests/button/index.test.js index 6ad29d39a5..6acf2e4af6 100644 --- a/tests/button.test.js +++ b/tests/button/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { render } from 'enzyme'; import { renderToJson } from 'enzyme-to-json'; -import Button from '../components/button/button'; +import Button from '../../components/button'; describe('Button', function() { it('renders correctly', () => { diff --git a/tests/calendar/demo.test.js b/tests/calendar/demo.test.js new file mode 100644 index 0000000000..e78ba2a2c2 --- /dev/null +++ b/tests/calendar/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('calendar'); diff --git a/tests/card/demo.test.js b/tests/card/demo.test.js new file mode 100644 index 0000000000..1dcff50924 --- /dev/null +++ b/tests/card/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('card'); diff --git a/tests/carousel/demo.test.js b/tests/carousel/demo.test.js new file mode 100644 index 0000000000..48ab0969fb --- /dev/null +++ b/tests/carousel/demo.test.js @@ -0,0 +1,12 @@ +import demoTest from '../shared/demoTest'; + +// https://github.com/WickyNilliams/enquire.js/issues/82 +window.matchMedia = window.matchMedia || function() { + return { + matches : false, + addListener : function() {}, + removeListener: function() {} + }; +}; + +demoTest('carousel'); diff --git a/tests/checkbox/demo.test.js b/tests/checkbox/demo.test.js new file mode 100644 index 0000000000..e08e5f8c65 --- /dev/null +++ b/tests/checkbox/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('checkbox'); diff --git a/tests/collapse/demo.test.js b/tests/collapse/demo.test.js new file mode 100644 index 0000000000..36b509eaa2 --- /dev/null +++ b/tests/collapse/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('collapse'); diff --git a/tests/date-picker/demo.test.js b/tests/date-picker/demo.test.js new file mode 100644 index 0000000000..02f56fb651 --- /dev/null +++ b/tests/date-picker/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('date-picker'); diff --git a/tests/dropdown/demo.test.js b/tests/dropdown/demo.test.js new file mode 100644 index 0000000000..20ccb8c698 --- /dev/null +++ b/tests/dropdown/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('dropdown'); diff --git a/tests/form/demo.test.js b/tests/form/demo.test.js new file mode 100644 index 0000000000..5602c6ec53 --- /dev/null +++ b/tests/form/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('form'); diff --git a/tests/grid/demo.test.js b/tests/grid/demo.test.js new file mode 100644 index 0000000000..1ec1b50a00 --- /dev/null +++ b/tests/grid/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('grid'); diff --git a/tests/icon.test.js b/tests/icon/index.test.js similarity index 93% rename from tests/icon.test.js rename to tests/icon/index.test.js index 146e7a1f74..435f02b1c8 100644 --- a/tests/icon.test.js +++ b/tests/icon/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import TestUtils from 'react-addons-test-utils'; import { wrap } from 'react-stateless-wrapper'; -import AntIcon from '../components/icon/index'; +import AntIcon from '../../components/icon/index'; const Icon = wrap(AntIcon); describe('Icon', function() { diff --git a/tests/input-number/demo.test.js b/tests/input-number/demo.test.js new file mode 100644 index 0000000000..5988e3c819 --- /dev/null +++ b/tests/input-number/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('input-number'); diff --git a/tests/input/demo.test.js b/tests/input/demo.test.js new file mode 100644 index 0000000000..889e45b68c --- /dev/null +++ b/tests/input/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('input'); diff --git a/tests/layout.test.js b/tests/layout/index.test.js similarity index 90% rename from tests/layout.test.js rename to tests/layout/index.test.js index 515f182332..c838e4366c 100644 --- a/tests/layout.test.js +++ b/tests/layout/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import TestUtils from 'react-addons-test-utils'; -let { Col, Row } = require('../components/grid/index'); +let { Col, Row } = require('../../components/grid/index'); describe('Grid', function() { it('should render Col', () => { diff --git a/tests/locale-provider/demo.test.js b/tests/locale-provider/demo.test.js new file mode 100644 index 0000000000..ad1c96858f --- /dev/null +++ b/tests/locale-provider/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('locale-provider'); diff --git a/tests/mention/demo.test.js b/tests/mention/demo.test.js new file mode 100644 index 0000000000..5d6c37652b --- /dev/null +++ b/tests/mention/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('mention', { skip: true }); diff --git a/tests/menu/demo.test.js b/tests/menu/demo.test.js new file mode 100644 index 0000000000..b26914c1fe --- /dev/null +++ b/tests/menu/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('menu', { skip: true }); diff --git a/tests/message/demo.test.js b/tests/message/demo.test.js new file mode 100644 index 0000000000..f306fc93d5 --- /dev/null +++ b/tests/message/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('message'); diff --git a/tests/modal/demo.test.js b/tests/modal/demo.test.js new file mode 100644 index 0000000000..aaa1f5469e --- /dev/null +++ b/tests/modal/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('modal'); diff --git a/tests/notification/demo.test.js b/tests/notification/demo.test.js new file mode 100644 index 0000000000..e43068d343 --- /dev/null +++ b/tests/notification/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('notification'); diff --git a/tests/pagination/demo.test.js b/tests/pagination/demo.test.js new file mode 100644 index 0000000000..c84a2ae6fd --- /dev/null +++ b/tests/pagination/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('pagination'); diff --git a/tests/popconfirm/demo.test.js b/tests/popconfirm/demo.test.js new file mode 100644 index 0000000000..c9a8aea0f5 --- /dev/null +++ b/tests/popconfirm/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('popconfirm'); diff --git a/tests/popover/demo.test.js b/tests/popover/demo.test.js new file mode 100644 index 0000000000..91724fd313 --- /dev/null +++ b/tests/popover/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('popover'); diff --git a/tests/popover.test.js b/tests/popover/index.test.js similarity index 94% rename from tests/popover.test.js rename to tests/popover/index.test.js index 7f30d55702..33b53b3a48 100644 --- a/tests/popover.test.js +++ b/tests/popover/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import TestUtils from 'react-addons-test-utils'; -import Popover from '../components/popover/index'; +import Popover from '../../components/popover/index'; describe('Popover', function() { it('should show overlay when trigger is clicked', () => { diff --git a/tests/progress/demo.test.js b/tests/progress/demo.test.js new file mode 100644 index 0000000000..fbc616ffc7 --- /dev/null +++ b/tests/progress/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('progress'); diff --git a/tests/radio/demo.test.js b/tests/radio/demo.test.js new file mode 100644 index 0000000000..a663362e32 --- /dev/null +++ b/tests/radio/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('radio'); diff --git a/tests/rate/demo.test.js b/tests/rate/demo.test.js new file mode 100644 index 0000000000..4e4b67d61e --- /dev/null +++ b/tests/rate/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('rate'); diff --git a/tests/select/demo.test.js b/tests/select/demo.test.js new file mode 100644 index 0000000000..5a5353703b --- /dev/null +++ b/tests/select/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('select'); diff --git a/tests/shared/demoTest.js b/tests/shared/demoTest.js new file mode 100644 index 0000000000..73543b72aa --- /dev/null +++ b/tests/shared/demoTest.js @@ -0,0 +1,16 @@ +import glob from 'glob' +import { render } from 'enzyme'; +import { renderToJson } from 'enzyme-to-json'; + +export default function demoTest(component, options = {}) { + const testMethod = options.skip ? test.skip : test; + const files = glob.sync(`./components/${component}/demo/*.md`); + + files.forEach(file => { + testMethod(`renders ${file} correctly`, () => { + const demo = require('../.' + file); + const wrapper = render(demo); + expect(renderToJson(wrapper)).toMatchSnapshot(); + }); + }); +} diff --git a/tests/slider/demo.test.js b/tests/slider/demo.test.js new file mode 100644 index 0000000000..2f14516574 --- /dev/null +++ b/tests/slider/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('slider'); diff --git a/tests/spin/demo.test.js b/tests/spin/demo.test.js new file mode 100644 index 0000000000..595ee83522 --- /dev/null +++ b/tests/spin/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('spin'); diff --git a/tests/steps/demo.test.js b/tests/steps/demo.test.js new file mode 100644 index 0000000000..964edffe5b --- /dev/null +++ b/tests/steps/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('steps'); diff --git a/tests/switch/demo.test.js b/tests/switch/demo.test.js new file mode 100644 index 0000000000..8646786f73 --- /dev/null +++ b/tests/switch/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('switch'); diff --git a/tests/table/demo.test.js b/tests/table/demo.test.js new file mode 100644 index 0000000000..78f2d9ff47 --- /dev/null +++ b/tests/table/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('table'); diff --git a/tests/tabs/demo.test.js b/tests/tabs/demo.test.js new file mode 100644 index 0000000000..3538aa6237 --- /dev/null +++ b/tests/tabs/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('tabs'); diff --git a/tests/tag/demo.test.js b/tests/tag/demo.test.js new file mode 100644 index 0000000000..5785e200c2 --- /dev/null +++ b/tests/tag/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('tag'); diff --git a/tests/time-picker/demo.test.js b/tests/time-picker/demo.test.js new file mode 100644 index 0000000000..fb38b7f321 --- /dev/null +++ b/tests/time-picker/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('time-picker'); diff --git a/tests/timeline/demo.test.js b/tests/timeline/demo.test.js new file mode 100644 index 0000000000..bf13d7ec8b --- /dev/null +++ b/tests/timeline/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('timeline'); diff --git a/tests/tooltip/demo.test.js b/tests/tooltip/demo.test.js new file mode 100644 index 0000000000..1a6442a18a --- /dev/null +++ b/tests/tooltip/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('tooltip'); diff --git a/tests/transfer/demo.test.js b/tests/transfer/demo.test.js new file mode 100644 index 0000000000..74fc0ccdea --- /dev/null +++ b/tests/transfer/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('transfer'); diff --git a/tests/tree-select/demo.test.js b/tests/tree-select/demo.test.js new file mode 100644 index 0000000000..a4ae76676f --- /dev/null +++ b/tests/tree-select/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('tree-select'); diff --git a/tests/tree/demo.test.js b/tests/tree/demo.test.js new file mode 100644 index 0000000000..a0eecf4bce --- /dev/null +++ b/tests/tree/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('tree'); diff --git a/tests/upload/demo.test.js b/tests/upload/demo.test.js new file mode 100644 index 0000000000..0bb0c95a99 --- /dev/null +++ b/tests/upload/demo.test.js @@ -0,0 +1,3 @@ +import demoTest from '../shared/demoTest'; + +demoTest('upload');