mew-core
v0.0.1-alpha.6
Published
Downloads
10
Readme
MewCore
Testing
There are two sets of tests (can run in node, and must run in browser) these two (currently) disjoined test sets together seek to cover most if not all (eventually) of the library.
Due to their use of u2f most Harware Wallets Require Browser Based Testing.
These Include:
- MewConnect
- Trezor
- Ledger
Note: Using ledger's node-hid module as the transport enable testing and usage of ledger in node.
The the tests covering Engine and Core run in node (to enable faster development iteration). These tests use the software wallets as their main testing wallets.
Linking/Chaining operations:
(for example see: test/_fixtures/mockups/pseudoChaining.js)
Passing a function of the form
function(error, response){
// do something with response
return end(error, response);
}
as the callback to emitPayload
or engine.sendAsync(payload, cb)
from the handleRequest
method of a provider creates a chain forward (from handler to next handler via emitPayload
or engine.sendAsync(payload, cb)
and then back via the callback of the above form. The primary consideration is that each callback must itself call end
and supply the required error and response arguments, which may be transformed from the values recieved. Thus acting as a type of response transformer/interceptor.
In pseudoChaining.test the params are incremented by 1 prior to the Mock Network call (http, ws, etc.) and then decremented by one as the chain acts in reverse. The result is a starting and ending values that are the same. While it is a trivial example, the same construct (either bi-directional (i.e. both out and back)) or just in the out direction enable the chainig of operations without the explicit need to hard code them in the engine (or posibly even in specific providers) in advance.