node-os-utils 1.3.7 → 2.0.1-beta.2

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 (220) hide show
  1. package/README.md +1113 -237
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/package.json +99 -0
  4. package/dist/src/adapters/adapter-factory.d.ts +87 -0
  5. package/dist/src/adapters/adapter-factory.d.ts.map +1 -0
  6. package/dist/src/adapters/adapter-factory.js +272 -0
  7. package/dist/src/adapters/adapter-factory.js.map +1 -0
  8. package/dist/src/adapters/linux-adapter.d.ts +199 -0
  9. package/dist/src/adapters/linux-adapter.d.ts.map +1 -0
  10. package/dist/src/adapters/linux-adapter.js +1308 -0
  11. package/dist/src/adapters/linux-adapter.js.map +1 -0
  12. package/dist/src/adapters/macos-adapter.d.ts +232 -0
  13. package/dist/src/adapters/macos-adapter.d.ts.map +1 -0
  14. package/dist/src/adapters/macos-adapter.js +1144 -0
  15. package/dist/src/adapters/macos-adapter.js.map +1 -0
  16. package/dist/src/adapters/windows-adapter.d.ts +124 -0
  17. package/dist/src/adapters/windows-adapter.d.ts.map +1 -0
  18. package/dist/src/adapters/windows-adapter.js +601 -0
  19. package/dist/src/adapters/windows-adapter.js.map +1 -0
  20. package/dist/src/core/base-monitor.d.ts +107 -0
  21. package/dist/src/core/base-monitor.d.ts.map +1 -0
  22. package/dist/src/core/base-monitor.js +312 -0
  23. package/dist/src/core/base-monitor.js.map +1 -0
  24. package/dist/src/core/cache-manager.d.ts +157 -0
  25. package/dist/src/core/cache-manager.d.ts.map +1 -0
  26. package/dist/src/core/cache-manager.js +315 -0
  27. package/dist/src/core/cache-manager.js.map +1 -0
  28. package/dist/src/core/platform-adapter.d.ts +197 -0
  29. package/dist/src/core/platform-adapter.d.ts.map +1 -0
  30. package/dist/src/core/platform-adapter.js +244 -0
  31. package/dist/src/core/platform-adapter.js.map +1 -0
  32. package/dist/src/index.d.ts +205 -0
  33. package/dist/src/index.d.ts.map +1 -0
  34. package/dist/src/index.js +315 -0
  35. package/dist/src/index.js.map +1 -0
  36. package/dist/src/monitors/cpu-monitor.d.ts +139 -0
  37. package/dist/src/monitors/cpu-monitor.d.ts.map +1 -0
  38. package/dist/src/monitors/cpu-monitor.js +433 -0
  39. package/dist/src/monitors/cpu-monitor.js.map +1 -0
  40. package/dist/src/monitors/disk-monitor.d.ts +136 -0
  41. package/dist/src/monitors/disk-monitor.d.ts.map +1 -0
  42. package/dist/src/monitors/disk-monitor.js +465 -0
  43. package/dist/src/monitors/disk-monitor.js.map +1 -0
  44. package/dist/src/monitors/memory-monitor.d.ts +136 -0
  45. package/dist/src/monitors/memory-monitor.d.ts.map +1 -0
  46. package/dist/src/monitors/memory-monitor.js +443 -0
  47. package/dist/src/monitors/memory-monitor.js.map +1 -0
  48. package/dist/src/monitors/network-monitor.d.ts +166 -0
  49. package/dist/src/monitors/network-monitor.d.ts.map +1 -0
  50. package/dist/src/monitors/network-monitor.js +586 -0
  51. package/dist/src/monitors/network-monitor.js.map +1 -0
  52. package/dist/src/monitors/process-monitor.d.ts +142 -0
  53. package/dist/src/monitors/process-monitor.d.ts.map +1 -0
  54. package/dist/src/monitors/process-monitor.js +460 -0
  55. package/dist/src/monitors/process-monitor.js.map +1 -0
  56. package/dist/src/monitors/system-monitor.d.ts +173 -0
  57. package/dist/src/monitors/system-monitor.d.ts.map +1 -0
  58. package/dist/src/monitors/system-monitor.js +592 -0
  59. package/dist/src/monitors/system-monitor.js.map +1 -0
  60. package/dist/src/types/common.d.ts +135 -0
  61. package/dist/src/types/common.d.ts.map +1 -0
  62. package/dist/src/types/common.js +141 -0
  63. package/dist/src/types/common.js.map +1 -0
  64. package/dist/src/types/config.d.ts +288 -0
  65. package/dist/src/types/config.d.ts.map +1 -0
  66. package/dist/src/types/config.js +3 -0
  67. package/dist/src/types/config.js.map +1 -0
  68. package/dist/src/types/errors.d.ts +40 -0
  69. package/dist/src/types/errors.d.ts.map +1 -0
  70. package/dist/src/types/errors.js +67 -0
  71. package/dist/src/types/errors.js.map +1 -0
  72. package/dist/src/types/index.d.ts +16 -0
  73. package/dist/src/types/index.d.ts.map +1 -0
  74. package/dist/src/types/index.js +36 -0
  75. package/dist/src/types/index.js.map +1 -0
  76. package/dist/src/types/monitors.d.ts +623 -0
  77. package/dist/src/types/monitors.d.ts.map +1 -0
  78. package/dist/src/types/monitors.js +3 -0
  79. package/dist/src/types/monitors.js.map +1 -0
  80. package/dist/src/types/platform.d.ts +435 -0
  81. package/dist/src/types/platform.d.ts.map +1 -0
  82. package/dist/src/types/platform.js +3 -0
  83. package/dist/src/types/platform.js.map +1 -0
  84. package/dist/src/utils/command-executor.d.ts +58 -0
  85. package/dist/src/utils/command-executor.d.ts.map +1 -0
  86. package/dist/src/utils/command-executor.js +321 -0
  87. package/dist/src/utils/command-executor.js.map +1 -0
  88. package/dist/test/config/test-config.d.ts +301 -0
  89. package/dist/test/config/test-config.d.ts.map +1 -0
  90. package/dist/test/config/test-config.js +235 -0
  91. package/dist/test/config/test-config.js.map +1 -0
  92. package/dist/test/platform/linux.test.d.ts +6 -0
  93. package/dist/test/platform/linux.test.d.ts.map +1 -0
  94. package/dist/test/platform/linux.test.js +307 -0
  95. package/dist/test/platform/linux.test.js.map +1 -0
  96. package/dist/test/platform/macos.test.d.ts +6 -0
  97. package/dist/test/platform/macos.test.d.ts.map +1 -0
  98. package/dist/test/platform/macos.test.js +276 -0
  99. package/dist/test/platform/macos.test.js.map +1 -0
  100. package/dist/test/platform/windows.test.d.ts +6 -0
  101. package/dist/test/platform/windows.test.d.ts.map +1 -0
  102. package/dist/test/platform/windows.test.js +320 -0
  103. package/dist/test/platform/windows.test.js.map +1 -0
  104. package/dist/test/unit/adapters/adapter-factory.test.d.ts +2 -0
  105. package/dist/test/unit/adapters/adapter-factory.test.d.ts.map +1 -0
  106. package/dist/test/unit/adapters/adapter-factory.test.js +147 -0
  107. package/dist/test/unit/adapters/adapter-factory.test.js.map +1 -0
  108. package/dist/test/unit/adapters/linux-adapter.test.d.ts +2 -0
  109. package/dist/test/unit/adapters/linux-adapter.test.d.ts.map +1 -0
  110. package/dist/test/unit/adapters/linux-adapter.test.js +191 -0
  111. package/dist/test/unit/adapters/linux-adapter.test.js.map +1 -0
  112. package/dist/test/unit/adapters/macos-adapter.test.d.ts +2 -0
  113. package/dist/test/unit/adapters/macos-adapter.test.d.ts.map +1 -0
  114. package/dist/test/unit/adapters/macos-adapter.test.js +224 -0
  115. package/dist/test/unit/adapters/macos-adapter.test.js.map +1 -0
  116. package/dist/test/unit/adapters/windows-adapter.test.d.ts +2 -0
  117. package/dist/test/unit/adapters/windows-adapter.test.d.ts.map +1 -0
  118. package/dist/test/unit/adapters/windows-adapter.test.js +41 -0
  119. package/dist/test/unit/adapters/windows-adapter.test.js.map +1 -0
  120. package/dist/test/unit/core/base-monitor.test.d.ts +2 -0
  121. package/dist/test/unit/core/base-monitor.test.d.ts.map +1 -0
  122. package/dist/test/unit/core/base-monitor.test.js +157 -0
  123. package/dist/test/unit/core/base-monitor.test.js.map +1 -0
  124. package/dist/test/unit/core/cache-manager.test.d.ts +6 -0
  125. package/dist/test/unit/core/cache-manager.test.d.ts.map +1 -0
  126. package/dist/test/unit/core/cache-manager.test.js +127 -0
  127. package/dist/test/unit/core/cache-manager.test.js.map +1 -0
  128. package/dist/test/unit/core/platform-adapter.test.d.ts +2 -0
  129. package/dist/test/unit/core/platform-adapter.test.d.ts.map +1 -0
  130. package/dist/test/unit/core/platform-adapter.test.js +186 -0
  131. package/dist/test/unit/core/platform-adapter.test.js.map +1 -0
  132. package/dist/test/unit/index.test.d.ts +2 -0
  133. package/dist/test/unit/index.test.d.ts.map +1 -0
  134. package/dist/test/unit/index.test.js +183 -0
  135. package/dist/test/unit/index.test.js.map +1 -0
  136. package/dist/test/unit/monitors/cpu-monitor.test.d.ts +2 -0
  137. package/dist/test/unit/monitors/cpu-monitor.test.d.ts.map +1 -0
  138. package/dist/test/unit/monitors/cpu-monitor.test.js +166 -0
  139. package/dist/test/unit/monitors/cpu-monitor.test.js.map +1 -0
  140. package/dist/test/unit/monitors/disk-monitor.test.d.ts +2 -0
  141. package/dist/test/unit/monitors/disk-monitor.test.d.ts.map +1 -0
  142. package/dist/test/unit/monitors/disk-monitor.test.js +46 -0
  143. package/dist/test/unit/monitors/disk-monitor.test.js.map +1 -0
  144. package/dist/test/unit/monitors/memory-monitor.test.d.ts +2 -0
  145. package/dist/test/unit/monitors/memory-monitor.test.d.ts.map +1 -0
  146. package/dist/test/unit/monitors/memory-monitor.test.js +142 -0
  147. package/dist/test/unit/monitors/memory-monitor.test.js.map +1 -0
  148. package/dist/test/unit/monitors/network-monitor.test.d.ts +2 -0
  149. package/dist/test/unit/monitors/network-monitor.test.d.ts.map +1 -0
  150. package/dist/test/unit/monitors/network-monitor.test.js +22 -0
  151. package/dist/test/unit/monitors/network-monitor.test.js.map +1 -0
  152. package/dist/test/unit/monitors/process-monitor.test.d.ts +2 -0
  153. package/dist/test/unit/monitors/process-monitor.test.d.ts.map +1 -0
  154. package/dist/test/unit/monitors/process-monitor.test.js +165 -0
  155. package/dist/test/unit/monitors/process-monitor.test.js.map +1 -0
  156. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts +2 -0
  157. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts.map +1 -0
  158. package/dist/test/unit/monitors/system-monitor-macos.test.js +115 -0
  159. package/dist/test/unit/monitors/system-monitor-macos.test.js.map +1 -0
  160. package/dist/test/unit/monitors/system-monitor.test.d.ts +2 -0
  161. package/dist/test/unit/monitors/system-monitor.test.d.ts.map +1 -0
  162. package/dist/test/unit/monitors/system-monitor.test.js +70 -0
  163. package/dist/test/unit/monitors/system-monitor.test.js.map +1 -0
  164. package/dist/test/unit/types/common.test.d.ts +6 -0
  165. package/dist/test/unit/types/common.test.d.ts.map +1 -0
  166. package/dist/test/unit/types/common.test.js +139 -0
  167. package/dist/test/unit/types/common.test.js.map +1 -0
  168. package/dist/test/unit/types/config.test.d.ts +2 -0
  169. package/dist/test/unit/types/config.test.d.ts.map +1 -0
  170. package/dist/test/unit/types/config.test.js +9 -0
  171. package/dist/test/unit/types/config.test.js.map +1 -0
  172. package/dist/test/unit/types/errors.test.d.ts +6 -0
  173. package/dist/test/unit/types/errors.test.d.ts.map +1 -0
  174. package/dist/test/unit/types/errors.test.js +184 -0
  175. package/dist/test/unit/types/errors.test.js.map +1 -0
  176. package/dist/test/unit/types/index.test.d.ts +2 -0
  177. package/dist/test/unit/types/index.test.d.ts.map +1 -0
  178. package/dist/test/unit/types/index.test.js +39 -0
  179. package/dist/test/unit/types/index.test.js.map +1 -0
  180. package/dist/test/unit/types/monitors.test.d.ts +2 -0
  181. package/dist/test/unit/types/monitors.test.d.ts.map +1 -0
  182. package/dist/test/unit/types/monitors.test.js +9 -0
  183. package/dist/test/unit/types/monitors.test.js.map +1 -0
  184. package/dist/test/unit/types/platform.test.d.ts +2 -0
  185. package/dist/test/unit/types/platform.test.d.ts.map +1 -0
  186. package/dist/test/unit/types/platform.test.js +9 -0
  187. package/dist/test/unit/types/platform.test.js.map +1 -0
  188. package/dist/test/unit/utils/command-executor.test.d.ts +6 -0
  189. package/dist/test/unit/utils/command-executor.test.d.ts.map +1 -0
  190. package/dist/test/unit/utils/command-executor.test.js +153 -0
  191. package/dist/test/unit/utils/command-executor.test.js.map +1 -0
  192. package/dist/test/unit/utils/platform-specific.test.d.ts +2 -0
  193. package/dist/test/unit/utils/platform-specific.test.d.ts.map +1 -0
  194. package/dist/test/unit/utils/platform-specific.test.js +32 -0
  195. package/dist/test/unit/utils/platform-specific.test.js.map +1 -0
  196. package/dist/test/utils/platform-specific.d.ts +139 -0
  197. package/dist/test/utils/platform-specific.d.ts.map +1 -0
  198. package/dist/test/utils/platform-specific.js +306 -0
  199. package/dist/test/utils/platform-specific.js.map +1 -0
  200. package/dist/test/utils/test-base.d.ts +157 -0
  201. package/dist/test/utils/test-base.d.ts.map +1 -0
  202. package/dist/test/utils/test-base.js +316 -0
  203. package/dist/test/utils/test-base.js.map +1 -0
  204. package/package.json +78 -18
  205. package/.travis.yml +0 -7
  206. package/index.js +0 -17
  207. package/lib/bucket.js +0 -14
  208. package/lib/cpu.js +0 -94
  209. package/lib/drive.js +0 -113
  210. package/lib/exec.js +0 -28
  211. package/lib/mem.js +0 -176
  212. package/lib/netstat.js +0 -182
  213. package/lib/openfiles.js +0 -25
  214. package/lib/os.js +0 -148
  215. package/lib/osCmd.js +0 -20
  216. package/lib/proc.js +0 -38
  217. package/lib/users.js +0 -18
  218. package/test/test.js +0 -55
  219. package/util/co.js +0 -237
  220. package/util/index.js +0 -12
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ /**
3
+ * 错误处理单元测试
4
+ * 测试错误类型、错误码和错误处理机制
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const chai_1 = require("chai");
8
+ const errors_1 = require("../../../src/types/errors");
9
+ describe('Error Handling Unit Tests', function () {
10
+ describe('ErrorCode枚举', function () {
11
+ it('应该包含所有预期的错误码', function () {
12
+ const expectedCodes = [
13
+ 'PLATFORM_NOT_SUPPORTED',
14
+ 'COMMAND_FAILED',
15
+ 'PARSE_ERROR',
16
+ 'PERMISSION_DENIED',
17
+ 'TIMEOUT',
18
+ 'INVALID_CONFIG',
19
+ 'NOT_AVAILABLE',
20
+ 'FILE_NOT_FOUND',
21
+ 'NETWORK_ERROR'
22
+ ];
23
+ expectedCodes.forEach(code => {
24
+ (0, chai_1.expect)(errors_1.ErrorCode).to.have.property(code);
25
+ (0, chai_1.expect)(errors_1.ErrorCode[code]).to.be.a('string');
26
+ });
27
+ });
28
+ it('错误码应该是字符串类型', function () {
29
+ Object.values(errors_1.ErrorCode).forEach(code => {
30
+ (0, chai_1.expect)(code).to.be.a('string');
31
+ (0, chai_1.expect)(code.length).to.be.greaterThan(0);
32
+ });
33
+ });
34
+ });
35
+ describe('MonitorError创建', function () {
36
+ it('应该能够创建基本的MonitorError', function () {
37
+ const error = new errors_1.MonitorError('Test error message', errors_1.ErrorCode.COMMAND_FAILED, 'test-platform');
38
+ (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.COMMAND_FAILED);
39
+ (0, chai_1.expect)(error.message).to.equal('Test error message');
40
+ (0, chai_1.expect)(error.platform).to.equal('test-platform');
41
+ (0, chai_1.expect)(error.name).to.equal('MonitorError');
42
+ (0, chai_1.expect)(error).to.be.instanceof(Error);
43
+ });
44
+ it('应该能够创建包含详细信息的MonitorError', function () {
45
+ const details = {
46
+ command: 'ps aux',
47
+ exitCode: 1,
48
+ stderr: 'Permission denied'
49
+ };
50
+ const error = new errors_1.MonitorError('Failed to execute command', errors_1.ErrorCode.PERMISSION_DENIED, 'linux', details);
51
+ (0, chai_1.expect)(error.details).to.deep.equal(details);
52
+ (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.PERMISSION_DENIED);
53
+ (0, chai_1.expect)(error.platform).to.equal('linux');
54
+ });
55
+ });
56
+ describe('静态工厂方法', function () {
57
+ it('应该能够创建平台不支持错误', function () {
58
+ const error = errors_1.MonitorError.createPlatformNotSupported('win32', 'temperature');
59
+ (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.PLATFORM_NOT_SUPPORTED);
60
+ (0, chai_1.expect)(error.platform).to.equal('win32');
61
+ (0, chai_1.expect)(error.message).to.include('temperature');
62
+ (0, chai_1.expect)(error.details).to.have.property('feature', 'temperature');
63
+ });
64
+ it('应该能够创建命令执行失败错误', function () {
65
+ const error = errors_1.MonitorError.createCommandFailed('linux', 'ps aux', { exitCode: 1 });
66
+ (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.COMMAND_FAILED);
67
+ (0, chai_1.expect)(error.platform).to.equal('linux');
68
+ (0, chai_1.expect)(error.message).to.include('ps aux');
69
+ (0, chai_1.expect)(error.details).to.have.property('command', 'ps aux');
70
+ (0, chai_1.expect)(error.details).to.have.property('exitCode', 1);
71
+ });
72
+ it('应该能够创建解析错误', function () {
73
+ const error = errors_1.MonitorError.createParseError('darwin', 'invalid data', 'malformed JSON');
74
+ (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.PARSE_ERROR);
75
+ (0, chai_1.expect)(error.platform).to.equal('darwin');
76
+ (0, chai_1.expect)(error.message).to.include('malformed JSON');
77
+ (0, chai_1.expect)(error.details).to.have.property('data', 'invalid data');
78
+ (0, chai_1.expect)(error.details).to.have.property('reason', 'malformed JSON');
79
+ });
80
+ });
81
+ describe('错误序列化', function () {
82
+ it('应该能够序列化为JSON', function () {
83
+ const error = new errors_1.MonitorError('Serialization test', errors_1.ErrorCode.COMMAND_FAILED, 'test', { extra: 'data' });
84
+ const json = error.toJSON();
85
+ (0, chai_1.expect)(json).to.have.property('name', 'MonitorError');
86
+ (0, chai_1.expect)(json).to.have.property('message', 'Serialization test');
87
+ (0, chai_1.expect)(json).to.have.property('code', errors_1.ErrorCode.COMMAND_FAILED);
88
+ (0, chai_1.expect)(json).to.have.property('platform', 'test');
89
+ (0, chai_1.expect)(json).to.have.property('details');
90
+ (0, chai_1.expect)(json.details).to.deep.equal({ extra: 'data' });
91
+ });
92
+ it('应该能够完整序列化到JSON字符串', function () {
93
+ const error = new errors_1.MonitorError('JSON string test', errors_1.ErrorCode.TIMEOUT, 'network');
94
+ const jsonString = JSON.stringify(error);
95
+ const parsed = JSON.parse(jsonString);
96
+ (0, chai_1.expect)(parsed.name).to.equal('MonitorError');
97
+ (0, chai_1.expect)(parsed.message).to.equal('JSON string test');
98
+ (0, chai_1.expect)(parsed.code).to.equal(errors_1.ErrorCode.TIMEOUT);
99
+ (0, chai_1.expect)(parsed.platform).to.equal('network');
100
+ });
101
+ });
102
+ describe('错误比较和匹配', function () {
103
+ it('应该能够比较错误类型', function () {
104
+ const error1 = new errors_1.MonitorError('First error', errors_1.ErrorCode.TIMEOUT, 'cpu');
105
+ const error2 = new errors_1.MonitorError('Second error', errors_1.ErrorCode.TIMEOUT, 'memory');
106
+ const error3 = new errors_1.MonitorError('Third error', errors_1.ErrorCode.PERMISSION_DENIED, 'cpu');
107
+ (0, chai_1.expect)(error1.code).to.equal(error2.code);
108
+ (0, chai_1.expect)(error1.code).to.not.equal(error3.code);
109
+ (0, chai_1.expect)(error1.platform).to.equal(error3.platform);
110
+ (0, chai_1.expect)(error1.platform).to.not.equal(error2.platform);
111
+ });
112
+ it('应该能够匹配错误模式', function () {
113
+ const errors = [
114
+ new errors_1.MonitorError('CPU timeout', errors_1.ErrorCode.TIMEOUT, 'cpu'),
115
+ new errors_1.MonitorError('Memory access denied', errors_1.ErrorCode.PERMISSION_DENIED, 'memory'),
116
+ new errors_1.MonitorError('Disk command failed', errors_1.ErrorCode.COMMAND_FAILED, 'disk'),
117
+ new errors_1.MonitorError('Network timeout', errors_1.ErrorCode.TIMEOUT, 'network')
118
+ ];
119
+ // 找出所有超时错误
120
+ const timeoutErrors = errors.filter(error => error.code === errors_1.ErrorCode.TIMEOUT);
121
+ (0, chai_1.expect)(timeoutErrors).to.have.length(2);
122
+ // 找出所有CPU相关错误
123
+ const cpuErrors = errors.filter(error => error.platform === 'cpu');
124
+ (0, chai_1.expect)(cpuErrors).to.have.length(1);
125
+ (0, chai_1.expect)(cpuErrors[0].code).to.equal(errors_1.ErrorCode.TIMEOUT);
126
+ });
127
+ });
128
+ describe('边界情况', function () {
129
+ it('应该处理空消息', function () {
130
+ const error = new errors_1.MonitorError('', errors_1.ErrorCode.PARSE_ERROR, 'test');
131
+ (0, chai_1.expect)(error.message).to.equal('');
132
+ (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.PARSE_ERROR);
133
+ });
134
+ it('应该处理特殊字符', function () {
135
+ const specialMessage = 'Error with 特殊字符 and émojis 🚫';
136
+ const error = new errors_1.MonitorError(specialMessage, errors_1.ErrorCode.INVALID_CONFIG, 'test');
137
+ (0, chai_1.expect)(error.message).to.equal(specialMessage);
138
+ });
139
+ it('应该处理长错误消息', function () {
140
+ const longMessage = 'A'.repeat(1000);
141
+ const error = new errors_1.MonitorError(longMessage, errors_1.ErrorCode.COMMAND_FAILED, 'test');
142
+ (0, chai_1.expect)(error.message).to.equal(longMessage);
143
+ (0, chai_1.expect)(error.message.length).to.equal(1000);
144
+ });
145
+ it('应该处理复杂的详细信息对象', function () {
146
+ const complexDetails = {
147
+ nested: {
148
+ object: true,
149
+ array: [1, 2, 3],
150
+ null_value: null,
151
+ undefined_value: undefined
152
+ }
153
+ };
154
+ (0, chai_1.expect)(() => {
155
+ new errors_1.MonitorError('Complex details', errors_1.ErrorCode.INVALID_CONFIG, 'test', complexDetails);
156
+ }).to.not.throw();
157
+ });
158
+ });
159
+ describe('错误继承', function () {
160
+ it('应该正确继承Error类', function () {
161
+ const error = new errors_1.MonitorError('Inheritance test', errors_1.ErrorCode.COMMAND_FAILED, 'test');
162
+ (0, chai_1.expect)(error).to.be.instanceof(Error);
163
+ (0, chai_1.expect)(error).to.be.instanceof(errors_1.MonitorError);
164
+ (0, chai_1.expect)(error.name).to.equal('MonitorError');
165
+ (0, chai_1.expect)(error.stack).to.be.a('string');
166
+ });
167
+ });
168
+ describe('多语言错误消息', function () {
169
+ it('应该支持不同语言的错误消息', function () {
170
+ const messages = {
171
+ en: 'File not found',
172
+ zh: '文件未找到',
173
+ ja: 'ファイルが見つかりません',
174
+ fr: 'Fichier non trouvé'
175
+ };
176
+ Object.entries(messages).forEach(([lang, message]) => {
177
+ const error = new errors_1.MonitorError(message, errors_1.ErrorCode.FILE_NOT_FOUND, 'file-system');
178
+ (0, chai_1.expect)(error.message).to.equal(message);
179
+ (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.FILE_NOT_FOUND);
180
+ });
181
+ });
182
+ });
183
+ });
184
+ //# sourceMappingURL=errors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../../test/unit/types/errors.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/types/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const chai_1 = require("chai");
27
+ const Types = __importStar(require("../../../src/types"));
28
+ describe('类型聚合导出:types/index.ts', () => {
29
+ it('暴露 ErrorCode 与 MonitorError', () => {
30
+ (0, chai_1.expect)(Types.ErrorCode).to.have.property('PLATFORM_NOT_SUPPORTED');
31
+ (0, chai_1.expect)(typeof Types.MonitorError).to.equal('function');
32
+ });
33
+ it('导出 DataSize 等常用类型', () => {
34
+ (0, chai_1.expect)(typeof Types.DataSize).to.equal('function');
35
+ const size = new Types.DataSize(1024);
36
+ (0, chai_1.expect)(size.toKB()).to.equal(1);
37
+ });
38
+ });
39
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../test/unit/types/index.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAE9B,0DAA4C;AAE5C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,IAAA,aAAM,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACnE,IAAA,aAAM,EAAC,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,IAAA,aAAM,EAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=monitors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitors.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/types/monitors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ describe('类型定义:monitors.ts', () => {
5
+ it('编译期断言通过即可视为成功', () => {
6
+ (0, chai_1.expect)(true).to.be.true;
7
+ });
8
+ });
9
+ //# sourceMappingURL=monitors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitors.test.js","sourceRoot":"","sources":["../../../../test/unit/types/monitors.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAoC9B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=platform.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/types/platform.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ describe('类型定义:platform.ts', () => {
5
+ it('编译期断言通过即可视为成功', () => {
6
+ (0, chai_1.expect)(true).to.be.true;
7
+ });
8
+ });
9
+ //# sourceMappingURL=platform.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.test.js","sourceRoot":"","sources":["../../../../test/unit/types/platform.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAiC9B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CommandExecutor单元测试
3
+ * 测试命令执行器的核心功能和错误处理
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=command-executor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-executor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/utils/command-executor.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * CommandExecutor单元测试
4
+ * 测试命令执行器的核心功能和错误处理
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const chai_1 = require("chai");
8
+ const command_executor_1 = require("../../../src/utils/command-executor");
9
+ describe('CommandExecutor Unit Tests', function () {
10
+ let executor;
11
+ beforeEach(function () {
12
+ executor = new command_executor_1.CommandExecutor('test-platform', {
13
+ timeout: 5000,
14
+ encoding: 'utf8'
15
+ });
16
+ });
17
+ describe('基本命令执行', function () {
18
+ it('应该能够执行简单的系统命令', async function () {
19
+ // 使用跨平台兼容的命令
20
+ const command = process.platform === 'win32' ? 'echo hello' : 'echo "hello"';
21
+ const result = await executor.execute(command);
22
+ (0, chai_1.expect)(result.stdout.trim()).to.equal('hello');
23
+ (0, chai_1.expect)(result.stderr).to.equal('');
24
+ (0, chai_1.expect)(result.exitCode).to.equal(0);
25
+ (0, chai_1.expect)(result.platform).to.equal('test-platform');
26
+ (0, chai_1.expect)(result.command).to.equal(command);
27
+ (0, chai_1.expect)(result.executionTime).to.be.a('number');
28
+ });
29
+ it('应该正确处理命令执行失败', async function () {
30
+ try {
31
+ await executor.execute('nonexistent-command-12345');
32
+ // 如果没有抛出错误,则测试失败
33
+ chai_1.expect.fail('应该抛出错误');
34
+ }
35
+ catch (error) {
36
+ (0, chai_1.expect)(error).to.be.an('error');
37
+ // 检查是否是MonitorError
38
+ if (error.code) {
39
+ (0, chai_1.expect)(error.code).to.be.oneOf(['COMMAND_FAILED', 'FILE_NOT_FOUND']);
40
+ }
41
+ }
42
+ });
43
+ it('应该正确处理有stderr输出但成功的命令', async function () {
44
+ // 某些命令会向stderr输出信息但仍然成功
45
+ const command = process.platform === 'win32'
46
+ ? 'echo error>&2 & echo success'
47
+ : 'echo "error" >&2; echo "success"';
48
+ const result = await executor.execute(command);
49
+ (0, chai_1.expect)(result.stdout.trim()).to.include('success');
50
+ (0, chai_1.expect)(result.exitCode).to.equal(0);
51
+ });
52
+ });
53
+ describe('超时处理', function () {
54
+ it('应该在超时后终止命令', async function () {
55
+ this.timeout(3000); // 设置测试超时
56
+ const shortTimeout = new command_executor_1.CommandExecutor('test-platform', { timeout: 100 });
57
+ // 创建一个会运行较长时间的命令
58
+ const command = process.platform === 'win32'
59
+ ? 'ping -n 10 127.0.0.1'
60
+ : 'sleep 5';
61
+ try {
62
+ await shortTimeout.execute(command);
63
+ chai_1.expect.fail('应该抛出超时错误');
64
+ }
65
+ catch (error) {
66
+ (0, chai_1.expect)(error).to.be.an('error');
67
+ if (error.code) {
68
+ (0, chai_1.expect)(error.code).to.equal('TIMEOUT');
69
+ }
70
+ }
71
+ });
72
+ });
73
+ describe('输出处理', function () {
74
+ it('应该正确处理大量输出', async function () {
75
+ // 生成大量输出的命令
76
+ const command = process.platform === 'win32'
77
+ ? 'for /L %i in (1,1,10) do @echo Line %i'
78
+ : 'for i in {1..10}; do echo "Line $i"; done';
79
+ const result = await executor.execute(command);
80
+ const lines = result.stdout.trim().split('\n');
81
+ (0, chai_1.expect)(lines.length).to.be.at.least(5); // 至少有一些行
82
+ (0, chai_1.expect)(result.exitCode).to.equal(0);
83
+ });
84
+ it('应该正确处理空输出', async function () {
85
+ const command = process.platform === 'win32' ? 'echo.' : 'true';
86
+ const result = await executor.execute(command);
87
+ (0, chai_1.expect)(result.exitCode).to.equal(0);
88
+ });
89
+ });
90
+ describe('平台特定命令', function () {
91
+ it('应该能够执行平台特定的系统信息命令', async function () {
92
+ let command;
93
+ switch (process.platform) {
94
+ case 'darwin':
95
+ command = 'uname -s';
96
+ break;
97
+ case 'linux':
98
+ command = 'uname -s';
99
+ break;
100
+ case 'win32':
101
+ command = 'ver';
102
+ break;
103
+ default:
104
+ this.skip();
105
+ return;
106
+ }
107
+ const result = await executor.execute(command);
108
+ (0, chai_1.expect)(result.stdout).to.be.a('string');
109
+ (0, chai_1.expect)(result.stdout.length).to.be.greaterThan(0);
110
+ (0, chai_1.expect)(result.exitCode).to.equal(0);
111
+ });
112
+ });
113
+ describe('配置选项', function () {
114
+ it('应该使用自定义配置', async function () {
115
+ const customExecutor = new command_executor_1.CommandExecutor('custom-platform', {
116
+ timeout: 1000,
117
+ encoding: 'utf8'
118
+ });
119
+ const command = process.platform === 'win32' ? 'echo test' : 'echo "test"';
120
+ const result = await customExecutor.execute(command);
121
+ (0, chai_1.expect)(result.stdout.trim()).to.equal('test');
122
+ (0, chai_1.expect)(result.platform).to.equal('custom-platform');
123
+ });
124
+ });
125
+ describe('并发执行', function () {
126
+ it('应该能够并发执行多个命令', async function () {
127
+ const commands = [
128
+ process.platform === 'win32' ? 'echo 1' : 'echo "1"',
129
+ process.platform === 'win32' ? 'echo 2' : 'echo "2"',
130
+ process.platform === 'win32' ? 'echo 3' : 'echo "3"'
131
+ ];
132
+ const promises = commands.map(cmd => executor.execute(cmd));
133
+ const results = await Promise.all(promises);
134
+ results.forEach((result, index) => {
135
+ (0, chai_1.expect)(result.stdout.trim()).to.equal((index + 1).toString());
136
+ (0, chai_1.expect)(result.exitCode).to.equal(0);
137
+ });
138
+ });
139
+ });
140
+ describe('流式执行', function () {
141
+ it('应该在禁用 shell 时正确处理包含空格的命令', async function () {
142
+ const script = 'console.log("stream output")';
143
+ const command = executor.buildCommand(process.execPath, ['-e', script]);
144
+ const chunks = [];
145
+ const result = await executor.executeStream(command, (data) => {
146
+ chunks.push(data);
147
+ }, { shell: false });
148
+ (0, chai_1.expect)(result.exitCode).to.equal(0);
149
+ (0, chai_1.expect)(chunks.join('')).to.contain('stream output');
150
+ });
151
+ });
152
+ });
153
+ //# sourceMappingURL=command-executor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-executor.test.js","sourceRoot":"","sources":["../../../../test/unit/utils/command-executor.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=platform-specific.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-specific.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/utils/platform-specific.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const platform_specific_1 = require("../../utils/platform-specific");
5
+ describe('CrossPlatformValidator.validateSystemInfo', () => {
6
+ it('应该验证包含核心字段的macOS系统信息', () => {
7
+ const info = {
8
+ hostname: 'MacBook-Pro',
9
+ platform: 'darwin',
10
+ release: '23.4.0',
11
+ version: 'macOS 14.4',
12
+ arch: 'arm64',
13
+ uptime: 3600000,
14
+ uptimeSeconds: 3600,
15
+ bootTime: Date.now() - 3600000,
16
+ loadAverage: {
17
+ load1: 1.2,
18
+ load5: 0.8,
19
+ load15: 0.5
20
+ }
21
+ };
22
+ (0, chai_1.expect)(platform_specific_1.CrossPlatformValidator.validateSystemInfo(info)).to.be.true;
23
+ });
24
+ it('缺少必要字段时应该验证失败', () => {
25
+ const invalidInfo = {
26
+ platform: 'darwin',
27
+ release: '23.4.0'
28
+ };
29
+ (0, chai_1.expect)(platform_specific_1.CrossPlatformValidator.validateSystemInfo(invalidInfo)).to.be.false;
30
+ });
31
+ });
32
+ //# sourceMappingURL=platform-specific.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-specific.test.js","sourceRoot":"","sources":["../../../../test/unit/utils/platform-specific.test.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAE7B,qEAAsE;AAEtE,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,IAAI,GAAG;YACX,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAQ;YAChB,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAQ;YAC/B,WAAW,EAAE;gBACX,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;aACZ;SACF,CAAA;QAED,IAAA,aAAM,EAAC,0CAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,WAAW,GAAG;YAClB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,QAAQ;SAClB,CAAA;QAED,IAAA,aAAM,EAAC,0CAAsB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAA;IAC5E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}