add jsdom; add basic Avatar component test
This commit is contained in:
parent
1a1b9bbbc0
commit
998f161e1d
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "mastodon",
|
||||
"scripts": {
|
||||
"test": "mocha --compilers js:babel-register ./spec/javascript/components/*.test.jsx"
|
||||
"test": "mocha --require ./spec/javascript/setup.js --compilers js:babel-register ./spec/javascript/components/*.test.jsx"
|
||||
},
|
||||
"devDependencies": {
|
||||
"axios": "^0.14.0",
|
||||
|
@ -16,6 +16,7 @@
|
|||
"enzyme": "^2.4.1",
|
||||
"es6-promise": "^3.2.1",
|
||||
"immutable": "^3.8.1",
|
||||
"jsdom": "^9.6.0",
|
||||
"mocha": "^3.1.1",
|
||||
"moment": "^2.14.1",
|
||||
"react": "^15.3.2",
|
||||
|
|
12
spec/javascript/components/avatar.test.jsx
Normal file
12
spec/javascript/components/avatar.test.jsx
Normal file
|
@ -0,0 +1,12 @@
|
|||
import { expect } from 'chai';
|
||||
import { render } from 'enzyme';
|
||||
|
||||
import Avatar from '../../../app/assets/javascripts/components/components/avatar'
|
||||
|
||||
describe('<Avatar />', function() {
|
||||
it('renders an img with the given src', function() {
|
||||
const src = '/path/to/image.jpg';
|
||||
const wrapper = render(<Avatar src={src} size={100} />);
|
||||
expect(wrapper.find(`img[src="${src}"]`)).to.have.length(1);
|
||||
});
|
||||
});
|
|
@ -1,7 +1,5 @@
|
|||
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'
|
||||
|
||||
|
|
22
spec/javascript/setup.js
Normal file
22
spec/javascript/setup.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
/**
|
||||
* http://airbnb.io/enzyme/docs/guides/jsdom.html
|
||||
*/
|
||||
var jsdom = require('jsdom').jsdom;
|
||||
|
||||
var exposedProperties = ['window', 'navigator', 'document'];
|
||||
|
||||
global.document = jsdom('');
|
||||
global.window = document.defaultView;
|
||||
Object.keys(document.defaultView).forEach((property) => {
|
||||
if (typeof global[property] === 'undefined') {
|
||||
exposedProperties.push(property);
|
||||
global[property] = document.defaultView[property];
|
||||
}
|
||||
});
|
||||
|
||||
global.navigator = {
|
||||
userAgent: 'node.js'
|
||||
};
|
||||
|
||||
var React = window.React = global.React = require('react');
|
||||
var ReactDOM = window.ReactDOM = global.ReactDOM = require('react-dom');
|
Reference in a new issue