@zohodesk/react-cli 0.0.1-beta.98 → 0.0.1-betaa.138.1
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.
- package/CHANGELOG.md +5 -0
- package/README.md +149 -0
- package/bin/cli.js +34 -29
- package/files/eslintrc.js +57 -0
- package/files/prettierrc.js +3 -0
- package/lib/babel/cmjs-plugins-presets.js +16 -9
- package/lib/babel/es-plugins-presets.js +26 -14
- package/lib/common/getEntries.js +31 -22
- package/lib/common/getPublicPathConfig.js +27 -13
- package/lib/common/index.js +21 -25
- package/lib/common/splitChunks.js +62 -53
- package/lib/common/templateParameters.js +10 -8
- package/lib/configs/jest.config.js +15 -25
- package/lib/configs/webpack.component.umd.config.js +31 -37
- package/lib/configs/webpack.css.umd.config.js +44 -47
- package/lib/configs/webpack.dev.config.js +70 -52
- package/lib/configs/webpack.docs.config.js +106 -106
- package/lib/configs/webpack.prod.config.js +95 -75
- package/lib/hooks/docsProptypeHook.js +32 -38
- package/lib/jest/commitedFilesResult.js +103 -74
- package/lib/jest/coverageCollector.js +41 -21
- package/lib/jest/jsonMaker.js +15 -16
- package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
- package/lib/jest/preProcessors/jsPreprocessor.js +3 -5
- package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
- package/lib/jest/result.js +90 -45
- package/lib/jest/run.js +43 -43
- package/lib/jest/setup.js +102 -95
- package/lib/loaderUtils/getCSSLoaders.js +21 -22
- package/lib/loaderUtils/getDevJsLoaders.js +25 -23
- package/lib/loaderUtils/index.js +11 -13
- package/lib/loaders/docsLoader.js +15 -15
- package/lib/loaders/docsPropsLoader.js +14 -17
- package/lib/loaders/fileLoader.js +33 -35
- package/lib/loaders/scriptInstrumentLoader.js +21 -20
- package/lib/loaders/workerLoader.js +136 -0
- package/lib/middlewares/HMRMiddleware.js +54 -45
- package/lib/middlewares/SSTMiddleware.js +8 -5
- package/lib/pluginUtils/getDevPlugins.js +114 -52
- package/lib/pluginUtils/getDocsPlugins.js +25 -29
- package/lib/pluginUtils/getLibraryPlugins.js +8 -10
- package/lib/pluginUtils/getProdPlugins.js +163 -74
- package/lib/pluginUtils/getServerPlugins.js +8 -11
- package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
- package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
- package/lib/pluginUtils/index.js +36 -43
- package/lib/plugins/CdnChangePlugin.js +63 -0
- package/lib/plugins/CleanupStatsPlugin.js +18 -32
- package/lib/plugins/CustomAttributePlugin.js +79 -0
- package/lib/plugins/CustomAttributePlugin.md +35 -0
- package/lib/plugins/EFCPlugin.js +185 -0
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +118 -52
- package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
- package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
- package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
- package/lib/plugins/I18nSplitPlugin/README.md +25 -0
- package/lib/plugins/I18nSplitPlugin/index.js +185 -0
- package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
- package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
- package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
- package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
- package/lib/plugins/ManifestPlugin.js +52 -63
- package/lib/plugins/ModuleStatsPlugin.js +83 -173
- package/lib/plugins/OptimizeJSPlugin.js +24 -41
- package/lib/plugins/PublicPathCallbackPlugin.js +42 -116
- package/lib/plugins/PublicPathChangePlugin.js +175 -284
- package/lib/plugins/ReportGeneratePlugin.js +150 -151
- package/lib/plugins/ResourceHintsPlugin.js +53 -35
- package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
- package/lib/plugins/ServiceWorkerPlugin.js +81 -57
- package/lib/plugins/ShadowDOMSupportPlugin.js +153 -234
- package/lib/plugins/SourceMapHookPlugin.js +21 -33
- package/lib/plugins/TPHashMappingPlugin.js +67 -0
- package/lib/plugins/UglifyCSSPlugin.js +23 -30
- package/lib/plugins/UnusedFilesFindPlugin.js +137 -152
- package/lib/plugins/index.js +100 -91
- package/lib/plugins/webpackwatchrunplugin.js +18 -30
- package/lib/postcss-plugins/ExcludeRTLPlugin.js +14 -17
- package/lib/schemas/index.js +336 -81
- package/lib/servers/clusterHubServer.js +22 -26
- package/lib/servers/docsServer.js +3 -5
- package/lib/servers/docsServerCore.js +84 -91
- package/lib/servers/helpServer.js +19 -21
- package/lib/servers/impactServer.js +99 -92
- package/lib/servers/mockserver.js +24 -24
- package/lib/servers/scrServer.js +78 -98
- package/lib/servers/server.js +101 -122
- package/lib/servers/ssServer.js +63 -61
- package/lib/sh/reportPublish.sh +1 -2
- package/lib/templates/CoverageScriptTemplate.js +45 -18
- package/lib/templates/WMSTemplate.js +17 -18
- package/lib/templates/linterConstant.js +6 -4
- package/lib/utils/babelPresets.js +12 -5
- package/lib/utils/clean.js +12 -11
- package/lib/utils/copy.js +12 -34
- package/lib/utils/copyTimezones.js +9 -16
- package/lib/utils/createEventStream.js +24 -19
- package/lib/utils/cssClassNameGenerate.js +44 -73
- package/lib/utils/cssURLReplacer.js +62 -56
- package/lib/utils/dependencyPostPublish.js +20 -19
- package/lib/utils/fileUtils.js +66 -54
- package/lib/utils/folderIterator.js +20 -21
- package/lib/utils/getComponents.js +70 -27
- package/lib/utils/getCurrentBranch.js +11 -17
- package/lib/utils/getDependenciesImpactList.js +114 -187
- package/lib/utils/getHash.js +9 -13
- package/lib/utils/getIp.js +9 -9
- package/lib/utils/getOptions.js +26 -29
- package/lib/utils/getServerURL.js +19 -10
- package/lib/utils/index.js +147 -126
- package/lib/utils/init.js +2 -2
- package/lib/utils/initPreCommitHook.js +40 -32
- package/lib/utils/jsonHelper.js +37 -21
- package/lib/utils/lint/addScripts.js +27 -0
- package/lib/utils/lint/checkExistingConfig.js +67 -0
- package/lib/utils/lint/copyConfigs.js +24 -0
- package/lib/utils/lint/index.js +54 -0
- package/lib/utils/lint/lintScripts.js +11 -0
- package/lib/utils/lint/lintSetup.js +31 -0
- package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
- package/lib/utils/lint/question.js +30 -0
- package/lib/utils/lintReporter.js +70 -56
- package/lib/utils/mailSender.js +12 -27
- package/lib/utils/pullOrigin.js +21 -18
- package/lib/utils/reinstallDependencies.js +76 -85
- package/lib/utils/removeAttributes.js +25 -23
- package/lib/utils/repoClone.js +47 -45
- package/lib/utils/request.js +64 -77
- package/lib/utils/rtl.js +22 -29
- package/lib/utils/setEnvVariables.js +5 -6
- package/lib/utils/ssTestHack.js +21 -19
- package/lib/utils/switchBranch.js +21 -20
- package/lib/utils/urlConcat.js +22 -0
- package/package.json +72 -67
package/lib/jest/result.js
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
var _fs = require(
|
|
3
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _utils = require("../utils");
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
var _jsonMaker = require('./jsonMaker');
|
|
10
|
-
|
|
11
|
-
var _jsonMaker2 = _interopRequireDefault(_jsonMaker);
|
|
7
|
+
var _jsonMaker = _interopRequireDefault(require("./jsonMaker"));
|
|
12
8
|
|
|
13
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
let unitTestReport = [];
|
|
12
|
+
|
|
13
|
+
const result = inp => {
|
|
17
14
|
inp.endTime = Date.now();
|
|
18
|
-
|
|
15
|
+
let testPathPattern = process.argv[process.argv.length - 1];
|
|
16
|
+
|
|
19
17
|
if (testPathPattern.indexOf('--') !== -1) {
|
|
20
18
|
testPathPattern = '';
|
|
21
19
|
} else {
|
|
22
|
-
testPathPattern =
|
|
20
|
+
testPathPattern = _fs.default.realpathSync(process.cwd());
|
|
23
21
|
}
|
|
24
|
-
var testPathRegex = new RegExp(testPathPattern);
|
|
25
|
-
var testResults = inp.testResults;
|
|
26
22
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
+
|
|
30
31
|
if (!testPathRegex.test(filePath)) {
|
|
31
32
|
return;
|
|
32
33
|
}
|
|
34
|
+
|
|
33
35
|
filePath = filePath.replace('.spec', '');
|
|
34
36
|
filePath = filePath.replace('/__tests__', '');
|
|
35
37
|
filePath = filePath.replace('/__test__', '');
|
|
36
|
-
|
|
38
|
+
let fileJson = {};
|
|
37
39
|
fileJson.testPath = testResult.testFilePath;
|
|
38
40
|
fileJson.sourcePath = filePath;
|
|
39
41
|
fileJson.data = testResult;
|
|
40
42
|
testFilesArr.push(fileJson);
|
|
41
|
-
testResult.testResults && testResult.testResults.filter(
|
|
42
|
-
return t.status === 'failed';
|
|
43
|
-
}).forEach(function (t) {
|
|
43
|
+
testResult.testResults && testResult.testResults.filter(t => t.status === 'failed').forEach(t => {
|
|
44
44
|
unitTestReport.push({
|
|
45
45
|
title: t.title,
|
|
46
46
|
fullName: t.fullName,
|
|
@@ -49,52 +49,97 @@ var result = function result(inp) {
|
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
let coverageSummary = _fs.default.readFileSync('./coverage/coverage-summary.json').toString();
|
|
53
|
+
|
|
53
54
|
if (coverageSummary.indexOf('\\') !== -1) {
|
|
54
55
|
coverageSummary = coverageSummary.replace(/\\/g, '\\\\');
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
+
|
|
62
65
|
for (i; i < testFilesArr.length; i++) {
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
let curSourceFile = testFilesArr[i].sourcePath;
|
|
67
|
+
let coverageData = coverageJson[curSourceFile];
|
|
68
|
+
|
|
65
69
|
if (!coverageData) {
|
|
66
|
-
(0, _utils.log)(
|
|
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.`);
|
|
67
71
|
continue;
|
|
68
72
|
}
|
|
73
|
+
|
|
69
74
|
linesPercent += coverageData.lines.pct;
|
|
70
75
|
functionPercent += coverageData.functions.pct;
|
|
71
76
|
statementPerment += coverageData.statements.pct;
|
|
72
77
|
branchesPercent += coverageData.branches.pct;
|
|
73
78
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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);
|
|
80
86
|
coverage = Number(coverage);
|
|
81
|
-
(0,
|
|
87
|
+
(0, _jsonMaker.default)(inp, coverage, 'Yes', 'unitcase');
|
|
82
88
|
|
|
83
89
|
if (Number.isNaN(coverage)) {
|
|
84
90
|
(0, _utils.log)('This build does\'t have any JS changes!');
|
|
85
91
|
coverage = 0;
|
|
86
92
|
} else {
|
|
87
|
-
(0, _utils.log)(
|
|
93
|
+
(0, _utils.log)(`COVERAGE ${coverage}%`);
|
|
88
94
|
}
|
|
89
95
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
+
`;
|
|
93
137
|
|
|
94
|
-
if (!
|
|
95
|
-
|
|
138
|
+
if (!_fs.default.existsSync('./unittest')) {
|
|
139
|
+
_fs.default.mkdirSync('./unittest');
|
|
96
140
|
}
|
|
97
|
-
|
|
141
|
+
|
|
142
|
+
_fs.default.writeFileSync('./unittest/index.html', html, 'utf8');
|
|
98
143
|
|
|
99
144
|
return inp;
|
|
100
145
|
};
|
package/lib/jest/run.js
CHANGED
|
@@ -1,51 +1,49 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
var _jest = require(
|
|
3
|
+
var _jest = _interopRequireDefault(require("jest"));
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _utils = require("../utils");
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _jsonHelper = require("../utils/jsonHelper");
|
|
10
10
|
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
var _jsonHelper = require('../utils/jsonHelper');
|
|
14
|
-
|
|
15
|
-
var _coverageCollector = require('./coverageCollector');
|
|
16
|
-
|
|
17
|
-
var _coverageCollector2 = _interopRequireDefault(_coverageCollector);
|
|
11
|
+
var _coverageCollector = _interopRequireDefault(require("./coverageCollector"));
|
|
18
12
|
|
|
19
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
14
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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);
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
let config = require('../configs/jest.config');
|
|
33
32
|
|
|
34
|
-
var config = require('../configs/jest.config');
|
|
35
33
|
if (isCommitCoverage) {
|
|
36
|
-
(0,
|
|
37
|
-
var res = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
38
|
-
|
|
34
|
+
(0, _coverageCollector.default)(srcBranch, targetBranch, serviceName, impactServerDomain).then((res = {}) => {
|
|
39
35
|
if (res.STATUS) {
|
|
40
36
|
if (res.LIST.length > 0) {
|
|
41
|
-
|
|
37
|
+
let content = {
|
|
42
38
|
FILES: res.LIST
|
|
43
39
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
|
|
41
|
+
if (!_fs.default.existsSync('./coverageTest')) {
|
|
42
|
+
_fs.default.mkdirSync('./coverageTest');
|
|
43
|
+
|
|
44
|
+
_fs.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
|
|
47
45
|
} else {
|
|
48
|
-
|
|
46
|
+
_fs.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
|
|
49
47
|
}
|
|
50
48
|
|
|
51
49
|
argv.push('--findRelatedTests');
|
|
@@ -53,42 +51,44 @@ if (isCommitCoverage) {
|
|
|
53
51
|
argv = argv.concat(['--config', JSON.stringify(config(null, true))]);
|
|
54
52
|
argv.push('--no-cache');
|
|
55
53
|
argv.push('--silent');
|
|
56
|
-
|
|
54
|
+
|
|
55
|
+
_jest.default.run(argv);
|
|
57
56
|
} else {
|
|
58
|
-
(0, _jsonHelper.jsonHelper)(process.cwd()
|
|
59
|
-
// jsonHelper(
|
|
57
|
+
(0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'modifiedFileUnitCase', 'hasChanges'], false); // jsonHelper(
|
|
60
58
|
// `${process.cwd()}/result.json`,
|
|
61
59
|
// 'testInfo.isBuildVerified',
|
|
62
60
|
// true
|
|
63
61
|
// );
|
|
64
|
-
|
|
65
|
-
(0, _jsonHelper.
|
|
62
|
+
|
|
63
|
+
(0, _jsonHelper.setTestInfoStatus)(`${process.cwd()}/result.json`, true);
|
|
64
|
+
(0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, 'testInfo.failures', [{
|
|
66
65
|
type: 'modifiedUnitcases',
|
|
67
66
|
message: res.REASON
|
|
68
67
|
}]);
|
|
69
68
|
(0, _utils.log)('No JS changes with last changeset!');
|
|
70
69
|
}
|
|
71
70
|
} else {
|
|
72
|
-
(0, _jsonHelper.jsonHelper)(process.cwd()
|
|
73
|
-
// jsonHelper(
|
|
71
|
+
(0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'modifiedFileUnitCase', 'isExecuted'], res.STATUS); // jsonHelper(
|
|
74
72
|
// `${process.cwd()}/result.json`,
|
|
75
73
|
// 'testInfo.isBuildVerified',
|
|
76
74
|
// true
|
|
77
75
|
// );
|
|
78
|
-
|
|
79
|
-
// jsonHelper(`${process.cwd()}/result.json`, 'testInfo.failures', [{
|
|
76
|
+
|
|
77
|
+
(0, _jsonHelper.setTestInfoStatus)(`${process.cwd()}/result.json`, true); // jsonHelper(`${process.cwd()}/result.json`, 'testInfo.failures', [{
|
|
80
78
|
// type: 'modifiedUnitcases',
|
|
81
79
|
// message: res.REASON
|
|
82
80
|
// }]);
|
|
81
|
+
|
|
83
82
|
(0, _utils.log)(res.REASON);
|
|
84
83
|
}
|
|
85
84
|
});
|
|
86
85
|
} else {
|
|
87
86
|
if (branchName === 'master' || branchName === null) {
|
|
88
87
|
argv.push('--config', JSON.stringify(config(folder)), '--no-cache');
|
|
89
|
-
|
|
88
|
+
|
|
89
|
+
_jest.default.run(argv);
|
|
90
90
|
} else {
|
|
91
|
-
(0, _jsonHelper.jsonHelper)(process.cwd()
|
|
91
|
+
(0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'unitCase', 'isExecuted'], 'onlyMaster');
|
|
92
92
|
(0, _utils.log)('Only runs with master branch');
|
|
93
93
|
}
|
|
94
94
|
}
|
package/lib/jest/setup.js
CHANGED
|
@@ -1,201 +1,208 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _jsdom = require("jsdom");
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _testUtils = _interopRequireDefault(require("react-dom/test-utils"));
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _xhr = _interopRequireDefault(require("xhr2"));
|
|
14
14
|
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
18
|
-
|
|
19
|
-
var _reactDom = require('react-dom');
|
|
20
|
-
|
|
21
|
-
var _reactDom2 = _interopRequireDefault(_reactDom);
|
|
22
|
-
|
|
23
|
-
var _xhr = require('xhr2');
|
|
24
|
-
|
|
25
|
-
var _xhr2 = _interopRequireDefault(_xhr);
|
|
26
|
-
|
|
27
|
-
var _nock = require('nock');
|
|
28
|
-
|
|
29
|
-
var _nock2 = _interopRequireDefault(_nock);
|
|
15
|
+
var _nock = _interopRequireDefault(require("nock"));
|
|
30
16
|
|
|
31
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
32
18
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var mockDomain = 'htt' + 'p://zoho.com';
|
|
41
|
-
var document = new _jsdom.JSDOM('').window.document;
|
|
42
|
-
|
|
19
|
+
//$Id$//
|
|
20
|
+
let mockDomain = 'htt' + 'p://zoho.com';
|
|
21
|
+
const {
|
|
22
|
+
document
|
|
23
|
+
} = new _jsdom.JSDOM('').window;
|
|
43
24
|
global.document = document;
|
|
44
25
|
global.window = document.defaultView;
|
|
45
26
|
global.navigator = global.window.navigator;
|
|
46
27
|
global.localStorage = global.sessionStorage = {
|
|
47
|
-
getItem
|
|
28
|
+
getItem(key) {
|
|
48
29
|
return this[key];
|
|
49
30
|
},
|
|
50
|
-
|
|
31
|
+
|
|
32
|
+
setItem(key, value) {
|
|
51
33
|
if (value.length > 100) {
|
|
52
34
|
throw new Error('Data size is too exceeded');
|
|
53
35
|
}
|
|
36
|
+
|
|
54
37
|
this[key] = value;
|
|
55
38
|
},
|
|
56
|
-
|
|
39
|
+
|
|
40
|
+
removeItem(key) {
|
|
57
41
|
delete this[key];
|
|
58
42
|
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
43
|
+
|
|
44
|
+
clear() {
|
|
45
|
+
let keys = ['getItem', 'setItem', 'removeItem', 'clear'];
|
|
46
|
+
|
|
47
|
+
for (let key in this) {
|
|
62
48
|
if (keys.indexOf(key) === -1) {
|
|
63
49
|
delete this[key];
|
|
64
50
|
}
|
|
65
51
|
}
|
|
66
52
|
}
|
|
53
|
+
|
|
67
54
|
};
|
|
68
55
|
global.ZE_Init = {};
|
|
56
|
+
|
|
69
57
|
global.String.prototype.contains = function (text) {
|
|
70
58
|
return this.indexOf(text) != -1;
|
|
71
59
|
};
|
|
72
|
-
|
|
73
|
-
|
|
60
|
+
|
|
61
|
+
global.TestUtils = _testUtils.default;
|
|
62
|
+
let xmlReq = _xhr.default;
|
|
63
|
+
|
|
74
64
|
window.XMLHttpRequest = function () {
|
|
75
|
-
|
|
76
|
-
|
|
65
|
+
let xmlReqCopy = new xmlReq();
|
|
66
|
+
let originalOpen = xmlReqCopy.open;
|
|
67
|
+
|
|
77
68
|
xmlReqCopy.open = function () {
|
|
78
69
|
if (arguments[1].indexOf('http') != 0) {
|
|
79
70
|
arguments[1] = mockDomain + arguments[1];
|
|
80
71
|
}
|
|
72
|
+
|
|
81
73
|
return originalOpen.apply(this, arguments);
|
|
82
74
|
};
|
|
75
|
+
|
|
83
76
|
return xmlReqCopy;
|
|
84
77
|
};
|
|
85
78
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (
|
|
89
|
-
|
|
79
|
+
_testUtils.default.scryRenderedComponentsWithTestid = function (dom, name) {
|
|
80
|
+
let componentList = _testUtils.default.findAllInRenderedTree(dom, (i, j) => {
|
|
81
|
+
if (_testUtils.default.isDOMComponent(i)) {
|
|
82
|
+
let val = i.getAttribute('data-id');
|
|
83
|
+
|
|
90
84
|
if (typeof val !== 'undefined' && val == name) {
|
|
91
85
|
return true;
|
|
92
86
|
}
|
|
87
|
+
|
|
93
88
|
return false;
|
|
94
89
|
}
|
|
95
90
|
});
|
|
91
|
+
|
|
96
92
|
return componentList;
|
|
97
93
|
};
|
|
98
94
|
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
_testUtils.default.findRenderedComponentsWithTestid = function (dom, name) {
|
|
96
|
+
let list = _testUtils.default.scryRenderedComponentsWithTestid(dom, name);
|
|
97
|
+
|
|
101
98
|
if (list.length !== 1) {
|
|
102
|
-
throw new Error(
|
|
99
|
+
throw new Error(`Did not find exactly one match (found: ${list.length}) ` + `for data-id:${name}`);
|
|
103
100
|
}
|
|
101
|
+
|
|
104
102
|
return list[0];
|
|
105
103
|
};
|
|
106
104
|
|
|
107
105
|
global.render = function (Component, props) {
|
|
108
|
-
|
|
106
|
+
const renderedDOM = _testUtils.default.renderIntoDocument( /*#__PURE__*/_react.default.createElement(Component, props));
|
|
107
|
+
|
|
109
108
|
return {
|
|
110
|
-
props
|
|
111
|
-
renderedDOM
|
|
109
|
+
props,
|
|
110
|
+
renderedDOM
|
|
112
111
|
};
|
|
113
112
|
};
|
|
114
113
|
|
|
115
114
|
global.setup = function (Component, props, state) {
|
|
116
|
-
|
|
115
|
+
let router = {
|
|
117
116
|
router: {
|
|
118
|
-
push
|
|
119
|
-
|
|
117
|
+
push() {},
|
|
118
|
+
|
|
119
|
+
createHref(ob) {
|
|
120
120
|
return ob.pathname;
|
|
121
121
|
},
|
|
122
|
-
|
|
122
|
+
|
|
123
|
+
isActive() {
|
|
123
124
|
return true;
|
|
124
125
|
},
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
|
|
127
|
+
replace() {},
|
|
128
|
+
|
|
129
|
+
go() {},
|
|
130
|
+
|
|
131
|
+
goBack() {},
|
|
132
|
+
|
|
133
|
+
goForward() {},
|
|
134
|
+
|
|
135
|
+
setRouteLeaveHook() {},
|
|
136
|
+
|
|
137
|
+
getState() {}
|
|
138
|
+
|
|
131
139
|
},
|
|
132
140
|
store: {
|
|
133
|
-
getState
|
|
141
|
+
getState() {
|
|
134
142
|
return state;
|
|
135
143
|
}
|
|
144
|
+
|
|
136
145
|
}
|
|
137
|
-
};
|
|
138
|
-
// var store = {
|
|
146
|
+
}; // var store = {
|
|
139
147
|
// store:{
|
|
140
148
|
// getState:function(){return state;}
|
|
141
149
|
// }
|
|
142
150
|
// }
|
|
151
|
+
|
|
143
152
|
var Component = higherComponent(Component, router);
|
|
144
|
-
|
|
153
|
+
|
|
154
|
+
const renderedDOM = _testUtils.default.renderIntoDocument( /*#__PURE__*/_react.default.createElement(Component, props), router);
|
|
155
|
+
|
|
145
156
|
return {
|
|
146
|
-
props
|
|
147
|
-
renderedDOM
|
|
157
|
+
props,
|
|
158
|
+
renderedDOM
|
|
148
159
|
};
|
|
149
160
|
};
|
|
150
161
|
|
|
151
162
|
function higherComponent(ActualComponent, context) {
|
|
152
163
|
if (context) {
|
|
153
|
-
|
|
154
|
-
|
|
164
|
+
class HigherComponent extends _react.default.Component {
|
|
165
|
+
constructor() {
|
|
166
|
+
super();
|
|
167
|
+
}
|
|
155
168
|
|
|
156
|
-
|
|
157
|
-
|
|
169
|
+
getChildContext() {
|
|
170
|
+
return context;
|
|
171
|
+
}
|
|
158
172
|
|
|
159
|
-
|
|
173
|
+
render() {
|
|
174
|
+
return /*#__PURE__*/_react.default.createElement(ActualComponent, this.props);
|
|
160
175
|
}
|
|
161
176
|
|
|
162
|
-
|
|
163
|
-
key: 'getChildContext',
|
|
164
|
-
value: function getChildContext() {
|
|
165
|
-
return context;
|
|
166
|
-
}
|
|
167
|
-
}, {
|
|
168
|
-
key: 'render',
|
|
169
|
-
value: function render() {
|
|
170
|
-
return _react2.default.createElement(ActualComponent, this.props);
|
|
171
|
-
}
|
|
172
|
-
}]);
|
|
173
|
-
|
|
174
|
-
return HigherComponent;
|
|
175
|
-
}(_react2.default.Component);
|
|
177
|
+
}
|
|
176
178
|
|
|
177
179
|
HigherComponent.childContextTypes = {
|
|
178
|
-
router:
|
|
179
|
-
store:
|
|
180
|
+
router: _propTypes.default.any,
|
|
181
|
+
store: _propTypes.default.any
|
|
180
182
|
};
|
|
181
|
-
|
|
182
183
|
return HigherComponent;
|
|
183
184
|
}
|
|
185
|
+
|
|
184
186
|
return ActualComponent;
|
|
185
187
|
}
|
|
188
|
+
|
|
186
189
|
global.window.matchMedia = window.matchMedia || function () {
|
|
187
190
|
return {
|
|
188
191
|
matches: false,
|
|
189
|
-
|
|
190
|
-
|
|
192
|
+
|
|
193
|
+
addListener() {},
|
|
194
|
+
|
|
195
|
+
removeListener() {}
|
|
196
|
+
|
|
191
197
|
};
|
|
192
|
-
};
|
|
193
|
-
// global.renderHTML = function(comp) {
|
|
198
|
+
}; // global.renderHTML = function(comp) {
|
|
194
199
|
// return ReactDOM.findDOMNode(comp);
|
|
195
200
|
// };
|
|
196
201
|
|
|
197
|
-
|
|
202
|
+
|
|
203
|
+
global.TestUtils = _testUtils.default;
|
|
198
204
|
global.XMLHttpRequest = window.XMLHttpRequest;
|
|
205
|
+
|
|
199
206
|
global.getI18NValue = function (inp) {
|
|
200
207
|
return inp;
|
|
201
208
|
};
|