The ongoing list of issues to fix and features to implement: - [x] Add generator for candid values - [x] Add an individual canister via command - [x] The ic-test tool needs to detect if .dfx is available and report a corresponding message - [x] The alloy dependencies are not needed if the project under test does not test EVM contracts - [x] Convenient user interface to ask user additional questions via CLI UI - [x] order alphabetically canister names - [x] only generate canister types "custom" and "rust" - [x] search for foundry.toml in subfolders as well - [x] make sure foundry.toml paths work and they are relative to foundry.toml - [x] keep $HOME unexpanded when saving into ic-test.json - [x] the default state for not generating frontend canister is always reset, it should remember this configuration on the next launch - [x] panic error when there are no canisters found, rather quit with a reasonable error message - [x] "ic-test new" should automatically go into interactive mode just like "ic-test" alone - [x] do not try to do "dfx build" internally, only ask user to do it - [x] dfx.json must exist when launching the tool, otherwise show an error message - [x] dfx.json does not have to exist if skip_dfx_json is true - [x] option to launch the generator from a different project root (--root parameter) binding generator improvements: - [x] into generated files, add #!cfg attr to ignore fmt warnings - [x] if no init arguments, the `// init args` comment is not needed - [x] rename `test` var name to the less generic `icp_test` - [x] generate an example method call `let result = canister_name./*method_name*/(todo!()).call().await;` - [x] fix generating numbers, when no concrete number value was present in the candid value - [x] more generator tests - [x] fix generator sometimes mixing todo! with the structure/enum name convenience improvements: - [ ] if foundry.toml not found, ask user to enter its path - [ ] Beautify argument names in the generated `deploy` function (change arg0, arg1, ... to something else) - [ ] Beautify argument names in the generated canister rust functions (change arg0, arg1, ... to actual names from Candid, where possible) - [ ] Calling generated methods requiring text arguments forces to explicitly convert &str to String - [ ] it is easy to forget to call "call()" after building the canister call, introduce #[must_use] to get a warning
The ongoing list of issues to fix and features to implement:
binding generator improvements:
// init argscomment is not neededtestvar name to the less genericicp_testlet result = canister_name./*method_name*/(todo!()).call().await;convenience improvements:
deployfunction (change arg0, arg1, ... to something else)