summaryrefslogtreecommitdiff
path: root/checklists/checklist-demo-upgrade.rst
blob: d8724030b232fd6d790da30e05a93c339344b3a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
GNU Taler Demo Upgrade Checklist
--------------------------------

.. |democheck| raw:: html

    <input type="checkbox">


Domains
^^^^^^^

The checklist uses the ``demo.taler.net`` domains.  However,
the same sandcastle demo can also be hosted at other domains.
The same instructions should apply.

Post-upgrade checks
^^^^^^^^^^^^^^^^^^^

- |democheck| Run the headless wallet to check that services are actually working:

  .. code-block:: console

    taler-wallet-cli api 'runIntegrationTestV2' '{"exchangeBaseUrl":"https://exchange.demo.taler.net", "corebankApiBaseUrl": "https://bank.demo.taler.net", "merchantBaseUrl": "https://backend.demo.taler.net", "merchantAuthToken":"secret-token:sandbox"}'


Wallets
^^^^^^^

We consider the following published wallets to be "production wallets":

* Browser: Firefox Add-On Store
* Browser: Chrome Web Store
* Android: Google Play
* Android: F-Droid
* iOS: Apple Store / Testflight

Basics
^^^^^^

- |democheck| Visit https://demo.taler.net/ to see if the landing page is displayed correctly
- |democheck| landing language switcher
- |democheck| Visit the wallet installation page, install the wallet
- |democheck| see if the wallet presence indicator is updated correctly (in browsers).
- |democheck| Visit https://bank.demo.taler.net/, register a new user
- |democheck| bank language switcher
- |democheck| bank logout
- |democheck| bank login
- |democheck| bank-integrated withdraw process, abort in bank
- |democheck| transaction history: delete pending withdraw
- |democheck| do bank-integrated withdraw process (5 KUDOS)
- |democheck| do wallet-initiated withdraw process (5 KUDOS)
- |democheck| withdraw process of large amount (20 KUDOS) runs into KYC check
- |democheck| fail KYC check (if possible for the given setup)
- |democheck| pass KYC check (tests that 2nd attempt is possible)
- |democheck| withdraw process of very large amount (50 KUDOS) runs into AML check
- |democheck| visit exchange SPA, create AML officer key
- |democheck| register AML officer key with offline tool (if possible)
- |democheck| allow withdraw process blocked on AML to proceed (if possible)


Exchange AML SPA
^^^^^^^^^^^^^^^^

- |democheck| enter non-trivial form, change status to frozen
- |democheck| check account status in history is now frozen and shows in that category
- |democheck| enter another form, change status to normal, increase AML threshold
- |democheck| view forms in history, view previously submitted form
- |democheck| check account status in history is now normal and shows in that category
- |democheck| log out
- |democheck| check log in succeeds with correct password
- |democheck| check log in fails from different browser with same password


Blog demo
^^^^^^^^^

- |democheck| Visit https://shop.demo.taler.net/
- |democheck| blog page article list renders
- |democheck| payment for blog article
- |democheck| Verify that the balance in the wallet was updated correctly.
- |democheck| Go back to https://shop.demo.taler.net/ and click on the same article
  link.  Verify that the article is shown and **no** repeated payment is
  requested.
- |democheck| Open the fulfillment page from the previous step in an anonymous browsing session
  (without the wallet installed) and verify that it requests a payment again.
- |democheck| Delete cookies on https://shop.demo.taler.net/ and click on the same article again.
  Verify that the wallet detects that the article has already purchased and successfully
  redirects to the article without spending more money.
- |democheck| payment for other blog article
- |democheck| refund of 2nd blog article (button at the end)
- |democheck| wallet transaction history rendering
- |democheck| delete refund history entry; check original purchase entry was also deleted
- |democheck| payment for other blog article
- |democheck| refund of 3rd blog article (button at the end)
- |democheck| wallet transaction history rendering
- |democheck| delete 3rd block purchase history entry; check refund entry was also deleted


Donation demo
^^^^^^^^^^^^^

- |democheck| Reset wallet
- |democheck| Withdraw age-restricted coins (< 14)
- |democheck| Try to make a donation on https://donations.demo.taler.net/, fail due to age-restriction
- |democheck| Withdraw age-restricted coins (>= 14)
- |democheck| Make a donation on https://donations.demo.taler.net/
- |democheck| Make another donation with the same parameters and verify
  that the payment is requested again, instead of showing the previous
  fulfillment page.


Merchant SPA
^^^^^^^^^^^^

- |democheck| test SPA loads
- |democheck| try to login with wrong password
- |democheck| try to login with correct password
- |democheck| create instance, check default is set to cover (STEFAN) fees
- |democheck| modify instance
- |democheck| add bank account
- |democheck| edit bank account
- |democheck| remove bank account
- |democheck| check order creation fails without bank account
- |democheck| add bank account again
- |democheck| add product with 1 in stock and preview image
- |democheck| add "advanced" order with inventory product and a 2 minute wire delay
- |democheck| claim order, check available stock goes down in inventory
- |democheck| create 2nd order, check this fails due to missing inventory
- |democheck| pay for 1st order with wallet
- |democheck| check transaction history for preview image
- |democheck| trigger partial refund
- |democheck| accept refund with wallet
- |democheck| create template with fixed summary, default editable price
- |democheck| scan template QR code, edit price and pay
- |democheck| add TOTP device (using some TOTP app to share secret with)
- |democheck| edit template to add TOTP device, set price to fixed, summary to be entered
- |democheck| scan template QR code, edit summary and pay
- |democheck| check displayed TOTP code matches TOTP app
- |democheck| do manual wire transfer in bank to establish reserve funding
- |democheck| check that partially refunded order is marked as awaiting wire transfer
- |democheck| check bank wired funds to merchant (if needed, wait)
- |democheck| add bank wire transfer manually to backend
- |democheck| change settings for merchant to not pay for (STEFAN) fees
- |democheck| create and pay for another order with 1 minute wire transfer delay
- |democheck| edit bank account details, adding revenue facade with credentials
- |democheck| wait and check if wire transfer is automatically imported
- |democheck| check that orders are marked as completed


P2P payments
^^^^^^^^^^^^

- |democheck| generating push payment (to self is OK)
- |democheck| accepting push payment (from self is OK)
- |democheck| generating pull payment (to self is OK)
- |democheck| accepting pull payment (from self is OK)
- |democheck| sending money back from wallet to bank account
- |democheck| wallet transaction history rendering
- |democheck| delete history entry


Shutdown
^^^^^^^^

- |democheck| create two full wallets, fill one only via (a large) P2P transfer
- |democheck| revoke highest-value denomination
- |democheck| spend money in a wallet such that the balance falls below highest denomination value
- |democheck| revoke all remaining denominations
- |democheck| fail to spend any more money
- |democheck| if wallet was filled via p2p payments, wallet asks for target deposit account (exchange going out of business)
- |democheck| enter bank account (if possible)
- |democheck| wallet balance goes to zero
- |democheck| specified bank account receives remaining balance