0.0.1-alpha.6 • Published 6 years ago

mew-core v0.0.1-alpha.6

Weekly downloads
24
License
-
Repository
-
Last release
6 years ago

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.