Skip to content

Add [ink::e2e-test] with a new E2E testing crate à la ink_waterfall #1234

@cmichi

Description

@cmichi

Persisting the results from our discussion on Saturday:

  • We want to remove the existing off-chain testing environment (engine) and replace it with an E2E testing framework.
  • This E2E testing framework will be a new crate based on ink_waterfall. So we want to make the waterfall a product as part of ink!.
  • We will retain the [ink::test] syntax, but it will then instead spawn a substrate-contracts-node (if one is not already spawned) and execute real transactions via cargo-contract instantiate/call/….

The reason behind this is that we found that we need a proper E2E testing framework to keep up with competing products. In the past users found it very irritating that they can't test e.g. the call builder in our off-chain testing environment. As we move more towards interoperability (XCM & Co.) the need for E2E testing will need to be prioritized. By making the waterfall part of ink! in this way we can in the future also use this setup to test contracts that interact with parachains.

It will also remove the need of duplicating the API and logic of pallet-contracts in ink!.

Metadata

Metadata

Assignees

Labels

A-examples[examples] Work itemA-ink_env[ink_env] work itemB-designDesigning a new component, interface or functionality.B-enhancementNew feature or requestC-discussionAn issue for discussion for a given topic.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions