Browse Source

set up Mocha/Chai/Enzyme for React component unit testing

Kai Schaper 7 years ago
parent
commit
d7c55853e9
3 changed files with 24 additions and 4 deletions
  1. 1 0
      .nvmrc
  2. 10 4
      package.json
  3. 13 0
      spec/javascript/components/loading_indicator.test.jsx

+ 1 - 0
.nvmrc

@@ -0,0 +1 @@
+6.7.0

+ 10 - 4
package.json

@@ -1,6 +1,10 @@
 {
   "name": "mastodon",
+  "scripts": {
+    "test": "mocha --compilers js:babel-register ./spec/javascript/components/*.test.jsx"
+  },
   "devDependencies": {
+    "axios": "^0.14.0",
     "babel-plugin-react-transform": "^2.0.2",
     "babel-plugin-transform-object-rest-spread": "^6.8.0",
     "babel-preset-es2015": "^6.13.2",
@@ -8,17 +12,19 @@
     "babelify": "^7.3.0",
     "browserify": "^13.1.0",
     "browserify-incremental": "^3.1.1",
-    "react": "^15.3.0",
-    "react-dom": "^15.3.0",
-    "react-proxy": "^1.1.8",
-    "axios": "^0.14.0",
+    "chai": "^3.5.0",
+    "enzyme": "^2.4.1",
     "es6-promise": "^3.2.1",
     "immutable": "^3.8.1",
+    "mocha": "^3.1.1",
     "moment": "^2.14.1",
     "react-addons-perf": "^15.3.2",
     "react-addons-pure-render-mixin": "^15.3.1",
+    "react-addons-test-utils": "^15.3.2",
+    "react-dom": "^15.3.0",
     "react-immutable-proptypes": "^2.1.0",
     "react-notification": "^6.1.1",
+    "react-proxy": "^1.1.8",
     "react-redux": "^5.0.0-beta.3",
     "react-redux-loading-bar": "^2.3.3",
     "react-router": "^2.8.0",

+ 13 - 0
spec/javascript/components/loading_indicator.test.jsx

@@ -0,0 +1,13 @@
+import { expect } from 'chai';
+import { shallow } from 'enzyme';
+import React from 'react';
+global.React = React;
+
+import LoadingIndicator from '../../../app/assets/javascripts/components/components/loading_indicator'
+
+describe('<LoadingIndicator />', function() {
+  it('renders text that indicates loading', function() {
+    const wrapper = shallow(<LoadingIndicator />);
+    expect(wrapper.text()).to.match(/loading/i);
+  });
+});