smoke.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env node
  2. const path = require('path');
  3. const { runMeasurementMarkerCheck } = require('../tools/measurement-marker-check-run');
  4. async function main() {
  5. const output = path.resolve(__dirname, '..', 'outputs', 'measurement-marker-smoke');
  6. const sample = await runMeasurementMarkerCheck({
  7. sample: true,
  8. output
  9. });
  10. if (sample.status !== 'ok') {
  11. throw new Error(`sample failed: ${sample.status}`);
  12. }
  13. if (!sample.summary || sample.summary.missingCount < 1) {
  14. throw new Error('sample did not report missing markers');
  15. }
  16. if (!Array.isArray(sample.files) || sample.files.length < 2) {
  17. throw new Error('sample did not write report files');
  18. }
  19. const needsVision = await runMeasurementMarkerCheck({
  20. image: 'demo-measurement.jpg'
  21. });
  22. if (needsVision.status !== 'needs_vision_observation') {
  23. throw new Error(`expected needs_vision_observation, got: ${needsVision.status}`);
  24. }
  25. console.log(JSON.stringify({
  26. status: 'ok',
  27. checks: [
  28. 'sample report',
  29. 'missing marker count',
  30. 'report files',
  31. 'needs vision observation guard'
  32. ],
  33. missingCount: sample.summary.missingCount,
  34. uncertainCount: sample.summary.uncertainCount,
  35. files: sample.files
  36. }, null, 2));
  37. }
  38. main().catch(error => {
  39. console.error(JSON.stringify({
  40. status: 'error',
  41. message: error.message
  42. }, null, 2));
  43. process.exit(1);
  44. });