summaryrefslogtreecommitdiff
path: root/design-documents/042-synthetic-wallet-errors.rst
blob: 97262002c9489152d84da8afbc5f0720ccbab5a4 (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
DD 42: Wallet Dev Experiments
#############################

Summary
=======

This design document defines new ``taler://`` URIs to cause synthetic errors
or special states in the wallet that can then be rendered by the UI.

Motivation
==========

UIs need to handle various (error-) states and responses of wallet-core.  It's
not easy to cover all of these states and responses manually.  Some of them are
hard to reach or simulate without an elaborate test setup.

Requirements
============

The implementation of synthetic errors should be as separate from production
code as possible, to avoid making the normal code paths unreadable.


Proposed Solution
=================

Special taler:// URIs
---------------------

* ``taler://dev-experiment/$STATE_ID``
* ``taler://pay/...?dev-experiment=``

Special http(s):// URIs
-----------------------

* ``http(s)://*.dev-experiment.taler.net/``
 
  * URLs for this subdomain are handled specially by the
    wallet's HTTP layer and return fixed / mocked responses
    instead of making real requests.


List of experiments
-------------------



Alternatives
============

Drawbacks
=========

Discussion / Q&A
================

(This should be filled in with results from discussions on mailing lists / personal communication.)