iotaledger / iotaledger/product-core
[Request]: Test Product for multiple purposes
- Dominant language
- Rust
- Stars
- 0
- Forks
- 2
- Avg merge
- 1h 29m
- Merged PRs (30d)
- 3
Description
### Feature description
At the moment we don't have any tests in the product-core repository that can be used in CI workflows to test the code provided in the `iota_interaction`, `iota_interaction_rust`, `product_common` rust crates and the `@iota/iota-interaction-ts` npmjs package.
For this purpose a test product needs to be implemented, that
- Shall be located in `examples/test-product`
- Uses all relevant traits and types provided by `iota_interaction` and `product_common` and `@iota/iota-interaction-ts`, especially:
- `product_common`: `CoreClient`, `CoreClientReadOnly`, `Transaction`, `TransactionBuilder` and gas-station features
- `product_common`: WASM bindings of the above mentioned interfaces and types
- `iota_interaction_rust` + `@iota/iota-interaction-ts`: Platform specific usage of the `WasmIotaClient` and `IotaClientAdapter` to provide platform specific versions of the IOTA client
- Uses the product_common `PackageRegistry` and `MoveHistoryManager` and provides a detailed test description to do manually package-publish and package-upgrade tests
- Additionally provides automated CI tests for package-publish and package-upgrade tests
- Provides a very simple Move SC package, a Rust library and a TS library
- Provides a `ReadOnly` and a full client for Rust and TS
- Comes with some usage examples for the Rust and the TS libraries
- Provides CI test integration for the Rust and TS usage examples equivalent to the CI tests used in our products
- Shall demonstrate proper Rust and TS Error type design as been described [here](https://github.com/iotaledger/product-core/issues/42) and [here](https://github.com/iotaledger/notarization/issues/82)
- Shall demonstrate using [clever Move errors](https://move-book.com/reference/abort-and-assert/clever-errors/)
The code of the test product shall be used as a reference implementation of Trust Framework products demonstrating how resources provided in product-core are used in TF products.
The test product shall be properly documented to ease the setup of new TF product projects and introductory training of new PA developers.
The test product may be used in the upcoming cross product docs section of the TF documentation ([issue link](https://github.com/orgs/iotaledger/projects/8/views/5?sliceBy%5Bvalue%5D=_noValue&pane=issue&itemId=130877224))
## Related issues
* [Task: wasm-bindgen-tests or TS tests for iota-interaction-ts functionality #27](https://github.com/iotaledger/product-core/issues/27)
* [Refactor error-handling in TS Bindings #43](https://github.com/iotaledger/product-core/issues/43)
* [Refactor error-handling #42](https://github.com/iotaledger/product-core/issues/42)
* [Request: Redesign error handling #82](https://github.com/iotaledger/notarization/issues/82)
* [Extend TF docs](https://github.com/orgs/iotaledger/projects/8/views/5?sliceBy%5Bvalue%5D=_noValue&pane=issue&itemId=130877224)
### Motivation
-
### Requirements
-
### Open questions
-
### Are you planning to do it yourself in a pull request?
Yes
Contributor guide
Research direction
Start in examples/test-product and map the requested Rust, TypeScript, WASM, Move, CI, package-publish, and package-upgrade coverage against the interfaces named in the issue. Read related issues #27, #42, #43, and #82 first; done means the reference product, usage examples, automated CI checks, manual test documentation, and error demonstrations are all provided.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, typescript, wasm
- Domain
- devtools, documentation, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100