This guide walks through testing all ShellDock features manually.
-
Build the application:
make build
-
Ensure you have a test command set:
cp test-clean.yaml ~/.shelldock/test.yaml
./shelldock listExpected: Shows available command sets including "test"
./shelldock show testExpected: Displays command set details without executing
./shelldock show testExpected: Shows detected platform
./shelldock versions testExpected: Lists v1, v2, v3 (with v3 marked as latest)
./shelldock show test@v1Expected: Shows v1 commands
./shelldock show test@v2Expected: Shows v2 commands with platform support
./shelldock show testExpected: Shows v3 (latest) by default
./shelldock show test --ver v1Expected: Shows v1 commands
./shelldock show test --version v1Expected: Shows v1 commands (--version is alias for --ver)
./shelldock show certbot@certonly
./shelldock show certbot --version nginxExpected: Shows correct version matching the tag
./shelldock show test@v999Expected: Shows error message
./shelldock config showExpected: Shows current platform setting and active platform
./shelldock config set ubuntu
./shelldock config showExpected: Platform set to ubuntu
./shelldock config set centos
./shelldock config showExpected: Platform set to centos
./shelldock config set auto
./shelldock config showExpected: Platform set to auto
./shelldock config set ubuntu
./shelldock show test@v2Expected: Shows ubuntu-specific commands
./shelldock config set centos
./shelldock show test@v2Expected: Shows centos-specific commands
echo "n" | ./shelldock test --skip 1,2Expected: Shows "Skipping steps: 1,2" and only displays remaining steps
echo "n" | ./shelldock test --skip 1-3Expected: Shows "Skipping steps: 1-3" and only displays remaining steps
echo "n" | ./shelldock test --only 1,3Expected: Shows "Running only steps: 1,3" and only displays those steps
echo "n" | ./shelldock test --only 1-3Expected: Shows "Running only steps: 1-3" and only displays those steps
./shelldock test --skip 1 --only 2Expected: Shows error: "cannot use both --skip and --only flags together"
echo "n" | ./shelldock test --skip 1,2,3,4,5,6,7Expected: Shows error: "No commands to execute after filtering"
./shelldock test --only 999Expected: Shows error: "No commands to execute after filtering"
echo "n" | ./shelldock test@v1 --skip 1Expected: Shows v1 version with step 1 skipped
echo "n" | ./shelldock test@v2 --only 1,2Expected: Shows v2 version with only steps 1 and 2
echo "n" | ./shelldock --local test@v1Expected: Shows v1 version from local repository
./shelldock test@v1 -aExpected: Executes all commands without any prompting
./shelldock test@v1 --skip 2,3,4 -aExpected: Executes only non-skipped steps without prompting
./shelldock test@v1 --only 1 -aExpected: Executes only step 1 without prompting
./shelldock test@v1Expected:
- Shows commands
- Prompts
Do you want to execute these commands? [a]ll/[y]es step-by-step/[N]o: - Type
ato execute all steps without further prompts
./shelldock test@v1Expected:
- Shows commands
- Prompts
Do you want to execute these commands? [a]ll/[y]es step-by-step/[N]o: - Type
yto proceed step-by-step - Each step prompts
Run this step? (y/N): - Type
yto run the step, orn/Enter to skip it
./shelldock test@v1Expected:
- Shows commands
- Prompts
Do you want to execute these commands? [a]ll/[y]es step-by-step/[N]o: - Type
nor press Enter to cancel
echo "n" | ./shelldock testExpected: Same as ./shelldock run test
echo "n" | ./shelldock run testExpected: Executes test command set
./shelldock nonexistentExpected: Shows error: "command set 'nonexistent' not found"
./shelldock test --skip invalidExpected: Shows error about invalid format
./shelldock test --only invalidExpected: Shows error about invalid format
./shelldock test@invalid-versionExpected: Shows error: version not found
./shelldock --helpExpected: Shows help text
./shelldock --versionExpected: Shows version number
Create an empty command set and test:
cat > ~/.shelldock/empty.yaml << 'EOF'
name: empty
description: Empty command set
version: "v1"
commands: []
EOF
./shelldock show emptyExpected: Shows empty command set without errors
cat > ~/.shelldock/platform-only.yaml << 'EOF'
name: platform-only
description: Platform only commands
version: "v1"
commands:
- description: Platform command
platforms:
ubuntu: echo "ubuntu only"
EOF
./shelldock config set ubuntu
./shelldock show platform-onlyExpected: Shows ubuntu command
./shelldock manageExpected: Opens interactive TUI for managing command sets
List View:
- Navigate with
↑/↓orj/k - Press
Enterto view command set details - Press
nto create a new command set - Press
eto edit selected command set - Press
dto delete selected command set - Press
qto quit
Detail View:
↑/↓to scroll through stepseto edit this command setdto delete this command setEscto go back to list
Form (Create/Edit):
Tab/Enterto advance to next fieldShift+Tabto go backCtrl+Sto save (from steps list)Escto cancel / go backnto add a new step (from steps list)e/Enterto edit a step (from steps list)dto remove a step (from steps list)Ctrl+Nto add a platform or argument entryCtrl+Dto remove a platform or argument entry
- Open
./shelldock manage - Press
nto create new - Enter name, description, version (tab through fields)
- Add steps with
n, fill in description, command, skip_on_error, platforms, args - Press
Ctrl+Sto save - Verify with
./shelldock show <name>
- Open
./shelldock manage - Select a command set, press
e - Modify fields, add/remove steps, platforms, args
- Press
Ctrl+Sto save - Verify changes with
./shelldock show <name>
- Open
./shelldock manage - Select a command set, press
d - Confirm with
y - Verify it no longer appears in
./shelldock list
Manual Testing Results
======================
Date: ___________
Tester: ___________
1. Basic Commands: [ ] Pass [ ] Fail
2. Versioning: [ ] Pass [ ] Fail
3. Platform Support: [ ] Pass [ ] Fail
4. Step Filtering: [ ] Pass [ ] Fail
5. Flag Combinations: [ ] Pass [ ] Fail
6. Command Execution (-a flag): [ ] Pass [ ] Fail
7. Command Execution (a/y/N prompt): [ ] Pass [ ] Fail
8. Direct Execution: [ ] Pass [ ] Fail
9. Error Handling: [ ] Pass [ ] Fail
10. Help and Version: [ ] Pass [ ] Fail
11. Edge Cases: [ ] Pass [ ] Fail
12. TUI Management (list/detail/create/edit/delete): [ ] Pass [ ] Fail
Notes:
_______
_______
_______