# bulloak-foundry
`bulloak-foundry` is a Rust crate that serves as a backend for generating Foundry tests from `bulloak-syntax` Abstract Syntax Trees (ASTs). It provides functionality to scaffold Solidity test files and check existing tests against specifications.
## Features
- Generate `.t.sol` files with scaffolded Foundry tests from `bulloak-syntax` ASTs.
- Check existing Solidity test files against `.tree` specifications.
- Implement and enforce custom rules for test structure and content.
- Automatic fixing of certain rule violations.
## Usage
To use bulloak-foundry in your project, add it to your `Cargo.toml`:
```toml
[dependencies]
bulloak-foundry = "0.1.0" # Replace with the actual version
```
### Scaffolding Tests
```rust
use bulloak_foundry::scaffold;
fn main() -> anyhow::Result<()> {
let tree_spec = "Your .tree specification here";
let foundry_test = scaffold::scaffold(tree_spec)?;
// Write foundry_test to a .t.sol file
Ok(())
}
```
## Violation Checking
`bulloak-foundry` includes a system for defining and checking rules against Solidity test files. Violations can be of different kinds, as defined in the `ViolationKind` enum.
## License
This project is licensed under either of:
- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
https://www.apache.org/licenses/LICENSE-2.0).
- MIT license ([LICENSE-MIT](LICENSE-MIT) or
https://opensource.org/licenses/MIT).