biz-a-cli 2.3.68 → 2.3.70
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/bin/app.js +15 -3
- package/bin/directHubEvent.js +2 -2
- package/bin/hub.js +6 -6
- package/bin/hubEvent.js +79 -5
- package/envs/env.dev.js +1 -1
- package/envs/env.js +1 -0
- package/log/debug.log +0 -180
- package/log/error.log +0 -5
- package/log/info.log +0 -5
- package/package.json +1 -1
- package/tests/app.test.js +60 -3
- package/tests/hub.test.js +647 -484
- package/bin/log/debug.log +0 -5
- package/bin/log/error.log +0 -5
- package/bin/log/exception.log +0 -0
- package/bin/log/info.log +0 -5
package/bin/app.js
CHANGED
|
@@ -138,8 +138,18 @@ Object
|
|
|
138
138
|
}
|
|
139
139
|
process.chdir(workDir);
|
|
140
140
|
|
|
141
|
-
const child =
|
|
142
|
-
|
|
141
|
+
const child = process.platform === 'win32'
|
|
142
|
+
? spawn('cmd.exe', ['/d', '/s', '/c', 'npx', ...jestCommand])
|
|
143
|
+
: spawn('npx', jestCommand)
|
|
144
|
+
const collectOutput = data => {
|
|
145
|
+
output += data?.toString() || ''
|
|
146
|
+
}
|
|
147
|
+
child.stderr?.on('data', collectOutput)
|
|
148
|
+
child.stdout?.on('data', () => { }) // SCY BZ 4363, ref : https://nodejs.org/download/release/v22.19.0/docs/api/child_process.html
|
|
149
|
+
|
|
150
|
+
child.on('error', e => {
|
|
151
|
+
output += e?.message ? `\n${e.message}` : ''
|
|
152
|
+
});
|
|
143
153
|
child.on('close', async code => {
|
|
144
154
|
console.log('====================');
|
|
145
155
|
console.log(output);
|
|
@@ -253,4 +263,6 @@ Object
|
|
|
253
263
|
.strict()
|
|
254
264
|
.parse();
|
|
255
265
|
|
|
256
|
-
export { options, addCommandOptions, removeCommandOptions }
|
|
266
|
+
export { options, addCommandOptions, removeCommandOptions }
|
|
267
|
+
|
|
268
|
+
|
package/bin/directHubEvent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { clientListener, RECONNECT_SOCKET_DELAY } from './hubEvent.js'
|
|
2
2
|
import { deploymentListenerForVSCode } from './deployEvent.js'
|
|
3
3
|
import { Tunnel as QuickTunnel } from 'cloudflared'
|
|
4
4
|
import { Server as ioServer } from 'socket.io'
|
|
@@ -61,7 +61,7 @@ export function directHubEvent(serverSocket, argv){
|
|
|
61
61
|
|
|
62
62
|
if (clientSocket.handshake.query.isClient) {
|
|
63
63
|
setConnectListeners(clientSocket);
|
|
64
|
-
|
|
64
|
+
clientListener(clientSocket, argv);
|
|
65
65
|
clientSocket.join(CLIENT_ROOM);
|
|
66
66
|
}
|
|
67
67
|
else if (clientSocket.handshake.query.isDeploy) {
|
package/bin/hub.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
if (!process.env.NODE_ENV) {
|
|
4
4
|
process.env.NODE_ENV = 'production';
|
|
@@ -6,9 +6,9 @@ if (!process.env.NODE_ENV) {
|
|
|
6
6
|
|
|
7
7
|
import yargs from 'yargs';
|
|
8
8
|
import { io as ioClient } from "socket.io-client";
|
|
9
|
-
import { streamEvent, hubEvent, RECONNECT_SOCKET_DELAY } from './hubEvent.js'
|
|
9
|
+
import { streamEvent, hubEvent, RECONNECT_SOCKET_DELAY, status } from './hubEvent.js'
|
|
10
10
|
import { createLogger, transports, format } from "winston";
|
|
11
|
-
import os from '
|
|
11
|
+
import os from 'os';
|
|
12
12
|
import { directHubEvent, localhostTunnel, createSocketServer }from './directHubEvent.js'
|
|
13
13
|
import { env } from "../envs/env.js"
|
|
14
14
|
|
|
@@ -138,7 +138,7 @@ app.use('/cb', (req, res)=>{
|
|
|
138
138
|
});
|
|
139
139
|
|
|
140
140
|
app.use('/status', (req, res)=>{
|
|
141
|
-
res.status(200).json(argv
|
|
141
|
+
res.status(200).json(status(argv));
|
|
142
142
|
});
|
|
143
143
|
|
|
144
144
|
// create HTTP(s) Server
|
|
@@ -150,8 +150,8 @@ const getProtocol = ()=>(isHttps ? 'Https://' : 'Http://')
|
|
|
150
150
|
let server = isHttps ? https.createServer({key: fs.readFileSync(keyFile), cert: fs.readFileSync(certFile), ca: fs.readFileSync(rootFile),}, app) : http.createServer(app)
|
|
151
151
|
argv.cliAddress = ()=>{
|
|
152
152
|
const ip = Object.values(os.networkInterfaces()).flat().reduce((ip, {family, address, internal})=> ip || !internal && family==='IPv4' && address, undefined)
|
|
153
|
-
return {ip, port: argv.serverport, address: `${ip}:${argv.serverport}`, publicUrl: argv.connectedPublicUrl, hubUrl: argv.connectedHubUrl}
|
|
154
|
-
}
|
|
153
|
+
return {ip, port: argv.serverport, address: `${ip}:${argv.serverport}`, publicUrl: argv.connectedPublicUrl, hubUrl: argv.connectedHubUrl};
|
|
154
|
+
};
|
|
155
155
|
server.listen(argv.serverport, () => {
|
|
156
156
|
const info = argv.cliAddress()
|
|
157
157
|
console.log(`${new Date()}: CLI is listening at ${getProtocol() + (process.env.HOST || info.ip || 'localhost')}:${info.port} `);
|
package/bin/hubEvent.js
CHANGED
|
@@ -5,6 +5,8 @@ import { createRequire } from "module";
|
|
|
5
5
|
const require = createRequire(import.meta.url);
|
|
6
6
|
const ss = require('socket.io-stream'); //SCY: Temporary, next will be replaced with import
|
|
7
7
|
import { Transform } from 'node:stream'
|
|
8
|
+
import os from 'node:os';
|
|
9
|
+
const packageJson = require('../package.json');
|
|
8
10
|
// import { pipeline } from 'node:stream'
|
|
9
11
|
import { deploymentListenerForHubServer } from './deployEvent.js';
|
|
10
12
|
|
|
@@ -146,12 +148,14 @@ export const hubEvent = (socket, argv, notifier)=>{
|
|
|
146
148
|
socket.connect()
|
|
147
149
|
}
|
|
148
150
|
})
|
|
149
|
-
const logError = msg=>{console.log(`${new Date()}: ${getIdText(id)}connection error to BizA Hub. Error : ${msg}`)}
|
|
151
|
+
const logError = msg=>{console.log(`${new Date()}: ${getIdText(id)}connection error to BizA Hub at ${argv['hubServer']} using sub domain "${argv['subdomain']}". Error : ${msg}`)}
|
|
150
152
|
socket.on('connect_error', (error)=>{
|
|
153
|
+
// console.log('Connect Error :', error);
|
|
151
154
|
notifier('')
|
|
152
155
|
logError(error.message)
|
|
153
156
|
})
|
|
154
157
|
socket.on('error', (error)=>{
|
|
158
|
+
// console.log('Error :', error);
|
|
155
159
|
notifier('')
|
|
156
160
|
logError(error)
|
|
157
161
|
})
|
|
@@ -159,13 +163,69 @@ export const hubEvent = (socket, argv, notifier)=>{
|
|
|
159
163
|
notifier('')
|
|
160
164
|
console.log(`${new Date()}: ${getIdText(id)}reconnecting to BizA Hub`)
|
|
161
165
|
})
|
|
162
|
-
|
|
166
|
+
clientListener(socket, argv);
|
|
163
167
|
deploymentListenerForHubServer(socket, argv);
|
|
164
168
|
return socket
|
|
165
169
|
}
|
|
166
170
|
|
|
167
|
-
export const
|
|
168
|
-
|
|
171
|
+
export const status = (argv)=>{
|
|
172
|
+
const cliAddress = argv.cliAddress();
|
|
173
|
+
const cpuArchitecture = os.arch();
|
|
174
|
+
const osArchitecture = (['x64', 'arm64', 'ppc64', 's390x'].includes(cpuArchitecture)) ? '64-bit' : (['ia32', 'arm', 'mips', 'mipsel', 's390'].includes(cpuArchitecture)) ? '32-bit' : `Unknown CPU architecture: ${cpuArchitecture}`;
|
|
175
|
+
const totalMemory = os.totalmem();
|
|
176
|
+
const freeMemory = os.freemem();
|
|
177
|
+
const usedMemoy = totalMemory - freeMemory;
|
|
178
|
+
const getUptime = ()=>{
|
|
179
|
+
let totalSeconds = Math.floor(process.uptime());
|
|
180
|
+
const days = Math.floor(totalSeconds / (24 * 3600));
|
|
181
|
+
totalSeconds %= (24 * 3600); // Remaining seconds after calculating days
|
|
182
|
+
|
|
183
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
184
|
+
totalSeconds %= 3600; // Remaining seconds after calculating hours
|
|
185
|
+
|
|
186
|
+
const minutes = Math.floor(totalSeconds / 60);
|
|
187
|
+
const seconds = totalSeconds % 60; // Remaining seconds after calculating minutes
|
|
188
|
+
|
|
189
|
+
return {
|
|
190
|
+
days: days,
|
|
191
|
+
hours: hours,
|
|
192
|
+
minutes: minutes,
|
|
193
|
+
seconds: seconds
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
return {
|
|
198
|
+
cli: {
|
|
199
|
+
address: cliAddress.address,
|
|
200
|
+
publicUrl: cliAddress.publicUrl,
|
|
201
|
+
hubUrl: cliAddress.hubUrl,
|
|
202
|
+
version: packageJson.version,
|
|
203
|
+
mode: process.env.NODE_ENV,
|
|
204
|
+
memoryUsage: `${(process.memoryUsage().rss / (1024 * 1024)).toFixed(2)} MB`,
|
|
205
|
+
nodeVersion: process.version,
|
|
206
|
+
uptime: getUptime()
|
|
207
|
+
},
|
|
208
|
+
api: {
|
|
209
|
+
address: `${argv.hostname}:${argv.port}`,
|
|
210
|
+
dbIndex: argv.dbindex,
|
|
211
|
+
},
|
|
212
|
+
os: {
|
|
213
|
+
name: os.type(),
|
|
214
|
+
architecture: osArchitecture,
|
|
215
|
+
cpuCount: os.cpus().length,
|
|
216
|
+
platform: os.platform(),
|
|
217
|
+
memory: {
|
|
218
|
+
total: (totalMemory / (1024 * 1024 * 1024)).toFixed(2) + ' GB',
|
|
219
|
+
free: (freeMemory / (1024 * 1024 * 1024)).toFixed(2) + ' GB',
|
|
220
|
+
used: (usedMemoy / (1024 * 1024 * 1024)).toFixed(2) + ' GB',
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
export const clientListener = (socket, argv)=>{
|
|
227
|
+
socket
|
|
228
|
+
.on('apiRequest', (reqData, resCB)=>{
|
|
169
229
|
let apiAddress = `${argv['secure']==true ? 'https://' : 'http://'}${argv['hostname']}:${argv['port']}`
|
|
170
230
|
let reqBody = reqData.body
|
|
171
231
|
try{
|
|
@@ -217,4 +277,18 @@ export const apiRequestListener = (socket, argv)=>{
|
|
|
217
277
|
resCB({status: 401, statusText: 'bad subdomain', url: apiAddress + reqData.path}, null)
|
|
218
278
|
}
|
|
219
279
|
})
|
|
220
|
-
|
|
280
|
+
.on('cliCommand', async (data, cb)=>{
|
|
281
|
+
try {
|
|
282
|
+
const command = data.command.trim().toLowerCase();
|
|
283
|
+
switch (command) { //ensure case insensitive
|
|
284
|
+
case 'status':
|
|
285
|
+
cb(null, status(argv));
|
|
286
|
+
break;
|
|
287
|
+
default:
|
|
288
|
+
cb(`Unknown CLI command '${command}'`, null);
|
|
289
|
+
};
|
|
290
|
+
} catch (err) {
|
|
291
|
+
cb(err.message || err, null);
|
|
292
|
+
};
|
|
293
|
+
});
|
|
294
|
+
};
|
package/envs/env.dev.js
CHANGED
|
@@ -6,5 +6,5 @@ export const envDev = {
|
|
|
6
6
|
encodeURIComponent('imm@2019') + '@imm-cdm-dev.rf6wr.mongodb.net/?retryWrites=true&w=majority',
|
|
7
7
|
COMPANY_REGISTER: 'companyregister-dev',
|
|
8
8
|
BIZA_SERVER_LINK: 'https://biz-a-dev-41e7c93a25e5.herokuapp.com',
|
|
9
|
-
BIZA_HUB_SERVER_LINK: 'https://hub.biz-a.id'
|
|
9
|
+
BIZA_HUB_SERVER_LINK: 'https://hub.biz-a.id' // https://biz-a-hub-ed77b066db87.herokuapp.com/
|
|
10
10
|
};
|
package/envs/env.js
CHANGED
package/log/debug.log
CHANGED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
{"level":"debug","message":"====================================="}
|
|
3
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 22:33:54 callbackprocess_id: 526"}
|
|
4
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.051 seconds"}
|
|
5
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 0.802 seconds"}
|
|
6
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.036 seconds"}
|
|
7
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.057 seconds"}
|
|
8
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.022 seconds"}
|
|
9
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 1.882 seconds"}
|
|
10
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.609 seconds"}
|
|
11
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 22:33:58 callbackprocess_id: 526"}
|
|
12
|
-
{"level":"debug","message":"====================================="}
|
|
13
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 22:35:30 callbackprocess_id: 526"}
|
|
14
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.079 seconds"}
|
|
15
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.175 seconds"}
|
|
16
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.047 seconds"}
|
|
17
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.209 seconds"}
|
|
18
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.044 seconds"}
|
|
19
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.237 seconds"}
|
|
20
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.986 seconds"}
|
|
21
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 22:35:36 callbackprocess_id: 526"}
|
|
22
|
-
{"level":"debug","message":"====================================="}
|
|
23
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 22:59:50 callbackprocess_id: 526"}
|
|
24
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.055 seconds"}
|
|
25
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 0.796 seconds"}
|
|
26
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.045 seconds"}
|
|
27
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.211 seconds"}
|
|
28
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.043 seconds"}
|
|
29
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 3.48 seconds"}
|
|
30
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.784 seconds"}
|
|
31
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 22:59:56 callbackprocess_id: 526"}
|
|
32
|
-
{"level":"debug","message":"====================================="}
|
|
33
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:01:02 callbackprocess_id: 526"}
|
|
34
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.071 seconds"}
|
|
35
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 0.813 seconds"}
|
|
36
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.039 seconds"}
|
|
37
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.188 seconds"}
|
|
38
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.039 seconds"}
|
|
39
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 3.149 seconds"}
|
|
40
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.819 seconds"}
|
|
41
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:01:08 callbackprocess_id: 526"}
|
|
42
|
-
{"level":"debug","message":"====================================="}
|
|
43
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:02:49 callbackprocess_id: 526"}
|
|
44
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.047 seconds"}
|
|
45
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 0.794 seconds"}
|
|
46
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.043 seconds"}
|
|
47
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.218 seconds"}
|
|
48
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.045 seconds"}
|
|
49
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.935 seconds"}
|
|
50
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.862 seconds"}
|
|
51
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:02:55 callbackprocess_id: 526"}
|
|
52
|
-
{"level":"debug","message":"====================================="}
|
|
53
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:04:14 callbackprocess_id: 526"}
|
|
54
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.047 seconds"}
|
|
55
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 0.855 seconds"}
|
|
56
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.047 seconds"}
|
|
57
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.2 seconds"}
|
|
58
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.037 seconds"}
|
|
59
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 3.311 seconds"}
|
|
60
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.786 seconds"}
|
|
61
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:04:20 callbackprocess_id: 526"}
|
|
62
|
-
{"level":"debug","message":"====================================="}
|
|
63
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:05:01 callbackprocess_id: 526"}
|
|
64
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.095 seconds"}
|
|
65
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.055 seconds"}
|
|
66
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.044 seconds"}
|
|
67
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.181 seconds"}
|
|
68
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.043 seconds"}
|
|
69
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 4.269 seconds"}
|
|
70
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 2.077 seconds"}
|
|
71
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:05:09 callbackprocess_id: 526"}
|
|
72
|
-
{"level":"debug","message":"====================================="}
|
|
73
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:07:50 callbackprocess_id: 526"}
|
|
74
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.057 seconds"}
|
|
75
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 0.868 seconds"}
|
|
76
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.045 seconds"}
|
|
77
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.205 seconds"}
|
|
78
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.048 seconds"}
|
|
79
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.89 seconds"}
|
|
80
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.838 seconds"}
|
|
81
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:07:56 callbackprocess_id: 526"}
|
|
82
|
-
{"level":"debug","message":"====================================="}
|
|
83
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:09:49 callbackprocess_id: 526"}
|
|
84
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.092 seconds"}
|
|
85
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.15 seconds"}
|
|
86
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.038 seconds"}
|
|
87
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.176 seconds"}
|
|
88
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.039 seconds"}
|
|
89
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 4.005 seconds"}
|
|
90
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 2.016 seconds"}
|
|
91
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:09:57 callbackprocess_id: 526"}
|
|
92
|
-
{"level":"debug","message":"====================================="}
|
|
93
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:11:17 callbackprocess_id: 526"}
|
|
94
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.089 seconds"}
|
|
95
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.193 seconds"}
|
|
96
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.039 seconds"}
|
|
97
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.182 seconds"}
|
|
98
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.053 seconds"}
|
|
99
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 4.184 seconds"}
|
|
100
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 2.037 seconds"}
|
|
101
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:11:25 callbackprocess_id: 526"}
|
|
102
|
-
{"level":"debug","message":"====================================="}
|
|
103
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:12:43 callbackprocess_id: 526"}
|
|
104
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.082 seconds"}
|
|
105
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.245 seconds"}
|
|
106
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.035 seconds"}
|
|
107
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.179 seconds"}
|
|
108
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.036 seconds"}
|
|
109
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 4.719 seconds"}
|
|
110
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.911 seconds"}
|
|
111
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:12:51 callbackprocess_id: 526"}
|
|
112
|
-
{"level":"debug","message":"====================================="}
|
|
113
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:19:24 callbackprocess_id: 526"}
|
|
114
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.089 seconds"}
|
|
115
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.143 seconds"}
|
|
116
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.041 seconds"}
|
|
117
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.213 seconds"}
|
|
118
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.042 seconds"}
|
|
119
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.086 seconds"}
|
|
120
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 30.016 seconds"}
|
|
121
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:19:58 callbackprocess_id: 526"}
|
|
122
|
-
{"level":"debug","message":"====================================="}
|
|
123
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:21:51 callbackprocess_id: 526"}
|
|
124
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.078 seconds"}
|
|
125
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.09 seconds"}
|
|
126
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.035 seconds"}
|
|
127
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.189 seconds"}
|
|
128
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.037 seconds"}
|
|
129
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.018 seconds"}
|
|
130
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 4.144 seconds"}
|
|
131
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:21:59 callbackprocess_id: 526"}
|
|
132
|
-
{"level":"debug","message":"====================================="}
|
|
133
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:23:37 callbackprocess_id: 526"}
|
|
134
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.092 seconds"}
|
|
135
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.105 seconds"}
|
|
136
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.037 seconds"}
|
|
137
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.174 seconds"}
|
|
138
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.037 seconds"}
|
|
139
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.036 seconds"}
|
|
140
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 5.681 seconds"}
|
|
141
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:23:47 callbackprocess_id: 526"}
|
|
142
|
-
{"level":"debug","message":"====================================="}
|
|
143
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:26:51 callbackprocess_id: 526"}
|
|
144
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.086 seconds"}
|
|
145
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 1.134 seconds"}
|
|
146
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.041 seconds"}
|
|
147
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.204 seconds"}
|
|
148
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.038 seconds"}
|
|
149
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.012 seconds"}
|
|
150
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 4.26 seconds"}
|
|
151
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:26:58 callbackprocess_id: 526"}
|
|
152
|
-
{"level":"debug","message":"====================================="}
|
|
153
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:30:47 callbackprocess_id: 526"}
|
|
154
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.085 seconds"}
|
|
155
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 24.544 seconds"}
|
|
156
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.037 seconds"}
|
|
157
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.178 seconds"}
|
|
158
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.043 seconds"}
|
|
159
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 1.185 seconds"}
|
|
160
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 0.002 seconds"}
|
|
161
|
-
{"level":"debug","message":"====================================="}
|
|
162
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:32:38 callbackprocess_id: 526"}
|
|
163
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.084 seconds"}
|
|
164
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 3.4 seconds"}
|
|
165
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.1 seconds"}
|
|
166
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.191 seconds"}
|
|
167
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.037 seconds"}
|
|
168
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.231 seconds"}
|
|
169
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 1.976 seconds"}
|
|
170
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:32:46 callbackprocess_id: 526"}
|
|
171
|
-
{"level":"debug","message":"====================================="}
|
|
172
|
-
{"level":"debug","message":"Mulai proses hasil produksi 2025-08-03 23:36:43 callbackprocess_id: 526"}
|
|
173
|
-
{"level":"debug","message":"scheduleid: 122405 createRequestRM succeed 0.079 seconds"}
|
|
174
|
-
{"level":"debug","message":"scheduleid: 122405 saveRMOutMarshal succeed 2.799 seconds"}
|
|
175
|
-
{"level":"debug","message":"scheduleid: 122405 saveStartProductionMarshal succeed 0.049 seconds"}
|
|
176
|
-
{"level":"debug","message":"scheduleid: 122405 saveProdResultMarshal succeed 0.193 seconds"}
|
|
177
|
-
{"level":"debug","message":"scheduleid: 122405 saveQC succeed 0.041 seconds"}
|
|
178
|
-
{"level":"debug","message":"scheduleid: 122405 saveFGInMarshal succeed 2.241 seconds"}
|
|
179
|
-
{"level":"debug","message":"scheduleid: 122405 saveCloseWOMarshal succeed 2.052 seconds"}
|
|
180
|
-
{"level":"debug","message":"Selesai proses hasil produksi 2025-08-03 23:36:50 callbackprocess_id: 526"}
|
package/log/error.log
CHANGED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
2
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
3
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
4
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
5
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
package/log/info.log
CHANGED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
2
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
3
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
4
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
|
5
|
-
{"level":"error","message":"Unhandled Rejection: Error: connect ECONNREFUSED 127.0.0.1:212","stack":"Error: Error: connect ECONNREFUSED 127.0.0.1:212\n at runCliScript (file:///C:/SourceCode/biz-a/cli/callbackController.js:40:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}
|
package/package.json
CHANGED
package/tests/app.test.js
CHANGED
|
@@ -418,7 +418,11 @@ describe('Biz-A Apps CLI', () => {
|
|
|
418
418
|
|
|
419
419
|
function continueExpect(args) {
|
|
420
420
|
expect(process.cwd()).toBe(absoluteFullTestPath);
|
|
421
|
-
|
|
421
|
+
if (process.platform === "win32") {
|
|
422
|
+
expect(child_process.spawn).toBeCalledWith("cmd.exe", ["/d", "/s", "/c", "npx", ...args]);
|
|
423
|
+
} else {
|
|
424
|
+
expect(child_process.spawn).toBeCalledWith("npx", args);
|
|
425
|
+
}
|
|
422
426
|
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL - 2][0]).toBe('====================');
|
|
423
427
|
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL - 1][0]).toBe(jestMessage);
|
|
424
428
|
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL][0]).toBe('====================');
|
|
@@ -427,7 +431,11 @@ describe('Biz-A Apps CLI', () => {
|
|
|
427
431
|
|
|
428
432
|
function abortExpect(args) {
|
|
429
433
|
expect(process.cwd()).toBe(absoluteFullTestPath);
|
|
430
|
-
|
|
434
|
+
if (process.platform === "win32") {
|
|
435
|
+
expect(child_process.spawn).toBeCalledWith("cmd.exe", ["/d", "/s", "/c", "npx", ...args]);
|
|
436
|
+
} else {
|
|
437
|
+
expect(child_process.spawn).toBeCalledWith("npx", args);
|
|
438
|
+
}
|
|
431
439
|
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL][0]).toBe('====================');
|
|
432
440
|
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL + 1][0]).toBe(jestMessage);
|
|
433
441
|
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL + 2][0]).toBe('====================');
|
|
@@ -536,6 +544,51 @@ describe('Biz-A Apps CLI', () => {
|
|
|
536
544
|
|
|
537
545
|
continueExpect(jestArgsWithPassNoTest);
|
|
538
546
|
})
|
|
547
|
+
|
|
548
|
+
it('Shall continue add biz a template, stdout exists and must be consumed for many unit test outputs', async () => {
|
|
549
|
+
returnedCode = 0;
|
|
550
|
+
const stdoutChunks = Array(300).fill('Passed');
|
|
551
|
+
let stdoutConsumed = false;
|
|
552
|
+
|
|
553
|
+
child_process.spawn.mockImplementationOnce(() => ({
|
|
554
|
+
on: jest.fn((event, callback) => {
|
|
555
|
+
if ((event === 'close') && stdoutConsumed) callback(returnedCode)
|
|
556
|
+
}),
|
|
557
|
+
stderr: {
|
|
558
|
+
on: jest.fn()
|
|
559
|
+
},
|
|
560
|
+
stdout: {
|
|
561
|
+
on: jest.fn((event, callback) => {
|
|
562
|
+
if (event === 'data') {
|
|
563
|
+
stdoutConsumed = true;
|
|
564
|
+
for (const chunk of stdoutChunks) {
|
|
565
|
+
callback(chunk)
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
})
|
|
569
|
+
}
|
|
570
|
+
}))
|
|
571
|
+
|
|
572
|
+
mockValidTemplates(appName, mockScripts);
|
|
573
|
+
fs.mkdirSync(fullTestPath + '/test', { recursive: true })
|
|
574
|
+
fs.writeFileSync(fullTestPath + '/test/a.test.js', `it('dummy test', () => {
|
|
575
|
+
expect(true).toBe(true);
|
|
576
|
+
})`)
|
|
577
|
+
|
|
578
|
+
await runJest();
|
|
579
|
+
|
|
580
|
+
expect(stdoutConsumed).toBe(true);
|
|
581
|
+
expect(process.cwd()).toBe(absoluteFullTestPath);
|
|
582
|
+
if (process.platform === "win32") {
|
|
583
|
+
expect(child_process.spawn).toBeCalledWith("cmd.exe", ["/d", "/s", "/c", "npx", ...jestArgs]);
|
|
584
|
+
} else {
|
|
585
|
+
expect(child_process.spawn).toBeCalledWith("npx", jestArgs);
|
|
586
|
+
}
|
|
587
|
+
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL - 2][0]).toBe('====================');
|
|
588
|
+
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL - 1][0]).toBe('');
|
|
589
|
+
expect(logSpy.mock.calls[logSpy.mock.calls.length - JEST_MESSAGE_TOTAL][0]).toBe('====================');
|
|
590
|
+
expect(errorSpy.mock.calls.length).toBe(0);
|
|
591
|
+
})
|
|
539
592
|
})
|
|
540
593
|
})
|
|
541
594
|
|
|
@@ -643,4 +696,8 @@ describe('Biz-A Apps CLI', () => {
|
|
|
643
696
|
}
|
|
644
697
|
})
|
|
645
698
|
})
|
|
646
|
-
})
|
|
699
|
+
})
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
|