### To accomplish
- Unit and integration testing
- End to end testing
### Unit and integration testing
Test every piece of our base layer:
- IPFS
- Census
- Vochain: iavl, vochain logic ...
- IPFS Sync
- Router
- Contract and ethevents
- Web3
- Crypto
- Net: Http/WS
...
(Some of this are already done)
### End to end testing
We need a test environment with some predefined data in order to be fast running tests:
- Vochain (3 Miners + 1 Fullnode)
- Gateway (maybe more than one for testing census and IPFS related, ex census import or ipfs pinning)
- Ethereum testnet (ganache like node)
- Oracle
- IPFS localnet with 2 or 3 nodes
Also we need data sets in order to initialize the test environment with some predefined data.
- Ethereum related txs (process creation, entity creation, ...)
- Vochain related txs (vote submitting, vochain queries to test tx indexing ...)
- Gateway related (api calls, census creation ...)
- IPFS process metadata
### Proposal for this week
I think all of this is quite long to achieve so there are some minimal setup that I think we need to face The Kiss ending with confidence, which are:
- Ethereum testnet with one node and a process than sends some txs in order to create entities and processes with the predefined data
- With this an oracle can read all the logs in the early blocks and we can send txs in a controled environment if we need to change something over the tests
- Census creation and gateway import in order to use this census in our processes
- Vote submitting using the data created in the gateway API
- API requests and responses
### Where could we are after this:
We can have a minimal stable testing environment just for testing some of the features we already implemented and specially the vochain-oracle-ethereum-api subset.
With this we will be sure that the things that are running in the preproduction environment are working as expected with the new features addition, which are:
- Scrutinizer
- Process lifecycle
- getProcessList API call with Vochain internal Tx indexing