From 9449ae43148c570f1378bfd73411131315aebad9 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 16 Jul 2019 14:23:41 -0400 Subject: [PATCH] Try alternative jest transform --- babel.config.js | 43 +++++++------ platform/viewer/.gitattributes | 39 ----------- platform/viewer/.jscsrc | 45 ------------- platform/viewer/.jshintrc | 93 --------------------------- platform/viewer/jest.config.js | 3 + platform/viewer/jestBabelTransform.js | 5 ++ 6 files changed, 30 insertions(+), 198 deletions(-) delete mode 100644 platform/viewer/.gitattributes delete mode 100644 platform/viewer/.jscsrc delete mode 100644 platform/viewer/.jshintrc create mode 100644 platform/viewer/jestBabelTransform.js diff --git a/babel.config.js b/babel.config.js index 1b598e7fc..9f0a9263d 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,27 +1,28 @@ -const aliases = require('./aliases.config'); -const path = require('path'); +const aliases = require("./aliases.config"); +const path = require("path"); module.exports = { // https://babeljs.io/docs/en/options#babelrcroots presets: [ [ - '@babel/preset-env', + "@babel/preset-env", { targets: { - ie: '11', - }, - }, + ie: "11" + } + } ], - '@babel/preset-react', + "@babel/preset-react" ], + babelrcRoots: ["./platform/*", "./extensions/*"], plugins: [ - '@babel/plugin-proposal-class-properties', - '@babel/plugin-proposal-object-rest-spread', - '@babel/plugin-syntax-dynamic-import', - '@babel/plugin-transform-regenerator', - '@babel/plugin-transform-runtime', + "@babel/plugin-proposal-class-properties", + "@babel/plugin-proposal-object-rest-spread", + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-transform-regenerator", + "@babel/plugin-transform-runtime", [ - 'module-resolver', + "module-resolver", { // https://github.com/tleunen/babel-plugin-module-resolver/issues/338 // There seem to be a bug with module-resolver with a mono-repo setup: @@ -31,18 +32,18 @@ module.exports = { // This will return undefined if aliases has no key for the sourcePath, // in which case module-resolver will fallback on its default behaviour. return aliases[sourcePath]; - }, - }, - ], + } + } + ] ], env: { debug: { - sourceMaps: 'inline', - retainLines: true, + sourceMaps: "inline", + retainLines: true }, build: { - ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'], - }, + ignore: ["**/*.test.jsx", "**/*.test.js", "__snapshots__", "__tests__"] + } }, - ignore: ['node_modules'], + ignore: ["node_modules"] }; diff --git a/platform/viewer/.gitattributes b/platform/viewer/.gitattributes deleted file mode 100644 index 8ed8c6fa3..000000000 --- a/platform/viewer/.gitattributes +++ /dev/null @@ -1,39 +0,0 @@ -# These settings are for any web project - -# Handle line endings automatically for files detected as text -# and leave all files detected as binary untouched. -* text=auto - -# Force the following filetypes to have unix eols, so Windows does not break them -*.* text eol=lf - -# Windows forced line-endings -/.idea/* text eol=crlf - -# -## These files are binary and should be left untouched -# - -# (binary is a macro for -text -diff) -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.mov binary -*.mp4 binary -*.mp3 binary -*.flv binary -*.fla binary -*.swf binary -*.gz binary -*.zip binary -*.7z binary -*.ttf binary -*.eot binary -*.woff binary -*.pyc binary -*.pdf binary -*.ez binary -*.bz2 binary -*.swp binary \ No newline at end of file diff --git a/platform/viewer/.jscsrc b/platform/viewer/.jscsrc deleted file mode 100644 index bd50f5480..000000000 --- a/platform/viewer/.jscsrc +++ /dev/null @@ -1,45 +0,0 @@ -{ - "requireCurlyBraces": { - "keywords": [ "if", "else", "for", "while", "do" ], - "allExcept" : ["return" , "continue", "break"] - }, - "requireSpaceAfterKeywords": [ "if", "else", "for", "while", "do", "switch", "return" ], - "requireSpacesInFunctionExpression": { - "beforeOpeningCurlyBrace": true - }, - "disallowSpacesInFunctionExpression": { - "beforeOpeningRoundBrace": true - }, - "disallowSpacesInsideParentheses": true, - "disallowKeywordsOnNewLine": ["else"], - "disallowNewlineBeforeBlockStatements": true, - "requirePaddingNewLinesAfterUseStrict": true, - "requirePaddingNewLinesAfterBlocks": { - "allExcept": ["inCallExpressions", "inArrayExpressions", "inProperties"] - }, - "requireObjectKeysOnNewLine": true, - "requireSemicolons": true, - "requireSpaceAfterBinaryOperators": true, - "requireSpaceAfterComma": true, - "requireSpaceBeforeObjectValues": true, - "requireSpacesInsideObjectBrackets": "all", - "requireLineBreakAfterVariableAssignment": true, - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-"], - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "disallowKeywords": [ "with" ], - "disallowMultipleLineBreaks": true, - "requireLineFeedAtFileEnd": true, - "disallowSpaceAfterObjectKeys": true, - "disallowQuotedKeysInObjects": true, - "disallowMultipleSpaces": true, - "disallowVar": true, - "validateLineBreaks": "LF", - "validateIndentation": 4, - "validateQuoteMarks": { - "mark": "'", - "escape": true - }, - "validateParameterSeparator": ", ", - "requireDollarBeforejQueryAssignment": true -} diff --git a/platform/viewer/.jshintrc b/platform/viewer/.jshintrc deleted file mode 100644 index 28d7e6edd..000000000 --- a/platform/viewer/.jshintrc +++ /dev/null @@ -1,93 +0,0 @@ -{ - // JSHint Default Configuration File (as on JSHint website) - // See http://jshint.com/docs/ for more details - - "maxerr": 50, // {int} Maximum error before stopping - - // Enforcing - "bitwise": true, // true: Prohibit bitwise operators (&, |, ^, etc.) - "camelcase": false, // true: Identifiers must be in camelCase - "curly": false, // true: Require {} for every new block or scope - "eqeqeq": true, // true: Require triple equals (===) for comparison - "forin": true, // true: Require filtering for..in loops with obj.hasOwnProperty() - "freeze": true, // true: prohibits overwriting prototypes of native objects such as Array, Date etc. - "immed": false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` - "latedef": false, // true: Require variables/functions to be defined before being used - "newcap": false, // true: Require capitalization of all constructor functions e.g. `new F()` - "noarg": true, // true: Prohibit use of `arguments.caller` and `arguments.callee` - "noempty": true, // true: Prohibit use of empty blocks - "nonbsp": true, // true: Prohibit "non-breaking whitespace" characters. - "nonew": false, // true: Prohibit use of constructors for side-effects (without assignment) - "plusplus": false, // true: Prohibit use of `++` and `--` - "quotmark": false, // Quotation mark consistency: - // false : do nothing (default) - // true : ensure whatever is used is consistent - // "single" : require single quotes - // "double" : require double quotes - "undef": true, // true: Require all non-global variables to be declared (prevents global leaks) - "unused": "vars", // Unused variables: - // true : all variables, last function parameter - // "vars" : all variables only - // "strict" : all variables, all function parameters - "strict": false, // true: Requires all functions run in ES5 Strict Mode - "maxparams": false, // {int} Max number of formal params allowed per function - "maxdepth": false, // {int} Max depth of nested blocks (within functions) - "maxstatements": false, // {int} Max number statements per function - "maxcomplexity": false, // {int} Max cyclomatic complexity per function - "maxlen": false, // {int} Max number of characters per line - "varstmt": false, // true: Disallow any var statements. Only `let` and `const` are allowed. - - // Relaxing - "asi": false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) - "boss": false, // true: Tolerate assignments where comparisons would be expected - "debug": false, // true: Allow debugger statements e.g. browser breakpoints. - "eqnull": false, // true: Tolerate use of `== null` - "es5": true, // true: Allow ES5 syntax (ex: getters and setters) - "esnext": true, // true: Allow ES.next (ES6) syntax (ex: `const`) - "moz": false, // true: Allow Mozilla specific syntax (extends and overrides esnext features) - // (ex: `for each`, multiple try/catch, function expression…) - "evil": false, // true: Tolerate use of `eval` and `new Function()` - "expr": false, // true: Tolerate `ExpressionStatement` as Programs - "funcscope": false, // true: Tolerate defining variables inside control statements - "globalstrict": false, // true: Allow global "use strict" (also enables 'strict') - "iterator": false, // true: Tolerate using the `__iterator__` property - "lastsemic": false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block - "laxbreak": false, // true: Tolerate possibly unsafe line breakings - "laxcomma": false, // true: Tolerate comma-first style coding - "loopfunc": false, // true: Tolerate functions being defined in loops - "multistr": false, // true: Tolerate multi-line strings - "noyield": false, // true: Tolerate generator functions with no yield statement in them. - "notypeof": false, // true: Tolerate invalid typeof operator values - "proto": false, // true: Tolerate using the `__proto__` property - "scripturl": false, // true: Tolerate script-targeted URLs - "shadow": false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` - "sub": false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation - "supernew": false, // true: Tolerate `new function () { ... };` and `new Object;` - "validthis": false, // true: Tolerate using this in a non-constructor function - - // Environments - "browser": true, // Web Browser (window, document, etc) - "browserify": false, // Browserify (node.js code in the browser) - "couch": false, // CouchDB - "devel": false, // Development/debugging (alert, confirm, etc) - "dojo": false, // Dojo Toolkit - "jasmine": false, // Jasmine - "jquery": true, // jQuery - "mocha": false, // Mocha - "mootools": false, // MooTools - "node": false, // Node.js - "nonstandard": false, // Widely adopted globals (escape, unescape, etc) - "phantom": false, // PhantomJS - "prototypejs": false, // Prototype and Scriptaculous - "qunit": false, // QUnit - "rhino": false, // Rhino - "shelljs": false, // ShellJS - "typed": false, // Globals for typed array constructions - "worker": false, // Web Workers - "wsh": false, // Windows Scripting Host - "yui": false, // Yahoo User Interface - "globals": { - "require": true, - "Package": true // Meteor Package definition - } -} diff --git a/platform/viewer/jest.config.js b/platform/viewer/jest.config.js index 526625e34..711186654 100644 --- a/platform/viewer/jest.config.js +++ b/platform/viewer/jest.config.js @@ -11,6 +11,9 @@ module.exports = { ], reporters: ["default", "jest-junit"], // + transform: { + "^.+\\.js$": path.resolve(__dirname, "./jestBabelTransform.js") + }, moduleNameMapper: { "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/src/__mocks__/fileMock.js", diff --git a/platform/viewer/jestBabelTransform.js b/platform/viewer/jestBabelTransform.js new file mode 100644 index 000000000..d1b645bc7 --- /dev/null +++ b/platform/viewer/jestBabelTransform.js @@ -0,0 +1,5 @@ +const babelJest = require("babel-jest"); + +module.exports = babelJest.createTransformer({ + rootMode: "upward" +});