@zohodesk/react-cli 0.0.1-beta.16 → 0.0.1-beta.162

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +46 -3
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +708 -0
  5. package/bin/cli.js +134 -27
  6. package/cert/cert.pem +37 -129
  7. package/cert/key.pem +27 -27
  8. package/cert/passphrase.pem +1 -0
  9. package/files/eslintrc.js +62 -0
  10. package/files/prettierrc.js +3 -0
  11. package/lib/babel/cmjs-plugins-presets.js +16 -9
  12. package/lib/babel/es-plugins-presets.js +26 -14
  13. package/lib/common/getEntries.js +33 -24
  14. package/lib/common/getPublicPathConfig.js +40 -0
  15. package/lib/common/index.js +27 -13
  16. package/lib/common/splitChunks.js +64 -26
  17. package/lib/common/sslcertUpdater.js +59 -0
  18. package/lib/common/templateParameters.js +25 -0
  19. package/lib/configs/jest.config.js +26 -27
  20. package/lib/configs/libAlias.js +31 -0
  21. package/lib/configs/webpack.component.umd.config.js +31 -37
  22. package/lib/configs/webpack.css.umd.config.js +44 -44
  23. package/lib/configs/webpack.dev.config.js +96 -56
  24. package/lib/configs/webpack.docs.config.js +104 -98
  25. package/lib/configs/webpack.impact.config.js +116 -0
  26. package/lib/configs/webpack.prod.config.js +137 -85
  27. package/lib/hooks/docsProptypeHook.js +32 -38
  28. package/lib/jest/commitedFilesResult.js +144 -71
  29. package/lib/jest/coverageCollector.js +62 -29
  30. package/lib/jest/jsonMaker.js +54 -0
  31. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  32. package/lib/jest/preProcessors/jsPreprocessor.js +5 -6
  33. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  34. package/lib/jest/result.js +91 -41
  35. package/lib/jest/run.js +74 -27
  36. package/lib/jest/setup.js +103 -102
  37. package/lib/loaderUtils/getCSSLoaders.js +77 -0
  38. package/lib/loaderUtils/getDevJsLoaders.js +30 -23
  39. package/lib/loaderUtils/index.js +14 -7
  40. package/lib/loaders/docsLoader.js +15 -15
  41. package/lib/loaders/docsPropsLoader.js +14 -17
  42. package/lib/loaders/fileBountryLoader.js +17 -0
  43. package/lib/loaders/fileLoader.js +47 -38
  44. package/lib/loaders/scriptInstrumentLoader.js +21 -20
  45. package/lib/loaders/selectorMappingLoader.js +75 -0
  46. package/lib/loaders/workerLoader.js +136 -0
  47. package/lib/middlewares/HMRMiddleware.js +59 -41
  48. package/lib/middlewares/SSTMiddleware.js +21 -0
  49. package/lib/pluginUtils/getDevPlugins.js +175 -26
  50. package/lib/pluginUtils/getDocsPlugins.js +32 -17
  51. package/lib/pluginUtils/getLibraryImactPlugins.js +23 -0
  52. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  53. package/lib/pluginUtils/getProdPlugins.js +240 -37
  54. package/lib/pluginUtils/getServerPlugins.js +8 -11
  55. package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
  56. package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
  57. package/lib/pluginUtils/index.js +36 -43
  58. package/lib/plugins/CdnChangePlugin.js +77 -0
  59. package/lib/plugins/CleanupStatsPlugin.js +28 -0
  60. package/lib/plugins/EFCPlugin.js +241 -0
  61. package/lib/plugins/EFCPlugin.md +6 -0
  62. package/lib/plugins/EFCTemplatePlugin.js +151 -0
  63. package/lib/plugins/I18NInjectIntoIndexPlugin.js +141 -0
  64. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  65. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  66. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  67. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  68. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  69. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
  70. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  71. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  72. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  73. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  74. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  75. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  76. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  77. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  78. package/lib/plugins/ManifestPlugin.js +59 -62
  79. package/lib/plugins/ModuleStatsPlugin.js +98 -97
  80. package/lib/plugins/OptimizeJSPlugin.js +24 -41
  81. package/lib/plugins/PublicPathCallbackPlugin.js +63 -0
  82. package/lib/plugins/PublicPathChangePlugin.js +187 -174
  83. package/lib/plugins/ReportGeneratePlugin.js +181 -0
  84. package/lib/plugins/RequireVariablePublicPlugin.js +30 -0
  85. package/lib/plugins/ResourceHintsPlugin.js +53 -35
  86. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +80 -0
  87. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +82 -0
  88. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -0
  89. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +26 -0
  90. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  91. package/lib/plugins/ServiceWorkerPlugin.js +107 -0
  92. package/lib/plugins/ShadowDOMSupportPlugin.js +270 -0
  93. package/lib/plugins/SourceMapHookPlugin.js +25 -31
  94. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  95. package/lib/plugins/UglifyCSSPlugin.js +23 -30
  96. package/lib/plugins/UnusedFilesFindPlugin.js +150 -97
  97. package/lib/plugins/index.js +118 -55
  98. package/lib/plugins/libraryImpactPlugin.js +190 -0
  99. package/lib/plugins/webpackwatchrunplugin.js +26 -0
  100. package/lib/postcss-plugins/ExcludeRTLPlugin.js +23 -0
  101. package/lib/postcss-plugins/RTLSplitPlugin.js +138 -0
  102. package/lib/schemas/index.js +466 -52
  103. package/lib/servers/clusterHubServer.js +22 -26
  104. package/lib/servers/docsServer.js +3 -5
  105. package/lib/servers/docsServerCore.js +93 -85
  106. package/lib/servers/helpServer.js +19 -21
  107. package/lib/servers/httpsOptions.js +19 -0
  108. package/lib/servers/impactServer.js +99 -92
  109. package/lib/servers/mockserver.js +44 -0
  110. package/lib/servers/nowatchserver.js +275 -0
  111. package/lib/servers/scrServer.js +147 -0
  112. package/lib/servers/server.js +118 -124
  113. package/lib/servers/ssServer.js +107 -65
  114. package/lib/sh/reportPublish.sh +16 -10
  115. package/lib/templates/CoverageScriptTemplate.js +45 -18
  116. package/lib/templates/WMSTemplate.js +17 -18
  117. package/lib/templates/linterConstant.js +10 -0
  118. package/lib/utils/babelPresets.js +12 -5
  119. package/lib/utils/buildstats.html +148 -0
  120. package/lib/utils/clean.js +12 -11
  121. package/lib/utils/copy.js +13 -127
  122. package/lib/utils/copyTimezones.js +21 -0
  123. package/lib/utils/createEventStream.js +24 -19
  124. package/lib/utils/cssClassNameGenerate.js +77 -0
  125. package/lib/utils/cssURLReplacer.js +67 -54
  126. package/lib/utils/dependencyPostPublish.js +42 -0
  127. package/lib/utils/fileUtils.js +125 -0
  128. package/lib/utils/folderIterator.js +47 -0
  129. package/lib/utils/getComponents.js +126 -0
  130. package/lib/utils/getCurrentBranch.js +11 -17
  131. package/lib/utils/getDependenciesImpactList.js +151 -0
  132. package/lib/utils/getHash.js +26 -0
  133. package/lib/utils/getIp.js +20 -0
  134. package/lib/utils/getOptions.js +55 -30
  135. package/lib/utils/getServerURL.js +25 -8
  136. package/lib/utils/index.js +259 -82
  137. package/lib/utils/init.js +2 -2
  138. package/lib/utils/initPreCommitHook.js +40 -31
  139. package/lib/utils/jsonHelper.js +97 -0
  140. package/lib/utils/libraryImpactConfig.js +63 -0
  141. package/lib/utils/lint/addScripts.js +27 -0
  142. package/lib/utils/lint/checkExistingConfig.js +67 -0
  143. package/lib/utils/lint/copyConfigs.js +24 -0
  144. package/lib/utils/lint/index.js +54 -0
  145. package/lib/utils/lint/lintScripts.js +11 -0
  146. package/lib/utils/lint/lintSetup.js +31 -0
  147. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  148. package/lib/utils/lint/question.js +30 -0
  149. package/lib/utils/lintReporter.js +142 -0
  150. package/lib/utils/mailSender.js +16 -25
  151. package/lib/utils/pullOrigin.js +28 -0
  152. package/lib/utils/reinstallDependencies.js +133 -0
  153. package/lib/utils/removeAttributes.js +25 -23
  154. package/lib/utils/repoClone.js +56 -63
  155. package/lib/utils/request.js +64 -77
  156. package/lib/utils/resultSchema.json +73 -0
  157. package/lib/utils/rtl.js +42 -0
  158. package/lib/utils/setEnvVariables.js +5 -6
  159. package/lib/utils/ssTestHack.js +48 -0
  160. package/lib/utils/switchBranch.js +28 -0
  161. package/lib/utils/urlConcat.js +22 -0
  162. package/package.json +92 -64
  163. package/templates/app/.eslintrc.js +140 -0
  164. package/templates/app/README.md +12 -12
  165. package/templates/app/app/index.html +24 -8
  166. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  167. package/templates/app/app/properties/i18nkeys.json +3 -3
  168. package/templates/app/docs/all.html +69 -69
  169. package/templates/app/mockapi/index.js +18 -13
  170. package/templates/app/package.json +37 -17
  171. package/templates/app/src/actions/SampleActions/index.js +37 -0
  172. package/templates/app/src/actions/index.js +65 -0
  173. package/templates/app/src/appUrls.js +19 -0
  174. package/templates/app/src/components/Alert/Alert.js +134 -0
  175. package/templates/app/src/components/Alert/Alert.module.css +79 -0
  176. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -0
  177. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -0
  178. package/templates/app/src/components/Sample/Sample.module.css +11 -0
  179. package/templates/app/src/components/Sample/SampleList.js +61 -0
  180. package/templates/app/src/components/Slider/Slider.css +41 -0
  181. package/templates/app/src/components/Slider/Slider.js +55 -0
  182. package/templates/app/src/containers/AlertContainer/index.js +15 -0
  183. package/templates/app/src/containers/AppContainer/index.js +96 -0
  184. package/templates/app/src/containers/AppContainer/index.module.css +27 -0
  185. package/templates/app/src/containers/CustomMatch/index.js +65 -0
  186. package/templates/app/src/containers/DevTools/index.js +10 -0
  187. package/templates/app/src/containers/Header/index.js +67 -0
  188. package/templates/app/src/containers/Header/index.module.css +43 -0
  189. package/templates/app/src/containers/Redirect/index.js +63 -0
  190. package/templates/app/src/containers/Redirector/index.js +47 -0
  191. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -0
  192. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -0
  193. package/templates/app/src/historyChange.js +5 -0
  194. package/templates/app/src/index.html +10 -0
  195. package/templates/app/src/index.js +24 -0
  196. package/templates/app/src/middleware/PromiseMiddleware.js +59 -0
  197. package/templates/app/src/reducers/alertData.js +11 -0
  198. package/templates/app/src/reducers/index.js +6 -0
  199. package/templates/app/src/reducers/samples.js +19 -0
  200. package/templates/app/src/store/configureStore.dev.js +51 -0
  201. package/templates/app/src/store/configureStore.js +5 -0
  202. package/templates/app/src/store/configureStore.prod.js +26 -0
  203. package/templates/app/src/util/Common.js +5 -0
  204. package/templates/app/src/util/RequestAPI.js +132 -0
  205. package/templates/appold/README.md +12 -0
  206. package/templates/appold/app/index.html +8 -0
  207. package/templates/appold/app/properties/ApplicationResources_en_US.properties +1 -0
  208. package/templates/appold/app/properties/i18nkeys.json +3 -0
  209. package/templates/appold/docs/all.html +69 -0
  210. package/templates/appold/mockapi/index.js +13 -0
  211. package/templates/{app → appold}/mockapi/tickets.json +0 -0
  212. package/templates/appold/package.json +17 -0
  213. package/templates/appold/src/components/Text/Text.css +0 -0
  214. package/templates/appold/src/components/Text/Text.js +23 -0
  215. package/templates/appold/src/components/Text/__tests__/Text.spec.js +30 -0
  216. package/templates/appold/src/components/Text/docs/Text__default.docs.js +16 -0
  217. package/templates/appold/src/components/docs.js +1 -0
  218. package/templates/appold/src/components/index.js +5 -0
  219. package/templates/appold/src/index.js +13 -0
  220. package/templates/docs/all.html +1 -1
  221. package/templates/docs/component.html +110 -69
  222. package/templates/docs/components.html +221 -0
  223. package/templates/docs/css/component.css +12 -14
  224. package/templates/docs/css/componentTest.css +7 -0
  225. package/templates/docs/css/style.css +150 -206
  226. package/templates/docs/impactReportTemplate.html +154 -0
  227. package/templates/docs/index.html +1482 -1336
  228. package/templates/library/src/index.js +0 -0
