Skip to content

[Request]: Test Product for multiple purposes #83

@chrisgitiota

Description

@chrisgitiota

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 and here
  • Shall demonstrate using clever Move 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)

Related issues

Motivation

Requirements

Open questions

Are you planning to do it yourself in a pull request?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Product Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions