assert
assert - Robust Test Assertions
The assert module is a powerful tool for verifying that test results meet expectations. It is widely used in automated testing and CI/CD pipelines to ensure code correctness.
When to Activate
- When writing shell scripts that need to verify command success or failure.
- When performing regression tests on file systems (checks for non-empty, existence, etc.).
- When validating variable states or detecting global variable leaks.
- When checking stdout/stderr against expected patterns or content.
Core Principles & Rules
- Exit Code Focus: Commands return 0 on success and non-zero on failure to break script execution if combined with
set -e. - Negation Support: Use
!for negative command checks or^for negative type/file checks. - Bulk Verification: Many subcommands support checking multiple values or files in one go.
Additional Scenarios
- Variable Snapshots: Use
var saveandvar cmpto detect unintended global variable modifications in functions. - Output Matching: Use
stdoutwith heredocs to verify complex multi-line command outputs.
Patterns & Examples
Command and Type Verification
# Verify command success and multiple integer values
x assert true [ 1 -eq 1 ]
x assert is-int 10 20 30
File System Checks
# Ensure specific files exist and are not empty
x assert is-file /etc/hosts
x assert is-nonempty ./log.txt
Detecting Variable Leaks
# Capture state, run function, and check for leaks
x assert var save
my_function
x assert var cmp
Checklist
- Ensure the correct operator (
is-file,is-int, etc.) is used. - Confirm if negation (
!or^) is required for the test logic. - Verify that multi-line expectations match the stdin/heredoc format.
More from x-cmd/skill
x-cmd
|
25x-security
This skill provides comprehensive security assessment and vulnerability management tools through x-cmd CLI, including network reconnaissance with Shodan, vulnerability scanning with OSV, and known exploited vulnerability tracking with KEV. This skill should be used when users need to perform security assessments, vulnerability research, network reconnaissance, or security monitoring from command line interfaces.
13x-network
This skill provides comprehensive network administration and diagnostic tools through x-cmd CLI, including network scanning with Nmap, ARP table management, DNS configuration, routing table analysis, and enhanced ping utilities. This skill should be used when users need to perform network diagnostics, troubleshoot connectivity issues, analyze network topology, or monitor network performance from command line interfaces.
11x-knowledge
This skill provides access to various knowledge search tools through x-cmd CLI, including Hacker News, Wikipedia, DuckDuckGo search, RFC documents, Project Gutenberg books, and Stack Exchange. This skill should be used when users need to search for technical information, browse online knowledge bases, or access documentation from command line interfaces.
6x-git
This skill provides comprehensive Git and code hosting platform management tools through x-cmd CLI, including GitHub, GitLab, Codeberg, Forgejo integration, and Git hooks management. This skill should be used when users need to manage Git repositories, work with code hosting platforms, automate Git workflows, or configure Git hooks from command line interfaces.
6x-system
This skill provides comprehensive system administration and monitoring tools through x-cmd CLI, including process management, macOS system utilities, network configuration, disk health monitoring, and storage analysis. This skill should be used when users need to perform system administration tasks, monitor system performance, manage network configurations, or troubleshoot system issues from command line interfaces.
6