Flow Javascript Testing
The Problem
Writing smart contracts can be complex. With the help of the Cadence language server you can catch some simple bugs during development - wrong types, spelling errors, etc. Checking interaction behaviour is harder. It's not uncommon that smart contract and integration testing engineers are two different people and thus this can create additional friction for your project.
The Solution
Flow Javascript Testing Framework aims to reduce said complexity by providing a set of helpful methods allowing you easily:
- Start and stop new emulator instance
- Deploy contracts
- Create new accounts
- Send transactions
- Execute scripts
- query balances and mint FLOW for specific account
Framework will handle creating and managing the private keys you need to sign transactions, and try to automatically resolve import statements (provided, that necessary contracts deployed), so you can focus on writing Cadence code.
Which testing library to choose?
Some examples provided in this documentation are using Jest to highlight the process, but most of the methods in framework are agnostic of any other testing library - except for the ones using Jest explicitly. So you can use whatever you feel more comfortable with.
Installation
Follow these steps to add framework to your project.