From 5a3c87fbf68643d94d6bcf82d46cb03a6d59aaa9 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Tue, 5 Sep 2017 13:12:35 -0400 Subject: [PATCH] More UI tests, transform properties ES6 plugin setup --- .babelrc | 9 ++++++++- app/static/app/js/Console.jsx | 1 + .../components/tests/AssetDownloadButtons.test.jsx | 10 ++++++++++ .../js/components/tests/EditPresetDialog.test.jsx | 12 ++++++++++++ app/static/app/js/tests/Console.test.jsx | 10 ++++++++++ app/static/app/js/tests/Dashboard.test.jsx | 1 + app/static/app/js/tests/MapView.test.jsx | 10 ++++++++++ app/static/app/js/tests/ModelView.test.jsx | 13 +++++++++++++ app/static/app/js/tests/mocks/empty.scss.js | 4 +++- jest.config.js | 3 ++- package.json | 2 +- 11 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 app/static/app/js/components/tests/AssetDownloadButtons.test.jsx create mode 100644 app/static/app/js/components/tests/EditPresetDialog.test.jsx create mode 100644 app/static/app/js/tests/Console.test.jsx create mode 100644 app/static/app/js/tests/MapView.test.jsx create mode 100644 app/static/app/js/tests/ModelView.test.jsx diff --git a/.babelrc b/.babelrc index 86c445f5..b9318605 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,10 @@ { - "presets": ["es2015", "react"] + "presets": ["es2015", "react"], + + "env": { + "test": { + "plugins": ["syntax-class-properties", + "transform-class-properties"] + } + } } diff --git a/app/static/app/js/Console.jsx b/app/static/app/js/Console.jsx index d4e1ab9f..de56c936 100644 --- a/app/static/app/js/Console.jsx +++ b/app/static/app/js/Console.jsx @@ -4,6 +4,7 @@ import './vendor/google-code-prettify/prettify'; import './vendor/google-code-prettify/prettify.css'; import update from 'immutability-helper'; import Utils from './classes/Utils'; +import $ from 'jquery'; class Console extends React.Component { constructor(props){ diff --git a/app/static/app/js/components/tests/AssetDownloadButtons.test.jsx b/app/static/app/js/components/tests/AssetDownloadButtons.test.jsx new file mode 100644 index 00000000..ccfead6f --- /dev/null +++ b/app/static/app/js/components/tests/AssetDownloadButtons.test.jsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import AssetDownloadButtons from '../AssetDownloadButtons'; + +describe('', () => { + it('renders without exploding', () => { + const wrapper = shallow(); + expect(wrapper.exists()).toBe(true); + }) +}); \ No newline at end of file diff --git a/app/static/app/js/components/tests/EditPresetDialog.test.jsx b/app/static/app/js/components/tests/EditPresetDialog.test.jsx new file mode 100644 index 00000000..f4a30c6f --- /dev/null +++ b/app/static/app/js/components/tests/EditPresetDialog.test.jsx @@ -0,0 +1,12 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import EditPresetDialog from '../EditPresetDialog'; + +describe('', () => { + it('renders without exploding', () => { + const wrapper = shallow(); + expect(wrapper.exists()).toBe(true); + }) +}); \ No newline at end of file diff --git a/app/static/app/js/tests/Console.test.jsx b/app/static/app/js/tests/Console.test.jsx new file mode 100644 index 00000000..175be98a --- /dev/null +++ b/app/static/app/js/tests/Console.test.jsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import Console from '../Console'; + +describe('', () => { + it('renders without exploding', () => { + const wrapper = shallow(); + expect(wrapper.exists()).toBe(true); + }) +}); \ No newline at end of file diff --git a/app/static/app/js/tests/Dashboard.test.jsx b/app/static/app/js/tests/Dashboard.test.jsx index d5c18c0b..358d6f56 100644 --- a/app/static/app/js/tests/Dashboard.test.jsx +++ b/app/static/app/js/tests/Dashboard.test.jsx @@ -1,3 +1,4 @@ +import React from 'react'; import { shallow } from 'enzyme'; import Dashboard from '../Dashboard'; diff --git a/app/static/app/js/tests/MapView.test.jsx b/app/static/app/js/tests/MapView.test.jsx new file mode 100644 index 00000000..5769e9d0 --- /dev/null +++ b/app/static/app/js/tests/MapView.test.jsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import MapView from '../MapView'; + +describe('', () => { + it('renders without exploding', () => { + const wrapper = shallow(); + expect(wrapper.exists()).toBe(true); + }) +}); \ No newline at end of file diff --git a/app/static/app/js/tests/ModelView.test.jsx b/app/static/app/js/tests/ModelView.test.jsx new file mode 100644 index 00000000..d9e40569 --- /dev/null +++ b/app/static/app/js/tests/ModelView.test.jsx @@ -0,0 +1,13 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +// import ModelView from '../ModelView'; + +// TODO: this needs some debugging since Potree has troubles with requirements + +describe('', () => { + it('TODO: renders without exploding', () => { + expect(true).toBe(true); +// const wrapper = shallow(); +// expect(wrapper.exists()).toBe(true); + }) +}); \ No newline at end of file diff --git a/app/static/app/js/tests/mocks/empty.scss.js b/app/static/app/js/tests/mocks/empty.scss.js index 0b161a9a..a79ebb87 100644 --- a/app/static/app/js/tests/mocks/empty.scss.js +++ b/app/static/app/js/tests/mocks/empty.scss.js @@ -3,4 +3,6 @@ Currently we don't transpile SCSS files when testing with Jest. We might want to change this in the future if we start doing snapshot -testing */ \ No newline at end of file +testing */ + +export default {}; \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index 17e28e50..df3d051f 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,7 @@ module.exports = { roots: ["./app/static/app/js"], "moduleNameMapper": { - "^.*\\.scss$": "./tests/mocks/empty.scss.js" // TODO: how to use an absolute path? + "^.*\\.s?css$": "/app/static/app/js/tests/mocks/empty.scss.js", + "jquery": "/app/static/app/js/vendor/jquery-1.11.2.min.js" } }; \ No newline at end of file diff --git a/package.json b/package.json index 97075838..a7ed96ff 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "webodm", + "name": "WebODM", "version": "0.4.0", "description": "Open Source Drone Image Processing", "main": "index.js",