openbazaar-desktop
openbazaar-desktop copied to clipboard
Implement Changes for Full ETH Precision
Implement the changes needed to handle full ETH precision.
ETH Precision Release Criteria
Startup and Settings
- [ ] Does the client start normally using
npm start
? - [ ] Can you navigate to and view your own store page without errors?
- A blank store with no content is acceptable for this test.
- [ ] Can you open Settings/General and change your currency to ETH?
- [ ] Can you change your currency to BTC?
- [ ] Can you change your currency to BCH?
- [ ] Can you change your currency to LTC?
- [ ] Can you change your currency to ZEC?
- [ ] Can you change your currency to USD?
- [ ] Can you change your currency to EUR?
- [ ] In Settings/Store can you change the currencies you accept?
- [ ] Does the "Publishing" message appear at the bottom of the screen, and finish successfully within 2 minutes?
- [ ] In Settings/Store, after changing the currencies you accept, click "Update All Current Listings". Did it work correctly?
- [ ] In Settings/Store, can you browse moderators by clicking the browse button?
- [ ] Do their fees display as expected?
- 20 or more moderators should load, with a "X moderators loaded" message at the bottom of the loading box.
- Not all of the loaded moderators will be shown, since the toggle to show only Verified Moderators is on by default.
- [ ] In Settings/Store, can you view a moderator by clicking the view button in the moderator card?
- [ ] Does their fee display as expected?
- [ ] In Settings/Store, can you add a moderator to your store?
Discover
- [ ] Open the Discover page. Do you see a random set of listings organized by category (trade, art, etc.) with no errors or missing content (ex: images or prices that aren't shown)?
- [ ] Click "See All" on the Trade category. Does a normal set of crypto listings display as a list?
- [ ] Filter the list by ETH in Accepted Currencies. Does it return the expected results?
- [ ] Filter the list by Coin Type. Pick a coin you can see displayed in the results, so you know you will get at least one result after filtering. Does it display at least that one result correctly?
- [ ] Click on one of the crypto listings to display it. Does it display correctly?
- [ ] Click on a suggested search or type in a search term. Do you see results that display correctly, with no missing or malformed data?
- [ ] Click on one of the listings to display it. Does it display correctly?
Listings
- With your display currency set to ETH, create listings and view them to make sure the following features work and display the correct data:
- [ ] Price, if the listing is priced in ETH with a large integer (8 or more digits).
- [ ] Price, if the listing is priced in ETH with a very small decimal (18 decimal places).
- [ ] Variants with both very large and very small price adjustments.
- [ ] On physical listings, shipping with both very large and very small prices.
- [ ] On physical listings, shipping for additional items beyond the first with both very large and very small prices.
- [ ] On physical listings, free shipping.
- [ ] Coupons with a percentage discount.
- [ ] Coupons with a fixed price discount that is very small (18 decimal places).
- [ ] Coupons with a fixed price discount that is an integer.
- [ ] For Crypto Listings, make sure the price of the coin correctly translates to ETH.
- [ ] Try this with both a discount and an up charge on the price (positive and negative percentage price adjustment).
- [ ] Create at least one of each of Physical, Digital, Service, and Crypto listings.
- [ ] Create listings priced in the following currencies with your display currency still set to ETH and check the same features (with decimals of the appropriate size, 2 for fiat, for crypto it will be based on the divisibility of the coin):
- [ ] BTC
- [ ] BCH
- [ ] LTC
- [ ] ZEC
- [ ] USD
- [ ] EUR
- [ ] Change your display currency set to each of the currencies below, make sure you can view all of the listings created and they display the correct (according to the exchange rate) price for the listing, shipping, variants, and coupon.
- [ ] BTC
- [ ] BCH
- [ ] LTC
- [ ] ZEC
- [ ] USD
- [ ] EUR
- [ ] Create at least one listing priced in ETH while your display currency is set to the following currencies, and make sure the price (according to the exchange rate) is correct for the listing, shipping, variants, and coupon.
- [ ] BTC
- [ ] BCH
- [ ] LTC
- [ ] ZEC
- [ ] USD
- [ ] EUR
- [ ] Edit the listing, shipping, variants, and coupon prices on at least one listing priced in ETH, and save it. When you look at the saved listing, does it show the correct updates to the prices?
Purchasing and Orders
- [ ] Are you able to purchase and pay for a listing, with the correct price in both the receipt before paying and when paying (make sure they match), if:
-
[ ] You buy in ETH and it is priced in ETH (use your own node to ensure this) and:
- [ ] It is a direct, online order?
- [ ] It is a direct, offline order?
- [ ] It is a moderated (you should use a 3rd node you control as the moderator), online order?
- [ ] It is a moderated (you should use a 3rd node you control as the moderator), offline order?
- [ ] It has a quantity other than 1?
- [ ] It is a physical listing and has a shipping charge?
- [ ] Does the shipping charge show the correct price for quantities over 1 with no price for extra items?
- [ ] Does the shipping charge show the correct price if there are quantities over 1 with a price for extra items (ie: a separate shipping charge for quantities over 1)?
- [ ] You selected a variant with an up charge?
- [ ] You selected a variant with an up charge and set the quantity to more than 1?
- [ ] You applied a coupon?
- [ ] At least one of the above was a digital listing.
- [ ] At least one of the above was a service listing.
- [ ] At least one of the above was a crypto listing.
- [ ] After paying, do you receive a notification that you have paid?
- [ ] If you click on the notification, does it show the order correctly?
- [ ] After paying, does a matching transaction display in the wallet, with the right amount?
- As the seller, can you do the following (ideally with one of each of the above scenarios):
- [ ] View the order in your Transactions/Sales tab and it displays all of it's data correctly?
- [ ] Is the price shown the same as the price the buyer paid?
- [ ] Accept an offline order.
- [ ] Does the buyer get a notification within 10 minutes?
- [ ] Reject an offline order.
- [ ] Does the buyer get a notification within 10 minutes?
- [ ] Refund an order.
- [ ] Does the buyer get a notification within 10 minutes?
- [ ] Fulfill a Physical order.
- [ ] Does the buyer get a notification within 10 minutes?
- [ ] Fulfill a Digital order.
- [ ] Does the buyer get a notification within 10 minutes?
- [ ] Fulfill a Service order.
- [ ] Does the buyer get a notification within 10 minutes?
- [ ] Fulfill a Crypto order.
- [ ] Does the buyer get a notification within 10 minutes?
- [ ] View the order in your Transactions/Sales tab and it displays all of it's data correctly?
- [ ] As the buyer, can you view your order in your Transactions/Purchases tab, and it displays all of its data correctly?
- [ ] Is the amount paid the same as in previous steps?
- [ ] As the buyer, can you dispute a non-fulfilled order?
- [ ] Do the seller and moderator get notifications within 10 minutes?
- [ ] As the buyer, can you complete a fulfilled order (ideally with one of each of the above scenarios)?
- [ ] Does the seller get a notification within 10 minutes?
- [ ] After the seller has the order in a completed state, change something to trigger a publish and confirm other nodes can see the review on the listing.
- [ ] As the buyer, can you dispute a fulfilled order?
- [ ] Do the seller and moderator get notifications within 10 minutes?
- [ ] As the seller, can you see a completed order within 10 minutes, and see the transaction for the funds in your wallet (it is ok if it is not confirmed) if:
- [ ] It was a direct, online order?
- [ ] It was a direct, offline order?
- [ ] It was a moderated, online order?
- [ ] It was a moderated, offline order?
- [ ] As the seller, can you see a dispute if the buyer starts one?
- [ ] As the seller, can you dispute a fulfilled order?
- [ ] Do the buyer and moderator get notifications within 10 minutes?
- [ ] As a moderator, can you open the order in your Transactions/Cases tab, and it displays all of its data correctly?
- [ ] As a moderator, can you resolve a dispute started by the buyer 50/50 before it was fulfilled?
- [ ] Do the buyer and seller get notifications within 10 minutes?
- [ ] As a moderator, can you resolve a dispute started by the buyer 50/50 after it was fulfilled?
- [ ] Do the buyer and seller get notifications within 10 minutes?
- [ ] As a moderator, can you resolve a dispute started by the seller 50/50?
- [ ] Do the buyer and seller get notifications within 10 minutes?
- [ ] For each of the 3 dispute resolution scenarios, do both the buyer and seller see the resolution and receive the payment (payments below the dust threshold should not be received)?
-
Complete the checklist above for:
- [ ] Priced in ETH, paid/displayed in BTC.
- [ ] Priced in ETH, paid/displayed in BCH.
- [ ] Priced in ETH, paid/displayed in LTC.
- [ ] Priced in ETH, paid/displayed in ZEC.
- [ ] Priced in ETH, paid in any other crypto, displayed in USD.
- [ ] Priced in ETH, paid in any other crypto, displayed in EUR.
- [ ] Priced in BTC, paid/displayed in ETH.
- [ ] Priced in BCH, paid/displayed in ETH.
- [ ] Priced in LTC, paid/displayed in ETH.
- [ ] Priced in ZEC, paid/displayed in ETH.
- [ ] Priced in USD, paid/displayed in ETH.
- [ ] Priced in EUR, paid/displayed in ETH.
-
Old (v4 aka v2.36) Order Handling
- [ ] Upgrade an existing listing version 4 node with orders in progress to a listing version 5 node. It should have orders in the following state as both the buyer and seller (or have 2 nodes, one as the buyer, one as the seller, representing both parties in the transactions below). Each order state should display all prices correctly after the upgrade, and be capable of moving to the next state or state(s).
- [ ] direct, online, awaiting payment
- [ ] direct, online, awaiting fulfillment
- [ ] direct, online, fulfilled
- [ ] direct, online, completed
- [ ] direct, online, refunded
- [ ] direct, offline, awaiting payment
- [ ] direct, offline, pending
- [ ] direct, offline, accepted
- [ ] direct, offline, cancelled
- [ ] direct, offline, awaiting fulfillment
- [ ] direct, offline, fulfilled
- [ ] direct, offline, completed
- [ ] direct, offline, refunded
- [ ] moderated, online, awaiting payment
- [ ] moderated, online, awaiting fulfillment
- [ ] moderated, online, fulfilled
- [ ] moderated, online, completed
- [ ] moderated, online, refunded
- [ ] moderated, online, disputed by the buyer before fulfillment
- [ ] moderated, online, disputed by the buyer after fulfillment
- [ ] moderated, online, disputed by the seller after fulfillment
- [ ] moderated, online, disputed by the buyer before fulfillment, resolved 50/50
- [ ] moderated, online, disputed by the buyer after fulfillment, resolved 50/50
- [ ] moderated, online, disputed by the seller after fulfillment, resolved 50/50
- [ ] moderated, online, disputed by the buyer before fulfillment, payment claimed after timeout
- [ ] moderated, online, disputed by the buyer after fulfillment, payment claimed after timeout
- [ ] moderated, online, disputed by the seller after fulfillment, payment claimed after timeout
- [ ] moderated, offline, awaiting payment
- [ ] moderated, offline, pending
- [ ] moderated, offline, accepted
- [ ] moderated, offline, cancelled
- [ ] moderated, offline, awaiting fulfillment
- [ ] moderated, offline, fulfilled
- [ ] moderated, offline, completed
- [ ] moderated, offline, refunded
- [ ] moderated, offline, disputed by the buyer before fulfillment
- [ ] moderated, offline, disputed by the buyer after fulfillment
- [ ] moderated, offline, disputed by the seller after fulfillment
- [ ] moderated, offline, disputed by the buyer before fulfillment, resolved 50/50
- [ ] moderated, offline, disputed by the buyer after fulfillment, resolved 50/50
- [ ] moderated, offline, disputed by the seller after fulfillment, resolved 50/50
- [ ] moderated, offline, disputed by the buyer before fulfillment, payment claimed after timeout
- [ ] moderated, offline, disputed by the buyer after fulfillment, payment claimed after timeout
- [ ] moderated, offline, disputed by the seller after fulfillment, payment claimed after timeout
Wallet
- [ ] Can you send each of the coins below to the wallet, and see the correct balance within 5 minutes?
- [ ] ETH
- [ ] BTC
- [ ] BCH
- [ ] LTC
- [ ] ZEC
- [ ] Can you send each of the coins below to a different node's wallet by copying the receive address from that node, and see the correct balance (minus the sent funds) in your wallet immediately, and the correct balance in the receiving wallet within 5 minutes?
- [ ] ETH
- [ ] BTC
- [ ] BCH
- [ ] LTC
- [ ] ZEC
Can you send each of the coins below to the wallet, and see the correct balance within 1 hour?
I think an hour is way too long. I could see in extreme cases it being an hour to see confirmed funds, but the unconfirmed should show as soon as the transactions is seen. That should really be seconds, but if we want to play it safe, we could say "5 minutes" maybe.
This is a great start @jjeffryes. This is what the QA test scenarios cover:
https://docs.google.com/spreadsheets/d/1OfzdfPuGxCdaDi8TebkepkuMiUGG23qFRrNeFwVMMn4/edit#gid=1111468034
with decimals of the appropriate size, 8 for crypto, 2 for fiat
This is no longer accurate since crypto will not necessarily be 8. The correct divisibility can be obtained via /wallet/currencies
.
@jjeffryes I opened https://github.com/OpenBazaar/openbazaar-go/issues/1916 to ensure that v5 moderators can resolve disputes on open v4 contracts. Maybe it's better that this case is covered by your test plan rather than opening a new issue. Can you confirm this case is included and I'll close the issue as a duplicate of this?
@placer14 I think we should cover all these scenarios in a server issue/issues of some kind.