Skip to content

Testing Checklist

William O'Beirne edited this page Jan 21, 2019 · 2 revisions

Tips for Testing

  1. Keep a couple of browsers or profiles in certain states to test against brand new installs, and installs with some legacy data. Tests not related to onboarding should be done both with old data that may have been migrated, and new data that has been changed.
  2. Try to have a few different nodes you go through to catch any quirks (Local LND node, remote LND node, Lightning app, BTCPayServer)
  3. Joule is officially supported in Chrome, Brave, Firefox, and Opera, so it should be tested in these browsers.

Tests

The following things should be checked when testing Joule from end-to-end, ideally right before a major release:

Onboarding

  1. Setup your node.
    • Setup a local node.
    • Setup a remote node.
    • Setup a Lightning App node.
    • Setup a BTCPayServer node.
  2. Confirm that bad macaroons are caught and explained.
  3. Confirm that passwords must match and be a certain strength.

Basic info

  1. Confirm your balances load and are correct.
  2. Confirm that your open and pending nodes load and are correct.
  3. Confirm your transactions load and are correct.
  4. Click into a few transactions and make sure their details are correct.

Invoices

Confirm all of your invoices generated are correct on https://lndecode.com/

  1. Create an invoice.
    • Create an invoice with some amount using the fiat field.
    • Create an invoice with some amount by changing the units field.
    • Create an any-amount invoice.
    • Create an invoice with a fallback address, memo, and different expiry.
  2. Closing out the password modal when trying to generate invoice shows a useful error.

Send

You can generate fixed amount invoices on yalls.org, and any amount invoices with tippin.me

  1. Valid invoice is correctly decoded and sends.
    • Invalid invoice shows a useful invalid state (Just change some characters on it.)
    • Invoice with routing issues shows a useful error.
    • Invoice of an incorrect network shows a useful error (e.g. btc -> ltc, or mainnet -> testnet)
  2. Any-amount invoice is correctly decoded, requires input, and sends.
  3. Closing out the password modal when trying to send shows a useful error.

Deposit

  1. Shows a valid on-chain address.
    • Re-opening shows the same on-chain address.
    • Sending to on-chain address increases node balance.
  2. Closing out password prompt shows a useful error.

Settings

  1. Changing settings and returning saves your new settings.
  2. Changing the unit displays the correct unit everywhere used.
  3. Changing the currency displays the correct currency everywhere used.
  4. Setting fiat as primary changes it to be the main display wherever used.
  5. Disabling fiat changes it to not show anywhere.
  6. Node settings are displayed & changeable.
  7. Password is resettable and administrative functions still work afterwards.
  8. Resetting node settings works.

Channels & Peers

  1. Connect to a new peer, they stay if you close and reopen app.
  2. Open a channel to a node.
    • Attempting to open a channel with a node using too small an amount shows a useful error.
    • Attempting to open a channel over your balance shows a useful error.
    • Attempting to open a channel with an existing channel's node shows a useful error.

WebLN

lightningspin.com and tippin.me are good sites for WebLN testing.

  1. Visiting a WebLN enabled site requests your info.
  2. Subsequent visits to the site after enabling it to connect don't prompt you (And correctly give your node info.)
  3. Subsequent visits to the site after rejecting it to connect don't prompt you (And don't give your node info.)
  4. Send payment requests correctly prompt you to pay.
    • After asking to remember your password, send payment requests don't require a password.
  5. Make invoice requests correctly prompt you to make an invoice.
    • After asking to remember your password, make invoice requests don't require a password.

Misc

  1. Confirm that clicking "Lock account" prompts you for password on next administrative action.