@@ -1,71 +1,104 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _path = require('path');
3
+ var _path = _interopRequireDefault(require("path"));
4
4
 
5
- var _path2 = _interopRequireDefault(_path);
6
-
7
- var _utils = require('../utils');
5
+ var _utils = require("../utils");
8
6
 
9
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
8
 
11
- function listMaker(listOfObject) {
12
- var fileNameList = [];
13
- var curListName = process.cwd().split(_path2.default.sep);
9
+ function jsFileFilter(listOfObject) {
10
+ let fileNameList = [];
11
+ let curListName = process.cwd().split(_path.default.sep);
12
+ let currentDirName = curListName[curListName.length - 1];
13
+ listOfObject.forEach(fileObj => {
14
+ let fileName = fileObj.FILEPATH;
15
+
16
+ if (fileName.includes(currentDirName)) {
17
+ fileName = fileName.split(currentDirName + '/')[1]; //eslint-disable-line
14
18
 
15
- listOfObject.forEach(function (fileObj) {
16
- var fileName = fileObj.FILEPATH;
17
- fileName = fileName.replace(curListName[curListName.length - 2] + _path2.default.sep + curListName[curListName.length - 1] + _path2.default.sep, '');
18
- fileName = fileName.replace('jsapps/components/', '');
19
- if (fileName.includes('.js') && !fileName.includes('.json') && !fileName.includes('.docs.js')) {
20
- fileNameList.push(fileName);
19
+ if (fileName.includes('.js') && !fileName.includes('.json') && !fileName.includes('.docs.js') && !fileName.includes('.spec.js')) {
20
+ fileNameList.push(fileName);
21
+ }
21
22
  }
22
23
  });
23
24
  return fileNameList;
24
25
  }
25
26
 
26
27
  function coverage(devBranch, compareWith, serviceName, domain) {
27
- return new Promise(function (resolve) {
28
+ return new Promise(resolve => {
28
29
  (0, _utils.request)({
29
- url: domain + '/impact/ImpactModuleAction.do?action=getCommitDiffFileDetail&serviceName=' + serviceName + '&masterBranchCommitHash=' + compareWith + '&buildCommitHash=' + devBranch
30
- }).then(function (_ref) {
31
- var body = _ref.body;
30
+ url: `${domain}/impact/ImpactModuleAction.do?action=getCommitDiffFileDetail&serviceName=${serviceName}&masterBranchCommitHash=${compareWith}&buildCommitHash=${devBranch}`
31
+ }).then(({
32
+ body
33
+ }) => {
34
+ let res = JSON.parse(body);
32
35
 
33
- var res = JSON.parse(body);
34
36
  if (Object.keys(res).length > 0) {
35
37
  if (Object.prototype.hasOwnProperty.call(res, 'STATUS')) {
36
38
  if (res.STATUS) {
37
- var listOfFiles = [];
39
+ let listOfFiles = [];
40
+
38
41
  if (Object.keys(res.DIFF_FILES).length > 0) {
39
42
  if (Object.prototype.hasOwnProperty.call(res.DIFF_FILES, 'ADDED')) {
40
43
  if (res.DIFF_FILES.ADDED.length > 0) {
41
- listOfFiles = listOfFiles.concat(listMaker(res.DIFF_FILES.ADDED));
44
+ listOfFiles = listOfFiles.concat(jsFileFilter(res.DIFF_FILES.ADDED));
42
45
  }
43
46
  }
47
+
44
48
  if (Object.prototype.hasOwnProperty.call(res.DIFF_FILES, 'UPDATED')) {
45
49
  if (res.DIFF_FILES.UPDATED.length > 0) {
46
- listOfFiles = listOfFiles.concat(listMaker(res.DIFF_FILES.UPDATED));
50
+ listOfFiles = listOfFiles.concat(jsFileFilter(res.DIFF_FILES.UPDATED));
47
51
  }
48
52
  }
49
- resolve({ STATUS: true, LIST: listOfFiles, REASON: 'success' });
53
+
54
+ if (listOfFiles.length > 0) {
55
+ resolve({
56
+ STATUS: true,
57
+ LIST: listOfFiles,
58
+ REASON: 'success'
59
+ });
60
+ } else {
61
+ resolve({
62
+ STATUS: false,
63
+ LIST: listOfFiles,
64
+ REASON: 'No modified js files'
65
+ });
66
+ }
50
67
  } else {
51
68
  resolve({
52
69
  STATUS: false,
53
70
  LIST: [],
54
- REASON: 'No modified js files'
71
+ REASON: 'No changes with last changeset'
55
72
  });
56
73
  }
57
74
  } else {
58
- resolve({ STATUS: false, LIST: [], REASON: 'Internal Error' });
75
+ resolve({
76
+ STATUS: false,
77
+ LIST: [],
78
+ REASON: 'Internal Error'
79
+ });
59
80
  }
60
81
  } else {
61
- resolve({ STATUS: false, LIST: [], REASON: 'Internal Error' });
82
+ resolve({
83
+ STATUS: false,
84
+ LIST: [],
85
+ REASON: 'Internal Error'
86
+ });
62
87
  }
63
88
  } else {
64
- resolve({ STATUS: false, LIST: [], REASON: 'Internal Error' });
89
+ resolve({
90
+ STATUS: false,
91
+ LIST: [],
92
+ REASON: 'Internal Error'
93
+ });
65
94
  }
66
- }).catch(function (err) {
95
+ }).catch(err => {
67
96
  (0, _utils.log)(err);
68
- resolve({ STATUS: false, LIST: [], REASON: 'Service Down' });
97
+ resolve({
98
+ STATUS: false,
99
+ LIST: [],
100
+ REASON: 'Service Down'
101
+ });
69
102
  });
70
103
  });
71
104
  }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _jsonHelper = require("../utils/jsonHelper");
9
+
10
+ var _default = (resultObj, coverage, status = true, type = 'unitcase', filecoverage = 0) => {
11
+ let pathArray = [];
12
+ let resultJson = {};
13
+ resultJson.isExecuted = status;
14
+ resultJson.numberOfSuccess = resultObj.numPassedTests;
15
+ resultJson.numberOfFails = resultObj.numFailedTests;
16
+ resultJson.numberOfCases = resultObj.numTotalTests;
17
+ resultJson.numberOfSuites = resultObj.numTotalTestSuites;
18
+ resultJson.endTime = resultObj.endTime;
19
+ resultJson.startTime = resultObj.startTime;
20
+ resultJson.coverageDetail = {
21
+ codeCoveragePercentage: coverage,
22
+ fileCoveragePercentage: filecoverage
23
+ };
24
+ let fileDetailList = [];
25
+ resultObj.testResults.map(testFile => {
26
+ let fileObj = {};
27
+ fileObj.fileName = testFile.testFilePath;
28
+ fileObj.CaseList = {};
29
+ fileObj.CaseList.passedCaseList = [];
30
+ fileObj.CaseList.failedCaseList = [];
31
+ testFile.testResults.map(testCase => {
32
+ if (testCase.status === 'failed') {
33
+ fileObj.CaseList.failedCaseList.push(testCase.title);
34
+ } else if (testCase.status === 'passed') {
35
+ fileObj.CaseList.passedCaseList.push(testCase.title);
36
+ }
37
+
38
+ return testCase;
39
+ });
40
+ fileDetailList.push(fileObj);
41
+ return testFile;
42
+ });
43
+
44
+ if (type !== 'unitcase') {
45
+ Array.prototype.push.apply(pathArray, ['tests', 'modifiedFileUnitCase']);
46
+ } else {
47
+ Array.prototype.push.apply(pathArray, ['tests', 'unitCase']);
48
+ }
49
+
50
+ resultJson.fileDetails = fileDetailList;
51
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, pathArray, resultJson);
52
+ };
53
+
54
+ exports.default = _default;
@@ -1,31 +1,29 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _postcss = require('postcss');
3
+ var _postcss = _interopRequireDefault(require("postcss"));
4
4
 
5
- var _postcss2 = _interopRequireDefault(_postcss);
5
+ var _postcssHashClassname = _interopRequireDefault(require("postcss-hash-classname"));
6
6
 
7
- var _postcssHashClassname = require('postcss-hash-classname');
8
-
9
- var _postcssHashClassname2 = _interopRequireDefault(_postcssHashClassname);
10
-
11
- var _fs = require('fs');
12
-
13
- var _fs2 = _interopRequireDefault(_fs);
7
+ var _fs = _interopRequireDefault(require("fs"));
14
8
 
15
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
10
 
17
- var count = 0;
18
-
11
+ let count = 0;
19
12
  module.exports = {
20
- process: function process(src) {
13
+ process: function (src) {
21
14
  count++;
22
- var opts = { hashType: 'md5', digestType: 'base32' };
15
+ let opts = {
16
+ hashType: 'md5',
17
+ digestType: 'base32'
18
+ };
23
19
  opts.maxLength = 6;
24
20
  opts.type = '.json';
25
- opts.outputName = 'jsonFile_test_' + count;
26
- var processor = (0, _postcss2.default)([(0, _postcssHashClassname2.default)(opts)]);
21
+ opts.outputName = `jsonFile_test_${count}`;
22
+ let processor = (0, _postcss.default)([(0, _postcssHashClassname.default)(opts)]);
27
23
  processor.process(src).css;
28
- var jsonMap = _fs2.default.readFileSync('jsonFile_test_' + count + '.json', 'UTF-8');
29
- return 'module.exports =' + jsonMap;
24
+
25
+ let jsonMap = _fs.default.readFileSync(`jsonFile_test_${count}.json`, 'UTF-8');
26
+
27
+ return `module.exports =${jsonMap}`;
30
28
  }
31
29
  };
@@ -1,11 +1,10 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _babelJest = require('babel-jest');
4
-
5
- var _babelJest2 = _interopRequireDefault(_babelJest);
3
+ var _babelJest = _interopRequireDefault(require("babel-jest"));
6
4
 
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
6
 
9
- module.exports = _babelJest2.default.createTransformer({
10
- presets: [require.resolve('@babel/preset-env'), require.resolve('@babel/preset-react')]
7
+ module.exports = _babelJest.default.createTransformer({
8
+ presets: [require.resolve('@babel/preset-env'), require.resolve('@babel/preset-react')],
9
+ plugins: [require.resolve('babel-plugin-transform-dynamic-import')]
11
10
  });
@@ -1,13 +1,12 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _path = require('path');
4
-
5
- var _path2 = _interopRequireDefault(_path);
3
+ var _path = _interopRequireDefault(require("path"));
6
4
 
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
6
 
9
7
  module.exports = {
10
- process: function process(src, filename) {
11
- return 'module.exports = ' + JSON.stringify(_path2.default.basename(filename)) + ';';
8
+ process(src, filename) {
9
+ return `module.exports = ${JSON.stringify(_path.default.basename(filename))};`;
12
10
  }
11
+
13
12
  };
@@ -1,42 +1,46 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _fs = require('fs');
3
+ var _fs = _interopRequireDefault(require("fs"));
4
4
 
5
- var _fs2 = _interopRequireDefault(_fs);
5
+ var _utils = require("../utils");
6
6
 
7
- var _utils = require('../utils');
7
+ var _jsonMaker = _interopRequireDefault(require("./jsonMaker"));
8
8
 
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
10
 
11
- var unitTestReport = [];
12
- var result = function result(inp) {
13
- var testPathPattern = process.argv[process.argv.length - 1];
11
+ let unitTestReport = [];
12
+
13
+ const result = inp => {
14
+ inp.endTime = Date.now();
15
+ let testPathPattern = process.argv[process.argv.length - 1];
16
+
14
17
  if (testPathPattern.indexOf('--') !== -1) {
15
18
  testPathPattern = '';
16
19
  } else {
17
- testPathPattern = _fs2.default.realpathSync(process.cwd());
20
+ testPathPattern = _fs.default.realpathSync(process.cwd());
18
21
  }
19
- var testPathRegex = new RegExp(testPathPattern);
20
- var testResults = inp.testResults;
21
22
 
22
- var testFilesArr = [];
23
- // for (var i = 0; i < testResults.length; i++) {
24
- testResults.forEach(function (testResult) {
25
- var filePath = testResult.testFilePath;
23
+ let testPathRegex = new RegExp(testPathPattern);
24
+ let {
25
+ testResults
26
+ } = inp;
27
+ let testFilesArr = [];
28
+ testResults.forEach(testResult => {
29
+ let filePath = testResult.testFilePath;
30
+
26
31
  if (!testPathRegex.test(filePath)) {
27
32
  return;
28
33
  }
34
+
29
35
  filePath = filePath.replace('.spec', '');
30
36
  filePath = filePath.replace('/__tests__', '');
31
37
  filePath = filePath.replace('/__test__', '');
32
- var fileJson = {};
38
+ let fileJson = {};
33
39
  fileJson.testPath = testResult.testFilePath;
34
40
  fileJson.sourcePath = filePath;
35
41
  fileJson.data = testResult;
36
42
  testFilesArr.push(fileJson);
37
- testResult.testResults && testResult.testResults.filter(function (t) {
38
- return t.status === 'failed';
39
- }).forEach(function (t) {
43
+ testResult.testResults && testResult.testResults.filter(t => t.status === 'failed').forEach(t => {
40
44
  unitTestReport.push({
41
45
  title: t.title,
42
46
  fullName: t.fullName,
@@ -45,51 +49,97 @@ var result = function result(inp) {
45
49
  });
46
50
  });
47
51
 
48
- var coverageSummary = _fs2.default.readFileSync('./coverage/coverage-summary.json').toString();
52
+ let coverageSummary = _fs.default.readFileSync('./coverage/coverage-summary.json').toString();
53
+
49
54
  if (coverageSummary.indexOf('\\') !== -1) {
50
55
  coverageSummary = coverageSummary.replace(/\\/g, '\\\\');
51
56
  }
52
- var coverageJson = JSON.parse(coverageSummary);
53
- var linesPercent = 0;
54
- var functionPercent = 0;
55
- var statementPerment = 0;
56
- var branchesPercent = 0;
57
- var i = 0;
57
+
58
+ let coverageJson = JSON.parse(coverageSummary);
59
+ let linesPercent = 0;
60
+ let functionPercent = 0;
61
+ let statementPerment = 0;
62
+ let branchesPercent = 0;
63
+ let i = 0;
64
+
58
65
  for (i; i < testFilesArr.length; i++) {
59
- var curSourceFile = testFilesArr[i].sourcePath;
60
- var coverageData = coverageJson[curSourceFile];
66
+ let curSourceFile = testFilesArr[i].sourcePath;
67
+ let coverageData = coverageJson[curSourceFile];
68
+
61
69
  if (!coverageData) {
62
- (0, _utils.log)('Can\'t able to find source for ' + testFilesArr[i].testPath + '\n Or The spec file getting failed during test. Please check the file name and the path is correct for test file or Make them pass.');
70
+ (0, _utils.log)(`Can't able to find source for ${testFilesArr[i].testPath}\n Or The spec file getting failed during test. Please check the file name and the path is correct for test file or Make them pass.`);
63
71
  continue;
64
72
  }
73
+
65
74
  linesPercent += coverageData.lines.pct;
66
75
  functionPercent += coverageData.functions.pct;
67
76
  statementPerment += coverageData.statements.pct;
68
77
  branchesPercent += coverageData.branches.pct;
69
78
  }
70
- var totalLinesPercent = linesPercent / (i * 100) * 100;
71
- var totalFunctionPercent = functionPercent / (i * 100) * 100;
72
- var totalStatementPercent = statementPerment / (i * 100) * 100;
73
- var totalBranchesPercent = branchesPercent / (i * 100) * 100;
74
- var totalPercentage = totalLinesPercent + totalFunctionPercent + totalStatementPercent + totalBranchesPercent;
75
- var coverage = (totalPercentage / 4).toFixed(2);
79
+
80
+ let totalLinesPercent = linesPercent / (i * 100) * 100;
81
+ let totalFunctionPercent = functionPercent / (i * 100) * 100;
82
+ let totalStatementPercent = statementPerment / (i * 100) * 100;
83
+ let totalBranchesPercent = branchesPercent / (i * 100) * 100;
84
+ let totalPercentage = totalLinesPercent + totalFunctionPercent + totalStatementPercent + totalBranchesPercent;
85
+ let coverage = (totalPercentage / 4).toFixed(2);
76
86
  coverage = Number(coverage);
87
+ (0, _jsonMaker.default)(inp, coverage, 'Yes', 'unitcase');
77
88
 
78
89
  if (Number.isNaN(coverage)) {
79
90
  (0, _utils.log)('This build does\'t have any JS changes!');
80
91
  coverage = 0;
81
92
  } else {
82
- (0, _utils.log)('COVERAGE ' + coverage + '%');
93
+ (0, _utils.log)(`COVERAGE ${coverage}%`);
83
94
  }
84
95
 
85
- var html = '<html>\n\t<head>\n\t<style>\n\t.red{\n\t\tfont-weight:bold;\n\t\tcolor:red;\n\t}\n\t.green{\n\t\tfont-weight:bold;\n\t\tcolor:green;\n\t}\n\ttable\n\t\t{\n font-family: arial, sans-serif;\n border-collapse: collapse;\n\t\t}\n\n\t\ttd, th\n\t\t{\n border: 1px solid #dddddd;\n padding: 8px;\n\t\t}\n\t</style>\n\t</head>\n\t\t<body>\n\t\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<th>Title</th>\n\t\t\t\t<th>FullName</th>\n\t\t\t\t<th>Test Case Path</th>\n\t\t\t</tr>\n\t\t\t' + unitTestReport.map(function (t) {
86
- return '<tr>\n\t\t\t\t\t<td>' + t.title + '</td>\n\t\t\t\t\t<td>' + t.fullName + '</td>\n\t\t\t\t\t<td>' + t.filePath + '</td>\n\t\t\t\t</tr>';
87
- }) + '\n\t\t\t</table>\n\t\t\t<br/>COVERAGE <span class="' + (coverage < 60 ? 'red' : 'green') + '">' + coverage + '%</span> <br/> less than 60% consider failure\n\t\t</body>\n\t</html>\n\t\t';
96
+ let html = `<html>
97
+ <head>
98
+ <style>
99
+ .red{
100
+ font-weight:bold;
101
+ color:red;
102
+ }
103
+ .green{
104
+ font-weight:bold;
105
+ color:green;
106
+ }
107
+ table
108
+ {
109
+ font-family: arial, sans-serif;
110
+ border-collapse: collapse;
111
+ }
112
+
113
+ td, th
114
+ {
115
+ border: 1px solid #dddddd;
116
+ padding: 8px;
117
+ }
118
+ </style>
119
+ </head>
120
+ <body>
121
+ <table>
122
+ <tr>
123
+ <th>Title</th>
124
+ <th>FullName</th>
125
+ <th>Test Case Path</th>
126
+ </tr>
127
+ ${unitTestReport.map(t => `<tr>
128
+ <td>${t.title}</td>
129
+ <td>${t.fullName}</td>
130
+ <td>${t.filePath}</td>
131
+ </tr>`)}
132
+ </table>
133
+ <br/>COVERAGE <span class="${coverage < 60 ? 'red' : 'green'}">${coverage}%</span> <br/> less than 60% consider failure
134
+ </body>
135
+ </html>
136
+ `;
88
137
 
89
- if (!_fs2.default.existsSync('./unittest')) {
90
- _fs2.default.mkdirSync('./unittest');
138
+ if (!_fs.default.existsSync('./unittest')) {
139
+ _fs.default.mkdirSync('./unittest');
91
140
  }
92
- _fs2.default.writeFileSync('./unittest/index.html', html, 'utf8');
141
+
142
+ _fs.default.writeFileSync('./unittest/index.html', html, 'utf8');
93
143
 
94
144
  return inp;
95
145
  };
package/lib/jest/run.js CHANGED
@@ -1,45 +1,92 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _jest = require('jest');
3
+ var _jest = require("jest");
4
4
 
5
- var _jest2 = _interopRequireDefault(_jest);
5
+ var _fs = _interopRequireDefault(require("fs"));
6
6
 
7
- var _utils = require('../utils');
7
+ var _utils = require("../utils");
8
8
 
9
- var _coverageCollector = require('./coverageCollector');
9
+ var _jsonHelper = require("../utils/jsonHelper");
10
10
 
11
- var _coverageCollector2 = _interopRequireDefault(_coverageCollector);
11
+ var _coverageCollector = _interopRequireDefault(require("./coverageCollector"));
12
12
 
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
 
15
- var options = (0, _utils.getOptions)();
16
- var folder = options.app.folder,
17
- _options$test = options.test,
18
- srcBranch = _options$test.srcBranch,
19
- targetBranch = _options$test.targetBranch,
20
- serviceName = _options$test.serviceName,
21
- impactServerDomain = _options$test.impactServerDomain,
22
- isCommitCoverage = _options$test.isCommitCoverage;
15
+ let options = (0, _utils.getOptions)();
16
+ let {
17
+ app: {
18
+ folder
19
+ },
20
+ test: {
21
+ branchName,
22
+ srcBranch,
23
+ targetBranch,
24
+ serviceName,
25
+ impactServerDomain,
26
+ isCommitCoverage
27
+ }
28
+ } = options;
29
+ let argv = process.argv.slice(2);
23
30
 
31
+ let config = require('../configs/jest.config');
24
32
 
25
- var argv = process.argv.slice(2);
26
-
27
- var config = require('../configs/jest.config');
28
33
  if (isCommitCoverage) {
29
- (0, _coverageCollector2.default)(srcBranch, targetBranch, serviceName, impactServerDomain).then(function () {
30
- var res = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
-
34
+ (0, _coverageCollector.default)(srcBranch, targetBranch, serviceName, impactServerDomain).then((res = {}) => {
32
35
  if (res.STATUS) {
33
- argv.push('--findRelatedTests');
34
- argv = argv.concat(res.LIST);
35
- argv = argv.concat(['--config', JSON.stringify(config(null, true))]);
36
- argv.push('--no-cache');
37
- _jest2.default.run(argv);
36
+ if (res.LIST.length > 0) {
37
+ let content = {
38
+ FILES: res.LIST
39
+ };
40
+
41
+ if (!_fs.default.existsSync('./coverageTest')) {
42
+ _fs.default.mkdirSync('./coverageTest');
43
+
44
+ _fs.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
45
+ } else {
46
+ _fs.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
47
+ }
48
+
49
+ argv.push('--findRelatedTests');
50
+ argv = argv.concat(res.LIST);
51
+ argv = argv.concat(['--config', JSON.stringify(config(null, true))]);
52
+ argv.push('--no-cache');
53
+ argv.push('--silent');
54
+ (0, _jest.run)(argv);
55
+ } else {
56
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'modifiedFileUnitCase', 'hasChanges'], false); // jsonHelper(
57
+ // `${process.cwd()}/result.json`,
58
+ // 'testInfo.isBuildVerified',
59
+ // true
60
+ // );
61
+
62
+ (0, _jsonHelper.setTestInfoStatus)(`${process.cwd()}/result.json`, true);
63
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, 'testInfo.failures', [{
64
+ type: 'modifiedUnitcases',
65
+ message: res.REASON
66
+ }]);
67
+ (0, _utils.log)('No JS changes with last changeset!');
68
+ }
38
69
  } else {
70
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'modifiedFileUnitCase', 'isExecuted'], res.STATUS); // jsonHelper(
71
+ // `${process.cwd()}/result.json`,
72
+ // 'testInfo.isBuildVerified',
73
+ // true
74
+ // );
75
+
76
+ (0, _jsonHelper.setTestInfoStatus)(`${process.cwd()}/result.json`, true); // jsonHelper(`${process.cwd()}/result.json`, 'testInfo.failures', [{
77
+ // type: 'modifiedUnitcases',
78
+ // message: res.REASON
79
+ // }]);
80
+
39
81
  (0, _utils.log)(res.REASON);
40
82
  }
41
83
  });
42
84
  } else {
43
- argv.push('--config', JSON.stringify(config(folder)), '--no-cache');
44
- _jest2.default.run(argv);
85
+ if (branchName === 'master' || branchName === null) {
86
+ argv.push('--config', JSON.stringify(config(folder)), '--no-cache');
87
+ (0, _jest.run)(argv);
88
+ } else {
89
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'unitCase', 'isExecuted'], 'onlyMaster');
90
+ (0, _utils.log)('Only runs with master branch');
91
+ }
45
92
  }