Skip to content

Commit dd8c5e0

Browse files
committed
🚨 feat(middleware-test-runner): require --spec parameter, validate input, and update help/README.
1 parent 2fee4c5 commit dd8c5e0

File tree

3 files changed

+36
-24
lines changed

3 files changed

+36
-24
lines changed

machines/middleware-test-runner/README.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,35 +14,32 @@ A state machine-based test runner for executing acceptance criteria tests define
1414

1515
### Basic Usage
1616
```bash
17-
# Run all tests in the default spec file
18-
ddev exec machines/middleware-test-runner/run.sh
17+
# Run tests (--spec parameter is required)
18+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/core/region.yaml
1919

2020
# Or directly via PHP
21-
ddev exec php machines/middleware-test-runner/machine.php
21+
ddev exec php machines/middleware-test-runner/machine.php --spec=specs/core/region.yaml
2222
```
2323

2424
### Command Line Options
2525

2626
```bash
2727
# Show only errors (quiet mode)
28-
ddev exec machines/middleware-test-runner/run.sh --quiet
29-
ddev exec machines/middleware-test-runner/run.sh -q
28+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/chain/middleware.yaml --quiet
29+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/chain/middleware.yaml -q
3030

3131
# Show detailed output including test outputs (verbose mode)
32-
ddev exec machines/middleware-test-runner/run.sh --verbose
33-
ddev exec machines/middleware-test-runner/run.sh -v
32+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/core/region.yaml --verbose
33+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/core/region.yaml -v
3434

3535
# Stop on first failure
36-
ddev exec machines/middleware-test-runner/run.sh --stop-on-failure
37-
38-
# Run tests from a specific spec file
39-
ddev exec machines/middleware-test-runner/run.sh --spec=specs/myspec.yaml
36+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/core/region.yaml --stop-on-failure
4037

4138
# Run only a specific feature group
42-
ddev exec machines/middleware-test-runner/run.sh --group=chain
39+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/chain/middleware.yaml --group=chain
4340

4441
# Combine options
45-
ddev exec machines/middleware-test-runner/run.sh --quiet --stop-on-failure
42+
ddev exec machines/middleware-test-runner/run.sh --spec=specs/core/region.yaml --quiet --stop-on-failure
4643
```
4744

4845
### Help

machines/middleware-test-runner/machine.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
function parseArguments(array $argv): array
1919
{
2020
$options = [
21-
'specPath' => __DIR__ . '/../../specs/chain/middleware.yaml',
21+
'specPath' => null,
2222
'stopOnFailure' => false,
2323
'group' => null,
2424
'quiet' => false,
@@ -43,6 +43,20 @@ function parseArguments(array $argv): array
4343
}
4444
}
4545

46+
// Validate required parameters
47+
if ($options['specPath'] === null) {
48+
echo "❌ ERROR: --spec parameter is required\n";
49+
echo "\n";
50+
echo "Usage: machines/middleware-test-runner/run.sh --spec=<path> [options]\n";
51+
echo "\n";
52+
echo "Examples:\n";
53+
echo " machines/middleware-test-runner/run.sh --spec=specs/core/region.yaml\n";
54+
echo " machines/middleware-test-runner/run.sh --spec=specs/chain/middleware.yaml --quiet\n";
55+
echo "\n";
56+
echo "Run with --help for more options.\n";
57+
exit(1);
58+
}
59+
4660
return $options;
4761
}
4862

machines/middleware-test-runner/run.sh

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
# Unified Test Runner Script
4-
# Usage: ./run.sh [options]
4+
# Usage: ./run.sh --spec=<path> [options]
55

66
set -e
77

@@ -12,23 +12,24 @@ for arg in "$@"; do
1212
--help)
1313
echo "Unified Test Runner"
1414
echo ""
15-
echo "Usage: ./run.sh [options]"
15+
echo "Usage: ./run.sh --spec=<path> [options]"
16+
echo ""
17+
echo "Required:"
18+
echo " --spec=<path> Path to spec YAML file (required)"
1619
echo ""
1720
echo "Options:"
18-
echo " --spec=<path> Path to spec YAML file (default: specs/chain/middleware.yaml)"
19-
echo " --group=<n> Run only specific feature group"
21+
echo " --group=<name> Run only specific feature group"
2022
echo " --stop-on-failure Stop execution on first failure"
2123
echo " --quiet, -q Suppress output except for errors (quiet mode)"
2224
echo " --verbose, -v Show detailed output including test outputs"
2325
echo " --help Show this help message"
2426
echo ""
2527
echo "Examples:"
26-
echo " ./run.sh # Run all tests"
27-
echo " ./run.sh --group=chain # Run only chain tests"
28-
echo " ./run.sh --stop-on-failure # Stop on first failure"
29-
echo " ./run.sh --quiet # Show only errors"
30-
echo " ./run.sh --verbose # Show detailed output"
31-
echo " ./run.sh --spec=specs/myspec.yaml # Use custom spec file"
28+
echo " ./run.sh --spec=specs/core/region.yaml"
29+
echo " ./run.sh --spec=specs/chain/middleware.yaml --quiet"
30+
echo " ./run.sh --spec=specs/core/region.yaml --group=state-management"
31+
echo " ./run.sh --spec=specs/core/region.yaml --stop-on-failure"
32+
echo " ./run.sh --spec=specs/core/region.yaml --verbose"
3233
exit 0
3334
;;
3435
*)

0 commit comments

Comments
 (0)