diff --git a/.babelrc b/.babelrc deleted file mode 100644 index cf8b02b9cf..0000000000 --- a/.babelrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "presets": ["babel-preset-env", "babel-preset-react", "babel-preset-stage-0"], - "plugins": [ - "babel-plugin-transform-class-properties", - "babel-plugin-transform-react-remove-prop-types", - "babel-plugin-transform-react-constant-elements", - "babel-plugin-transform-react-inline-elements", - "babel-plugin-transform-es2015-destructuring", - "babel-plugin-transform-es2015-parameters", - "babel-plugin-transform-object-rest-spread" - ] -} diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000000..e92ab52463 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,10 @@ +module.exports = { + presets: [ + require.resolve('@babel/preset-env'), + require.resolve('@babel/preset-react'), + ], + plugins: [ + '@babel/plugin-proposal-class-properties', + '@babel/plugin-syntax-dynamic-import', + ].map(require.resolve), +}; diff --git a/jest.config.front.js b/jest.config.front.js index cf5d8dea35..f72d728848 100644 --- a/jest.config.front.js +++ b/jest.config.front.js @@ -3,37 +3,41 @@ const jest = require('jest'); module.exports = { collectCoverageFrom: [ 'packages/strapi-admin/admin/src/**/**/*.js', + '!packages/strapi-admin/admin/src/*.js', + '!packages/strapi-admin/admin/src/utils/*.js', 'packages/strapi-plugin-*/admin/src/**/**/*.js', - 'packages/strapi-plugin-*/admin/src/InjectedComponents/*.js', 'packages/strapi-plugin-*/admin/src/InjectedComponents/tests/*.js', '!packages/strapi-plugin-content-type-builder/admin/src/components/TableList/*.js', '!packages/strapi-plugin-content-type-builder/admin/src/components/TableListRow/*.js', '!packages/strapi-plugin-*/admin/src/utils/*.js', + '!packages/strapi-plugin-*/admin/src/lifecycles/*.js', '!packages/strapi-plugin-*/admin/src/**/**/tests/*.test.{js,jsx}', ], globals: { __webpack_public_path__: 'http://localhost:4000', strapi: {}, + BACKEND_URL: 'http://localhost:1337', + MODE: 'host', + PUBLIC_PATH: '/admin', + REMOTE_URL: '/', + NODE_ENV: 'test', }, moduleDirectories: [ 'node_modules', - '/packages/strapi-helper-plugin/node_modules', - '/packages/strapi-helper-plugin', - '/packages/strapi-helper-plugin/lib/src', + '/packages/strapi-admin/node_modules', + '/test/config/front', ], moduleNameMapper: { '.*\\.(css|less|styl|scss|sass)$': - '/packages/strapi-helper-plugin/lib/internals/mocks/cssModule.js', + '/test/config/front/mocks/cssModule.js', '.*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': - '/packages/strapi-helper-plugin/lib/internals/mocks/image.js', + '/test/config/front/mocks/image.js', }, rootDir: process.cwd(), - setupTestFrameworkScriptFile: - '/packages/strapi-helper-plugin/lib/internals/testing/test-bundler.js', + setupFilesAfterEnv: ['/test/config/front/test-bundler.js'], setupFiles: [ - '/packages/strapi-helper-plugin/node_modules/raf/polyfill', - '/packages/strapi-helper-plugin/lib/internals/testing/enzyme-setup.js', - '/packages/strapi-helper-plugin/lib/internals/testing/strapi.js', + '/test/config/front/enzyme-setup.js', + '/test/config/front/strapi.js', ], testRegex: 'tests/.*\\.test\\.js$', transform: { diff --git a/package.json b/package.json index 103090da29..a33f0c74a6 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,38 @@ { "private": true, "version": "3.0.0-alpha.25.2", - "dependencies": {}, + "dependencies": { + "npm": "^6.9.0", + "uninstall": "0.0.0" + }, "devDependencies": { + "@babel/core": "^7.4.3", + "@babel/plugin-proposal-class-properties": "^7.4.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/polyfill": "^7.4.3", + "@babel/preset-env": "^7.4.3", + "@babel/preset-react": "^7.0.0", "assert": "~1.3.0", "axios": "^0.18.0", "babel-cli": "6.26.0", - "babel-core": "6.26.0", "babel-eslint": "^6.1.2", "babel-jest": "^24.1.0", "babel-loader": "7.1.1", "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-react-constant-elements": "6.23.0", - "babel-plugin-transform-react-inline-elements": "6.22.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.18", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-react": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-plugin-transform-react-constant-elements": "^6.23.0", + "babel-plugin-transform-react-inline-elements": "^6.22.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.18", + "babel-preset-env": "^1.6.1", + "babel-preset-react": "^6.24.1", "babel-preset-stage-0": "^6.24.1", "chalk": "^2.4.1", "cross-env": "^5.2.0", "cypress": "3.1.2", + "enzyme": "^3.9.0", + "enzyme-adapter-react-16": "^1.12.1", "eslint": "^4.19.1", "eslint-plugin-babel": "^4.0.0", "eslint-plugin-react": "^7.7.0", diff --git a/packages/strapi-admin/admin/src/app.js b/packages/strapi-admin/admin/src/app.js index 8595c53efb..f199d12c59 100644 --- a/packages/strapi-admin/admin/src/app.js +++ b/packages/strapi-admin/admin/src/app.js @@ -61,7 +61,8 @@ import plugins from './plugins'; const initialState = {}; const store = configureStore(initialState, history); const { dispatch } = store; -const MOUNT_NODE = document.getElementById('app'); +const MOUNT_NODE = + document.getElementById('app') || document.createElement('div'); dispatch(getAppPluginsSucceeded(Object.keys(plugins))); @@ -165,7 +166,6 @@ const render = messages => { ReactDOM.render( - {/* */} @@ -183,23 +183,25 @@ if (module.hot) { }); } -// Chunked polyfill for browsers without Intl support -if (!window.Intl) { - new Promise(resolve => { - resolve(import('intl')); - }) - .then(() => - Promise.all([ - import('intl/locale-data/jsonp/en.js'), - import('intl/locale-data/jsonp/de.js'), - ]), - ) // eslint-disable-line prettier/prettier - .then(() => render(translationMessages)) - .catch(err => { - throw err; - }); -} else { - render(translationMessages); +if (NODE_ENV !== 'test') { + // Chunked polyfill for browsers without Intl support + if (!window.Intl) { + new Promise(resolve => { + resolve(import('intl')); + }) + .then(() => + Promise.all([ + import('intl/locale-data/jsonp/en.js'), + import('intl/locale-data/jsonp/de.js'), + ]), + ) // eslint-disable-line prettier/prettier + .then(() => render(translationMessages)) + .catch(err => { + throw err; + }); + } else { + render(translationMessages); + } } // @Pierre Burgy exporting dispatch for the notifications... diff --git a/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js b/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js index cdfd2448da..aa8edb889d 100644 --- a/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js +++ b/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js @@ -9,21 +9,20 @@ import { compose } from 'redux'; import { disableGlobalOverlayBlocker, enableGlobalOverlayBlocker, -} from 'actions/overlayBlocker'; + updatePlugin, +} from '../../App/actions'; -import LoadingIndicatorPage from 'components/LoadingIndicatorPage'; -import OverlayBlocker from 'components/OverlayBlocker'; +import { LoadingIndicatorPage, OverlayBlocker } from 'strapi-helper-plugin'; import injectReducer from '../../../utils/injectReducer'; import history from '../../../utils/history'; import configureStore from '../../../configureStore'; -import { messages } from '../../../i18n'; -// import { store } from '../../../createStore'; +import messages from 'testUtils/commonTrads.json'; + import Header from '../../../components/Header/index'; import Onboarding from '../../Onboarding'; import Logout from '../../../components/Logout'; -import { updatePlugin } from '../../App/actions'; import localeToggleReducer from '../../LocaleToggle/reducer'; import { diff --git a/packages/strapi-admin/admin/src/containers/App/index.js b/packages/strapi-admin/admin/src/containers/App/index.js index 22c96ee231..e7699819c3 100644 --- a/packages/strapi-admin/admin/src/containers/App/index.js +++ b/packages/strapi-admin/admin/src/containers/App/index.js @@ -48,9 +48,6 @@ function App(props) { ); } -// App.contextTypes = { -// store: PropTypes.object, -// }; App.propTypes = {}; export default App; diff --git a/packages/strapi-admin/admin/src/containers/App/tests/index.test.js b/packages/strapi-admin/admin/src/containers/App/tests/index.test.js index b436cd5745..489f286f34 100644 --- a/packages/strapi-admin/admin/src/containers/App/tests/index.test.js +++ b/packages/strapi-admin/admin/src/containers/App/tests/index.test.js @@ -3,7 +3,7 @@ import { shallow } from 'enzyme'; import { Route } from 'react-router-dom'; import AppLoader from '../../AppLoader'; -import App from '../index'; +import App from '../../App'; describe('', () => { it('should render the ', () => { diff --git a/packages/strapi-admin/admin/src/containers/App/tests/reducer.test.js b/packages/strapi-admin/admin/src/containers/App/tests/reducer.test.js index 18840e9418..fcc8216d8c 100644 --- a/packages/strapi-admin/admin/src/containers/App/tests/reducer.test.js +++ b/packages/strapi-admin/admin/src/containers/App/tests/reducer.test.js @@ -2,8 +2,6 @@ import { fromJS, List } from 'immutable'; import { disableGlobalOverlayBlocker, enableGlobalOverlayBlocker, -} from 'actions/overlayBlocker'; -import { freezeApp, getAppPluginsSucceeded, pluginDeleted, diff --git a/packages/strapi-admin/admin/src/containers/PluginDispatcher/tests/index.test.js b/packages/strapi-admin/admin/src/containers/PluginDispatcher/tests/index.test.js index ff357d368f..808709c562 100644 --- a/packages/strapi-admin/admin/src/containers/PluginDispatcher/tests/index.test.js +++ b/packages/strapi-admin/admin/src/containers/PluginDispatcher/tests/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import BlockerComponent from 'components/BlockerComponent'; +import { BlockerComponent } from 'strapi-helper-plugin'; import { PluginDispatcher } from '../index'; const BlockerComponent2 = () =>
BlockerComponent
; @@ -56,7 +56,7 @@ describe('', () => { expect(renderedComponent.find(BlockerComponent2)).toHaveLength(1); }); - it("Should return the plugin's mainComponent if all conditions are met", () => { + it('Should return the plugin\'s mainComponent if all conditions are met', () => { const props = { global: { plugins: { diff --git a/packages/strapi-admin/admin/src/plugins.js b/packages/strapi-admin/admin/src/plugins.js index ea3585741e..12532a9aab 100644 --- a/packages/strapi-admin/admin/src/plugins.js +++ b/packages/strapi-admin/admin/src/plugins.js @@ -15,21 +15,36 @@ window.strapi = Object.assign(window.strapi || {}, { injectSaga, }); +// module.exports = { +// documentation: require('../../../strapi-plugin-documentation/admin/dist/strapi-plugin-documentation.esm.js') +// .default, +// 'content-manager': require('../../../strapi-plugin-content-manager/admin/dist/strapi-plugin-content-manager.esm.js') +// .default, +// 'content-type-builder': require('../../../strapi-plugin-content-type-builder/admin/dist/strapi-plugin-content-type-builder.esm.js') +// .default, +// email: require('../../../strapi-plugin-email/admin/dist/strapi-plugin-email.esm.js') +// .default, +// 'users-permissions': require('../../../strapi-plugin-users-permissions/admin/dist/strapi-plugin-users-permissions.esm.js') +// .default, +// upload: require('../../../strapi-plugin-upload/admin/dist/strapi-plugin-upload.esm.js') +// .default, +// 'settings-manager': +// // 'settings-manager': require('../../../strapi-plugin-settings-manager/admin/src') +// require('../../../strapi-plugin-settings-manager/admin/dist/strapi-plugin-settings-manager.esm.js') +// .default, +// }; module.exports = { - documentation: require('../../../strapi-plugin-documentation/admin/dist/strapi-plugin-documentation.esm.js') + documentation: require('../../../strapi-plugin-documentation/admin/src') .default, - 'content-manager': require('../../../strapi-plugin-content-manager/admin/dist/strapi-plugin-content-manager.esm.js') + 'content-manager': require('../../../strapi-plugin-content-manager/admin/src') .default, - 'content-type-builder': require('../../../strapi-plugin-content-type-builder/admin/dist/strapi-plugin-content-type-builder.esm.js') + 'content-type-builder': require('../../../strapi-plugin-content-type-builder/admin/src') .default, - email: require('../../../strapi-plugin-email/admin/dist/strapi-plugin-email.esm.js') - .default, - 'users-permissions': require('../../../strapi-plugin-users-permissions/admin/dist/strapi-plugin-users-permissions.esm.js') - .default, - upload: require('../../../strapi-plugin-upload/admin/dist/strapi-plugin-upload.esm.js') + email: require('../../../strapi-plugin-email/admin/src').default, + 'users-permissions': require('../../../strapi-plugin-users-permissions/admin/src') .default, + upload: require('../../../strapi-plugin-upload/admin/src').default, 'settings-manager': // 'settings-manager': require('../../../strapi-plugin-settings-manager/admin/src') - require('../../../strapi-plugin-settings-manager/admin/dist/strapi-plugin-settings-manager.esm.js') - .default, + require('../../../strapi-plugin-settings-manager/admin/src').default, }; diff --git a/packages/strapi-helper-plugin/lib/src/components/BlockerComponent/index.js b/packages/strapi-helper-plugin/lib/src/components/BlockerComponent/index.js index 1826abc4c5..fefbf5a33e 100644 --- a/packages/strapi-helper-plugin/lib/src/components/BlockerComponent/index.js +++ b/packages/strapi-helper-plugin/lib/src/components/BlockerComponent/index.js @@ -1,8 +1,8 @@ /** -* -* BlockerComponent -* -*/ + * + * BlockerComponent + * + */ import React from 'react'; import { FormattedMessage } from 'react-intl'; @@ -12,8 +12,14 @@ import PropTypes from 'prop-types'; import styles from './styles.scss'; /* eslint-disable react/require-default-props */ -function BlockerComponent({ blockerComponentTitle, blockerComponentDescription, blockerComponentIcon, blockerComponentContent = '' }) { +function BlockerComponent({ + blockerComponentTitle, + blockerComponentDescription, + blockerComponentIcon, + blockerComponentContent = '', +}) { let content; + console.log(blockerComponentContent); switch (blockerComponentContent) { case 'renderIde': @@ -50,7 +56,7 @@ const renderIde = () => (

./config/environments/development/server.json

-
+      
         
           {
           
@@ -58,7 +64,7 @@ const renderIde = () => (
 "port": 1337,
- +  "autoReload": { enabled: true }
@@ -83,12 +89,25 @@ const renderIde = () => ( const renderButton = () => ( ); +BlockerComponent.defaultProps = { + blockerComponentContent: '', + blockerComponentDescription: 'app.utils.defaultMessage', + blockerComponentIcon: '', + blockerComponentTitle: 'app.utils.defaultMessage', +}; + BlockerComponent.propTypes = { - blockerComponentContent: PropTypes.string.isRequired, + blockerComponentContent: PropTypes.string, blockerComponentDescription: PropTypes.string.isRequired, blockerComponentIcon: PropTypes.string.isRequired, blockerComponentTitle: PropTypes.string.isRequired, diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index 85b1914d14..bc5e37a5a1 100644 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -96,4 +96,4 @@ "npm": ">= 6.0.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js index 4dc97f0b0e..ddc533d43d 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/InjectedComponents/ContentManager/tests/EditViewLink.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { shallow } from 'enzyme'; -import LiLink from 'components/LiLink'; +import { LiLink } from 'strapi-helper-plugin'; import EditViewLink from '../EditViewLink'; describe('', () => { diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeLi/tests/index.test.js b/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeLi/tests/index.test.js index f7f70364c6..6ec2044b05 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeLi/tests/index.test.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeLi/tests/index.test.js @@ -6,10 +6,10 @@ import AttributeLi from '../index'; describe('', () => { it('should not crash', () => { - shallow(); + shallow(); }); - it("should show the origin of the model if it's comming from a plugin", () => { + it('should show the origin of the model if it\'s comming from a plugin', () => { const props = { attributeInfos: { configurable: false, @@ -31,7 +31,7 @@ describe('', () => { expect(insideCompo.text()).toContain('users-permissions'); }); - it("should not show the origin of the model if it's not comming from a plugin", () => { + it('should not show the origin of the model if it\'s not comming from a plugin', () => { const props = { attributeInfos: { configurable: false, diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalPrimary/index.js b/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalPrimary/index.js index 9bc5b5a637..e0c3474174 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalPrimary/index.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalPrimary/index.js @@ -14,7 +14,9 @@ import styles from './styles.scss'; function ButtonModalPrimary({ add, message, onClick, type }) { /* istanbul ignore next */ // Ignoring the style condition is intended... - const className = add ? styles.buttonModalPrimaryAdd : styles.buttonModalPrimary; + const className = add + ? styles.buttonModalPrimaryAdd + : styles.buttonModalPrimary; return (