iotaledger / iotaledger/product-core

[Request]: Test Product for multiple purposes

Open
#83 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.