feat(M06-G): 增加真实硬件烟测运行器
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import {
|
||||
buildHardwareSmokeCases,
|
||||
loadHardwareSmokeConfig,
|
||||
runHardwareSmoke
|
||||
} from '../dist/devices/hardware-smoke-runner.js';
|
||||
|
||||
const config = loadHardwareSmokeConfig({
|
||||
QIPAI_HARDWARE_SMOKE_ENABLE: 'false',
|
||||
QIPAI_HARDWARE_SMOKE_ALLOW_ACTIONS: 'false',
|
||||
QIPAI_HARDWARE_CONTROL_BOX_DEVICE_ID: 'BOX_001',
|
||||
QIPAI_HARDWARE_SMART_SOCKET_DEVICE_ID: 'SOCKET_001'
|
||||
});
|
||||
const dryCases = buildHardwareSmokeCases(config);
|
||||
assert.deepEqual(dryCases.map((item) => item.id), [
|
||||
'control-box-basic-info',
|
||||
'smart-socket-work-info'
|
||||
]);
|
||||
assert.equal(dryCases.every((item) => item.destructive === false), true);
|
||||
|
||||
const actionCases = buildHardwareSmokeCases({
|
||||
...config,
|
||||
allowActions: true,
|
||||
subLockSubId: 'SUB001'
|
||||
});
|
||||
assert.equal(actionCases.some((item) => item.id === 'control-box-power-slot1-off'), true);
|
||||
assert.equal(actionCases.some((item) => item.id === 'sub-lock-open'), true);
|
||||
assert.equal(actionCases.some((item) => item.id === 'smart-socket-switch-off'), true);
|
||||
assert.equal(actionCases.some((item) => item.destructive), true);
|
||||
|
||||
const dryRun = await runHardwareSmoke(config, dryCases);
|
||||
assert.equal(dryRun.length, 2);
|
||||
assert.equal(dryRun.every((item) => item.status === 'DRY_RUN'), true);
|
||||
assert.equal(dryRun.every((item) => !String(item.reason).includes('password')), true);
|
||||
|
||||
const skipped = await runHardwareSmoke(loadHardwareSmokeConfig({}), []);
|
||||
assert.deepEqual(skipped, [{
|
||||
caseId: 'hardware-smoke-config',
|
||||
status: 'SKIP',
|
||||
reason: 'No DeviceID configured.'
|
||||
}]);
|
||||
|
||||
console.log('PASS: M06-G hardware smoke runner builds safe dry-run and action matrices.');
|
||||
Reference in New Issue
Block a user