@tasenor/common-node 1.9.32 → 1.9.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/dist/migrations/01_init.js +60 -0
  2. package/dist/src/cli.d.ts +81 -0
  3. package/dist/src/cli.js +242 -0
  4. package/dist/src/cli.js.map +1 -0
  5. package/dist/src/commands/account.d.ts +12 -0
  6. package/dist/src/commands/account.js +58 -0
  7. package/dist/src/commands/account.js.map +1 -0
  8. package/dist/src/commands/balance.d.ts +11 -0
  9. package/dist/src/commands/balance.js +117 -0
  10. package/dist/src/commands/balance.js.map +1 -0
  11. package/dist/src/commands/db.d.ts +14 -0
  12. package/dist/src/commands/db.js +69 -0
  13. package/dist/src/commands/db.js.map +1 -0
  14. package/dist/src/commands/entry.d.ts +13 -0
  15. package/dist/src/commands/entry.js +106 -0
  16. package/dist/src/commands/entry.js.map +1 -0
  17. package/dist/src/commands/import.d.ts +17 -0
  18. package/dist/src/commands/import.js +140 -0
  19. package/dist/src/commands/import.js.map +1 -0
  20. package/dist/src/commands/importer.d.ts +13 -0
  21. package/dist/src/commands/importer.js +71 -0
  22. package/dist/src/commands/importer.js.map +1 -0
  23. package/dist/src/commands/index.d.ts +191 -0
  24. package/dist/src/commands/index.js +482 -0
  25. package/dist/src/commands/index.js.map +1 -0
  26. package/dist/src/commands/period.d.ts +12 -0
  27. package/dist/src/commands/period.js +48 -0
  28. package/dist/src/commands/period.js.map +1 -0
  29. package/dist/src/commands/plugin.d.ts +15 -0
  30. package/dist/src/commands/plugin.js +78 -0
  31. package/dist/src/commands/plugin.js.map +1 -0
  32. package/dist/src/commands/report.d.ts +11 -0
  33. package/dist/src/commands/report.js +96 -0
  34. package/dist/src/commands/report.js.map +1 -0
  35. package/dist/src/commands/settings.d.ts +10 -0
  36. package/dist/src/commands/settings.js +64 -0
  37. package/dist/src/commands/settings.js.map +1 -0
  38. package/dist/src/commands/stock.d.ts +8 -0
  39. package/dist/src/commands/stock.js +73 -0
  40. package/dist/src/commands/stock.js.map +1 -0
  41. package/dist/src/commands/tag.d.ts +13 -0
  42. package/dist/src/commands/tag.js +89 -0
  43. package/dist/src/commands/tag.js.map +1 -0
  44. package/dist/src/commands/tx.d.ts +12 -0
  45. package/dist/src/commands/tx.js +81 -0
  46. package/dist/src/commands/tx.js.map +1 -0
  47. package/dist/src/commands/user.d.ts +12 -0
  48. package/dist/src/commands/user.js +52 -0
  49. package/dist/src/commands/user.js.map +1 -0
  50. package/dist/src/database/BookkeeperImporter.d.ts +77 -0
  51. package/dist/src/database/BookkeeperImporter.js +343 -0
  52. package/dist/src/database/BookkeeperImporter.js.map +1 -0
  53. package/dist/src/database/DB.d.ts +51 -0
  54. package/dist/src/database/DB.js +354 -0
  55. package/dist/src/database/DB.js.map +1 -0
  56. package/dist/src/database/index.d.ts +7 -0
  57. package/dist/src/database/index.js +8 -0
  58. package/dist/src/database/index.js.map +1 -0
  59. package/dist/src/doccer.d.ts +29 -0
  60. package/dist/src/doccer.js +30 -0
  61. package/dist/src/doccer.js.map +1 -0
  62. package/dist/src/error.d.ts +30 -0
  63. package/dist/src/error.js +35 -0
  64. package/dist/src/error.js.map +1 -0
  65. package/dist/src/export/Exporter.d.ts +69 -0
  66. package/dist/src/export/Exporter.js +123 -0
  67. package/dist/src/export/Exporter.js.map +1 -0
  68. package/dist/src/export/TasenorExporter.d.ts +55 -0
  69. package/dist/src/export/TasenorExporter.js +135 -0
  70. package/dist/src/export/TasenorExporter.js.map +1 -0
  71. package/dist/src/export/TilitinExporter.d.ts +71 -0
  72. package/dist/src/export/TilitinExporter.js +290 -0
  73. package/dist/src/export/TilitinExporter.js.map +1 -0
  74. package/dist/src/export/index.d.ts +8 -0
  75. package/dist/src/export/index.js +9 -0
  76. package/dist/src/export/index.js.map +1 -0
  77. package/dist/src/import/TextFileProcessHandler.d.ts +104 -0
  78. package/dist/src/import/TextFileProcessHandler.js +354 -0
  79. package/dist/src/import/TextFileProcessHandler.js.map +1 -0
  80. package/dist/src/import/TransactionImportConnector.d.ts +38 -0
  81. package/dist/src/import/TransactionImportConnector.js +27 -0
  82. package/dist/src/import/TransactionImportConnector.js.map +1 -0
  83. package/dist/src/import/TransactionImportHandler.d.ts +174 -0
  84. package/dist/src/import/TransactionImportHandler.js +736 -0
  85. package/dist/src/import/TransactionImportHandler.js.map +1 -0
  86. package/dist/src/import/TransactionRules.d.ts +238 -0
  87. package/dist/src/import/TransactionRules.js +522 -0
  88. package/dist/src/import/TransactionRules.js.map +1 -0
  89. package/dist/src/import/TransactionUI.d.ts +181 -0
  90. package/dist/src/import/TransactionUI.js +482 -0
  91. package/dist/src/import/TransactionUI.js.map +1 -0
  92. package/dist/src/import/TransferAnalyzer.d.ts +324 -0
  93. package/dist/src/import/TransferAnalyzer.js +1379 -0
  94. package/dist/src/import/TransferAnalyzer.js.map +1 -0
  95. package/dist/src/import/index.d.ts +11 -0
  96. package/dist/src/import/index.js +12 -0
  97. package/dist/src/import/index.js.map +1 -0
  98. package/dist/src/index.d.ts +11 -0
  99. package/dist/src/index.js +12 -0
  100. package/dist/src/index.js.map +1 -0
  101. package/dist/src/net/crypto.d.ts +33 -0
  102. package/dist/src/net/crypto.js +63 -0
  103. package/dist/src/net/crypto.js.map +1 -0
  104. package/dist/src/net/git.d.ts +49 -0
  105. package/dist/src/net/git.js +137 -0
  106. package/dist/src/net/git.js.map +1 -0
  107. package/dist/src/net/index.d.ts +10 -0
  108. package/dist/src/net/index.js +11 -0
  109. package/dist/src/net/index.js.map +1 -0
  110. package/dist/src/net/middleware.d.ts +61 -0
  111. package/dist/src/net/middleware.js +220 -0
  112. package/dist/src/net/middleware.js.map +1 -0
  113. package/dist/src/net/tokens.d.ts +50 -0
  114. package/dist/src/net/tokens.js +141 -0
  115. package/dist/src/net/tokens.js.map +1 -0
  116. package/dist/src/net/vault.d.ts +67 -0
  117. package/dist/src/net/vault.js +145 -0
  118. package/dist/src/net/vault.js.map +1 -0
  119. package/dist/src/plugins/BackendPlugin.d.ts +91 -0
  120. package/dist/src/plugins/BackendPlugin.js +165 -0
  121. package/dist/src/plugins/BackendPlugin.js.map +1 -0
  122. package/dist/src/plugins/DataPlugin.d.ts +13 -0
  123. package/dist/src/plugins/DataPlugin.js +26 -0
  124. package/dist/src/plugins/DataPlugin.js.map +1 -0
  125. package/dist/src/plugins/ImportPlugin.d.ts +188 -0
  126. package/dist/src/plugins/ImportPlugin.js +204 -0
  127. package/dist/src/plugins/ImportPlugin.js.map +1 -0
  128. package/dist/src/plugins/ReportPlugin.d.ts +132 -0
  129. package/dist/src/plugins/ReportPlugin.js +393 -0
  130. package/dist/src/plugins/ReportPlugin.js.map +1 -0
  131. package/dist/src/plugins/SchemePlugin.d.ts +34 -0
  132. package/dist/src/plugins/SchemePlugin.js +47 -0
  133. package/dist/src/plugins/SchemePlugin.js.map +1 -0
  134. package/dist/src/plugins/ServicePlugin.d.ts +80 -0
  135. package/dist/src/plugins/ServicePlugin.js +168 -0
  136. package/dist/src/plugins/ServicePlugin.js.map +1 -0
  137. package/dist/src/plugins/ToolPlugin.d.ts +27 -0
  138. package/dist/src/plugins/ToolPlugin.js +37 -0
  139. package/dist/src/plugins/ToolPlugin.js.map +1 -0
  140. package/dist/src/plugins/index.d.ts +13 -0
  141. package/dist/src/plugins/index.js +14 -0
  142. package/dist/src/plugins/index.js.map +1 -0
  143. package/dist/src/plugins/plugins.d.ts +101 -0
  144. package/dist/src/plugins/plugins.js +292 -0
  145. package/dist/src/plugins/plugins.js.map +1 -0
  146. package/dist/src/process/Process.d.ts +108 -0
  147. package/dist/src/process/Process.js +335 -0
  148. package/dist/src/process/Process.js.map +1 -0
  149. package/dist/src/process/ProcessConnector.d.ts +24 -0
  150. package/dist/src/process/ProcessConnector.js +28 -0
  151. package/dist/src/process/ProcessConnector.js.map +1 -0
  152. package/dist/src/process/ProcessFile.d.ts +69 -0
  153. package/dist/src/process/ProcessFile.js +145 -0
  154. package/dist/src/process/ProcessFile.js.map +1 -0
  155. package/dist/src/process/ProcessHandler.d.ts +60 -0
  156. package/dist/src/process/ProcessHandler.js +73 -0
  157. package/dist/src/process/ProcessHandler.js.map +1 -0
  158. package/dist/src/process/ProcessStep.d.ts +52 -0
  159. package/dist/src/process/ProcessStep.js +78 -0
  160. package/dist/src/process/ProcessStep.js.map +1 -0
  161. package/dist/src/process/ProcessingSystem.d.ts +60 -0
  162. package/dist/src/process/ProcessingSystem.js +182 -0
  163. package/dist/src/process/ProcessingSystem.js.map +1 -0
  164. package/dist/src/process/index.d.ts +11 -0
  165. package/dist/src/process/index.js +12 -0
  166. package/dist/src/process/index.js.map +1 -0
  167. package/dist/src/reports/conversions.d.ts +8 -0
  168. package/dist/src/reports/conversions.js +47 -0
  169. package/dist/src/reports/conversions.js.map +1 -0
  170. package/dist/src/reports/index.d.ts +6 -0
  171. package/dist/src/reports/index.js +7 -0
  172. package/dist/src/reports/index.js.map +1 -0
  173. package/dist/src/server/ISPDemoServer.d.ts +43 -0
  174. package/dist/src/server/ISPDemoServer.js +112 -0
  175. package/dist/src/server/ISPDemoServer.js.map +1 -0
  176. package/dist/src/server/api.d.ts +15 -0
  177. package/dist/src/server/api.js +27 -0
  178. package/dist/src/server/api.js.map +1 -0
  179. package/dist/src/server/index.d.ts +7 -0
  180. package/dist/src/server/index.js +8 -0
  181. package/dist/src/server/index.js.map +1 -0
  182. package/dist/src/server/router.d.ts +5 -0
  183. package/dist/src/server/router.js +37 -0
  184. package/dist/src/server/router.js.map +1 -0
  185. package/dist/src/system.d.ts +27 -0
  186. package/dist/src/system.js +95 -0
  187. package/dist/src/system.js.map +1 -0
  188. package/dist/tests/TransactionRules.spec.d.ts +1 -0
  189. package/dist/tests/TransactionRules.spec.js +64 -0
  190. package/dist/tests/TransactionRules.spec.js.map +1 -0
  191. package/dist/tests/password.spec.d.ts +1 -0
  192. package/dist/tests/password.spec.js +8 -0
  193. package/dist/tests/password.spec.js.map +1 -0
  194. package/dist/tests/tokens.spec.d.ts +1 -0
  195. package/dist/tests/tokens.spec.js +49 -0
  196. package/dist/tests/tokens.spec.js.map +1 -0
  197. package/dist/tests/vault.spec.d.ts +1 -0
  198. package/dist/tests/vault.spec.js +19 -0
  199. package/dist/tests/vault.spec.js.map +1 -0
  200. package/package.json +3 -3
  201. package/src/import/TransactionImportHandler.ts +5 -1
  202. package/src/index.ts +0 -1
  203. package/src/testing/ProcessingSystemMock.ts +0 -45
  204. package/src/testing/UnitTestImportConnector.ts +0 -86
  205. package/src/testing/UnitTester.ts +0 -231
  206. package/src/testing/index.ts +0 -4
  207. package/src/testing/test-handlers.ts +0 -47
  208. package/tests/TransferAnalyzer-account-address.spec.ts +0 -87
  209. package/tests/TransferAnalyzer-buying-and-selling.spec.ts +0 -354
  210. package/tests/TransferAnalyzer-loans.spec.ts +0 -197
  211. package/tests/TransferAnalyzer-multiple-null-amounts.spec.ts +0 -181
@@ -1,354 +0,0 @@
1
- import { UnitTester } from '../src/testing'
2
-
3
- test('Buying and selling', async () => {
4
-
5
- const tester = new UnitTester()
6
-
7
- tester.addMoney('trade.currency.EUR', 1000000)
8
-
9
- await tester.test(
10
- // Buy 1.5 ETH for 200€ and 1€ fee.
11
- [
12
- {
13
- reason: 'trade',
14
- type: 'currency',
15
- asset: 'EUR',
16
- amount: -200
17
- },
18
- {
19
- reason: 'trade',
20
- type: 'crypto',
21
- asset: 'ETH',
22
- amount: 1.5
23
- },
24
- {
25
- reason: 'fee',
26
- type: 'currency',
27
- asset: 'EUR',
28
- amount: 1
29
- }
30
- ], [[
31
- {
32
- account: 'trade.currency.EUR',
33
- amount: -20100,
34
- description: 'Buy +1.5 ETH',
35
- },
36
- {
37
- account: 'trade.crypto.ETH',
38
- amount: 20000,
39
- data: {
40
- stock: {
41
- change: {
42
- ETH: {
43
- amount: 1.5,
44
- value: 20000,
45
- },
46
- },
47
- },
48
- },
49
- description: 'Buy +1.5 ETH',
50
- },
51
- {
52
- account: 'fee.currency.EUR',
53
- amount: 100,
54
- description: 'Buy +1.5 ETH',
55
- }
56
- ]],
57
- // Sell 1.5 ETH for 250€ and 1€ fee.
58
- [
59
- {
60
- reason: 'trade',
61
- type: 'currency',
62
- asset: 'EUR',
63
- amount: 251
64
- },
65
- {
66
- reason: 'trade',
67
- type: 'crypto',
68
- asset: 'ETH',
69
- amount: -1.5
70
- },
71
- {
72
- reason: 'fee',
73
- type: 'currency',
74
- asset: 'EUR',
75
- amount: 1
76
- }
77
- ], [[
78
- {
79
- account: 'trade.currency.EUR',
80
- amount: 25000,
81
- description: 'Sell -1.5 ETH',
82
- },
83
- {
84
- account: 'trade.crypto.ETH',
85
- amount: -20000,
86
- data: {
87
- stock: {
88
- change: {
89
- ETH: {
90
- amount: -1.5,
91
- value: -20000,
92
- },
93
- },
94
- },
95
- },
96
- description: 'Sell -1.5 ETH',
97
- },
98
- {
99
- account: 'fee.currency.EUR',
100
- amount: 100,
101
- description: 'Sell -1.5 ETH',
102
- },
103
- {
104
- account: 'income.statement.TRADE_PROFIT_CRYPTO',
105
- amount: -5100,
106
- description: 'Sell -1.5 ETH',
107
- }
108
- ]],
109
- // Buy 5 NAKD for 300€, no fee.
110
- [
111
- {
112
- reason: 'trade',
113
- type: 'currency',
114
- asset: 'EUR',
115
- amount: -300
116
- },
117
- {
118
- reason: 'trade',
119
- type: 'stock',
120
- asset: 'NAKD',
121
- amount: 5
122
- }
123
- ], [[
124
- {
125
- account: 'trade.currency.EUR',
126
- amount: -30000,
127
- description: 'Buy +5 NAKD',
128
- },
129
- {
130
- account: 'trade.stock.NAKD',
131
- amount: 30000,
132
- data: {
133
- stock: {
134
- change: {
135
- NAKD: {
136
- amount: 5,
137
- value: 30000,
138
- },
139
- },
140
- },
141
- },
142
- description: 'Buy +5 NAKD',
143
- },
144
- ]],
145
- // Sell 5 NAKD for 200€, no fee.
146
- [
147
- {
148
- reason: 'trade',
149
- type: 'currency',
150
- asset: 'EUR',
151
- amount: 200
152
- },
153
- {
154
- reason: 'trade',
155
- type: 'stock',
156
- asset: 'NAKD',
157
- amount: -5
158
- }
159
- ], [[
160
- {
161
- account: 'trade.currency.EUR',
162
- amount: 20000,
163
- description: 'Sell -5 NAKD',
164
- },
165
- {
166
- account: 'trade.stock.NAKD',
167
- amount: -30000,
168
- data: {
169
- stock: {
170
- change: {
171
- NAKD: {
172
- amount: -5,
173
- value: -30000,
174
- },
175
- },
176
- },
177
- },
178
- description: 'Sell -5 NAKD',
179
- },
180
- {
181
- account: 'expense.statement.TRADE_LOSS_STOCK',
182
- amount: 10000,
183
- description: 'Sell -5 NAKD',
184
- },
185
- ]]
186
- )
187
-
188
- expect(tester.get('trade.currency.EUR')).toBe(994900)
189
- expect(tester.get('trade.stock.NAKD')).toBe(0)
190
- expect(tester.get('expense.statement.TRADE_LOSS_STOCK')).toBe(10000)
191
- expect(tester.get('trade.crypto.ETH')).toBe(0)
192
- expect(tester.get('fee.currency.EUR')).toBe(200)
193
- expect(tester.get('income.statement.TRADE_PROFIT_CRYPTO')).toBe(-5100)
194
- })
195
-
196
- test('Short selling', async () => {
197
-
198
- const tester = new UnitTester()
199
-
200
- tester.set('allowShortSelling', true)
201
- tester.answer('segment0', 'hasBeenRenamed.stock.NAKD', false)
202
-
203
- await tester.test(
204
- // Short sell 100 NAKD for $1000 with $5 fee.
205
- [
206
- {
207
- reason: 'trade',
208
- type: 'currency',
209
- asset: 'USD',
210
- amount: 1000
211
- },
212
- {
213
- reason: 'trade',
214
- type: 'stock',
215
- asset: 'NAKD',
216
- amount: -100
217
- },
218
- {
219
- reason: 'fee',
220
- type: 'currency',
221
- asset: 'USD',
222
- amount: 5
223
- }
224
- ],
225
- [[
226
- {
227
- account: 'trade.currency.USD',
228
- amount: 99500,
229
- data: {
230
- currency: 'USD',
231
- currencyValue: 99500,
232
- rates: {
233
- USD: 1,
234
- },
235
- },
236
- description: 'Short selling -100 NAKD',
237
- },
238
- {
239
- account: 'trade.short.NAKD',
240
- amount: -100000,
241
- data: {
242
- currency: 'USD',
243
- currencyValue: -100000,
244
- rates: {
245
- USD: 1,
246
- },
247
- stock: {
248
- change: {
249
- NAKD: {
250
- amount: -100,
251
- value: -100000,
252
- },
253
- },
254
- },
255
- },
256
- description: 'Short selling -100 NAKD',
257
- },
258
- {
259
- account: 'fee.currency.USD',
260
- amount: 500,
261
- data: {
262
- currency: 'USD',
263
- currencyValue: 500,
264
- rates: {
265
- USD: 1,
266
- },
267
- },
268
- description: 'Short selling -100 NAKD',
269
- },
270
- ]], [
271
- // Buy 100 NAKD back for $900 and $5 fee.
272
- {
273
- reason: 'trade',
274
- type: 'currency',
275
- asset: 'USD',
276
- amount: -900
277
- },
278
- {
279
- reason: 'trade',
280
- type: 'stock',
281
- asset: 'NAKD',
282
- amount: 100
283
- },
284
- {
285
- reason: 'fee',
286
- type: 'currency',
287
- asset: 'USD',
288
- amount: 5
289
- }
290
- ], [[
291
- {
292
- account: 'trade.currency.USD',
293
- amount: -90500,
294
- data: {
295
- currency: 'USD',
296
- currencyValue: -90500,
297
- rates: {
298
- USD: 1,
299
- },
300
- },
301
- description: 'Closing short position +100 NAKD',
302
- },
303
- {
304
- account: 'trade.short.NAKD',
305
- amount: 100000,
306
- data: {
307
- currency: 'USD',
308
- currencyValue: 100000,
309
- rates: {
310
- USD: 1,
311
- },
312
- stock: {
313
- change: {
314
- NAKD: {
315
- amount: 100,
316
- value: 100000,
317
- },
318
- },
319
- },
320
- },
321
- description: 'Closing short position +100 NAKD',
322
- },
323
- {
324
- account: 'fee.currency.USD',
325
- amount: 500,
326
- data: {
327
- currency: 'USD',
328
- currencyValue: 500,
329
- rates: {
330
- USD: 1,
331
- },
332
- },
333
- description: 'Closing short position +100 NAKD',
334
- },
335
- {
336
- account: 'income.statement.TRADE_PROFIT_SHORT',
337
- amount: -10000,
338
- data: {
339
- currency: 'USD',
340
- currencyValue: -10000,
341
- rates: {
342
- USD: 1,
343
- },
344
- },
345
- description: 'Closing short position +100 NAKD',
346
- },
347
- ]],
348
- )
349
-
350
- expect(tester.get('trade.currency.USD')).toBe(9000)
351
- expect(tester.get('fee.currency.USD')).toBe(1000)
352
- expect(tester.get('income.statement.TRADE_PROFIT_SHORT')).toBe(-10000)
353
- expect(tester.get('trade.short.NAKD')).toBe(0)
354
- })
@@ -1,197 +0,0 @@
1
- import { UnitTester } from '../src/testing'
2
-
3
- test('Use partly debt to buy assets', async () => {
4
-
5
- const tester = new UnitTester()
6
-
7
- tester.addMoney('trade.currency.EUR', 10000)
8
- // Set up debt account.
9
- tester.set('account.debt.currency.EUR', '8001')
10
-
11
- await tester.test(
12
- // Buy 2.0 ETH for 200€ when we have only 100€ on the account.
13
- [
14
- {
15
- reason: 'trade',
16
- type: 'currency',
17
- asset: 'EUR',
18
- amount: -200
19
- },
20
- {
21
- reason: 'trade',
22
- type: 'crypto',
23
- asset: 'ETH',
24
- amount: 2.0
25
- },
26
- ], [[
27
- {
28
- account: 'trade.currency.EUR',
29
- amount: -10000,
30
- description: 'Buy +2 ETH',
31
- },
32
- {
33
- account: 'trade.crypto.ETH',
34
- amount: 20000,
35
- data: {
36
- stock: {
37
- change: {
38
- ETH: {
39
- amount: 2,
40
- value: 20000,
41
- },
42
- },
43
- },
44
- },
45
- description: 'Buy +2 ETH',
46
- },
47
- {
48
- account: 'debt.currency.EUR',
49
- amount: -10000,
50
- description: 'Buy +2 ETH',
51
- },
52
- ]]
53
- )
54
-
55
- expect(tester.get('trade.currency.EUR')).toBe(0)
56
- expect(tester.get('debt.currency.EUR')).toBe(-10000)
57
- expect(tester.get('trade.crypto.ETH')).toBe(20000)
58
- })
59
-
60
- test('Use all debt to buy assets', async () => {
61
-
62
- const tester = new UnitTester()
63
-
64
- tester.addMoney('trade.currency.EUR', 0)
65
- // Set up debt account.
66
- tester.set('account.debt.currency.EUR', '8001')
67
-
68
- await tester.test(
69
- // Buy 2.0 ETH for 200€ when we have only 0€ on the account.
70
- [
71
- {
72
- reason: 'trade',
73
- type: 'currency',
74
- asset: 'EUR',
75
- amount: -200
76
- },
77
- {
78
- reason: 'trade',
79
- type: 'crypto',
80
- asset: 'ETH',
81
- amount: 2.0
82
- },
83
- ], [[
84
- {
85
- account: 'debt.currency.EUR',
86
- amount: -20000,
87
- description: 'Buy +2 ETH',
88
- },
89
- {
90
- account: 'trade.crypto.ETH',
91
- amount: 20000,
92
- data: {
93
- stock: {
94
- change: {
95
- ETH: {
96
- amount: 2,
97
- value: 20000,
98
- },
99
- },
100
- },
101
- },
102
- description: 'Buy +2 ETH',
103
- },
104
- ]]
105
- )
106
-
107
- expect(tester.get('trade.currency.EUR')).toBe(0)
108
- expect(tester.get('debt.currency.EUR')).toBe(-20000)
109
- expect(tester.get('trade.crypto.ETH')).toBe(20000)
110
- })
111
-
112
- test('Pay back debt more than fully', async () => {
113
-
114
- const tester = new UnitTester()
115
-
116
- tester.set('account.debt.currency.EUR', '8001')
117
- tester.addMoney('debt.currency.EUR', -10000)
118
-
119
- await tester.test(
120
- // Deposit 200€ to account having -100€ debt.
121
- [
122
- {
123
- reason: 'deposit',
124
- type: 'external',
125
- asset: 'EUR',
126
- amount: -200
127
- },
128
- {
129
- reason: 'deposit',
130
- type: 'currency',
131
- asset: 'EUR',
132
- amount: 200
133
- }
134
- ], [[
135
- {
136
- account: 'deposit.external.EUR',
137
- amount: -20000,
138
- description: 'Deposit to Coinbase service',
139
- },
140
- {
141
- account: 'deposit.currency.EUR',
142
- amount: 10000,
143
- description: 'Deposit to Coinbase service',
144
- },
145
- {
146
- account: 'debt.currency.EUR',
147
- amount: 10000,
148
- description: 'Deposit to Coinbase service',
149
- }
150
- ]]
151
- )
152
-
153
- expect(tester.get('deposit.external.EUR')).toBe(-20000)
154
- expect(tester.get('deposit.currency.EUR')).toBe(10000)
155
- expect(tester.get('debt.currency.EUR')).toBe(0)
156
- })
157
-
158
- test('Pay back partial debt', async () => {
159
-
160
- const tester = new UnitTester()
161
-
162
- tester.set('account.debt.currency.EUR', '8001')
163
- tester.addMoney('debt.currency.EUR', -30000)
164
-
165
- await tester.test(
166
- // Deposit 200€ to account having -300€ debt.
167
- [
168
- {
169
- reason: 'deposit',
170
- type: 'external',
171
- asset: 'EUR',
172
- amount: -200
173
- },
174
- {
175
- reason: 'deposit',
176
- type: 'currency',
177
- asset: 'EUR',
178
- amount: 200
179
- }
180
- ], [[
181
- {
182
- account: 'deposit.external.EUR',
183
- amount: -20000,
184
- description: 'Deposit to Coinbase service',
185
- },
186
- {
187
- account: 'debt.currency.EUR',
188
- amount: 20000,
189
- description: 'Deposit to Coinbase service',
190
- }
191
- ]]
192
- )
193
-
194
- expect(tester.get('deposit.external.EUR')).toBe(-20000)
195
- expect(tester.get('deposit.currency.EUR')).toBe(0)
196
- expect(tester.get('debt.currency.EUR')).toBe(-10000)
197
- })
@@ -1,181 +0,0 @@
1
- import { Asset } from '@tasenor/common'
2
- import { UnitTester } from '../src/testing'
3
-
4
- test('Handle complex multipart dividend', async () => {
5
-
6
- const tester = new UnitTester()
7
-
8
- tester.set('account.dividend.currency.USD', '5000')
9
- tester.set('account.income.statement.LISTED_CASH_DIVIDEND', '5001')
10
- tester.set('account.tax.statement.WITHHOLDING_TAX', '6000')
11
-
12
- await tester.test([
13
- {
14
- reason: 'dividend',
15
- type: 'currency',
16
- asset: 'USD',
17
- amount: null,
18
- data: {
19
- text: 'CORR PRA(US21870U3041) Cash Dividend USD 0.460938 per Share (Ordinary Dividend)'
20
- }
21
- },
22
- {
23
- reason: 'income',
24
- type: 'statement',
25
- asset: 'LISTED_CASH_DIVIDEND',
26
- data: {
27
- text: 'CORR PRA(US21870U3041) Cash Dividend USD 0.460938 per Share (Ordinary Dividend)',
28
- currency: 'USD',
29
- currencyValue: -8712,
30
- count: 189,
31
- asset: 'CORR PRA' as Asset as Asset,
32
- perAsset: 0.460938,
33
- rates: {
34
- USD: 0.8929
35
- }
36
- },
37
- value: -7779
38
- },
39
- {
40
- reason: 'dividend',
41
- type: 'currency',
42
- asset: 'USD',
43
- amount: null,
44
- data: {
45
- text: 'CORR PRA(US21870U3041) Payment in Lieu of Dividend (Ordinary Dividend)'
46
- }
47
- },
48
- {
49
- reason: 'income',
50
- type: 'statement',
51
- asset: 'LISTED_CASH_DIVIDEND',
52
- data: {
53
- text: 'CORR PRA(US21870U3041) Payment in Lieu of Dividend (Ordinary Dividend)',
54
- currency: 'USD',
55
- currencyValue: -507,
56
- count: 1,
57
- asset: 'CORR PRA' as Asset as Asset,
58
- perAsset: 5.07,
59
- rates: {
60
- USD: 0.8929
61
- }
62
- },
63
- value: -453
64
- },
65
- {
66
- reason: 'tax',
67
- type: 'statement',
68
- asset: 'WITHHOLDING_TAX',
69
- data: {
70
- text: 'CORR PRA(US21870U3041) Cash Dividend USD 0.460938 per Share - US Tax',
71
- currency: 'USD',
72
- currencyValue: 1307,
73
- rates: {
74
- USD: 0.8929
75
- }
76
- },
77
- value: 1167
78
- },
79
- {
80
- reason: 'tax',
81
- type: 'statement',
82
- asset: 'WITHHOLDING_TAX',
83
- data: {
84
- text: 'CORR PRA(US21870U3041) Payment in Lieu of Dividend - US Tax',
85
- currency: 'USD',
86
- currencyValue: 76,
87
- rates: {
88
- USD: 0.8929
89
- }
90
- },
91
- value: 68
92
- }
93
- ],
94
- [[
95
- {
96
- account: 'dividend.currency.USD',
97
- amount: 6612,
98
- data: {
99
- currency: 'USD',
100
- currencyValue: 7405,
101
- rates: {
102
- USD: 0.8929,
103
- },
104
- text: 'CORR PRA(US21870U3041) Cash Dividend USD 0.460938 per Share (Ordinary Dividend)',
105
- },
106
- description: 'Dividend CORR PRA',
107
- },
108
- {
109
- account: 'income.statement.LISTED_CASH_DIVIDEND',
110
- amount: -7779,
111
- data: {
112
- asset: 'CORR PRA' as Asset,
113
- count: 189,
114
- currency: 'USD',
115
- currencyValue: -8712,
116
- perAsset: 0.460938,
117
- rates: {
118
- USD: 0.8929,
119
- },
120
- text: 'CORR PRA(US21870U3041) Cash Dividend USD 0.460938 per Share (Ordinary Dividend)',
121
- },
122
- description: 'Dividend CORR PRA',
123
- },
124
- {
125
- account: 'dividend.currency.USD',
126
- amount: 385,
127
- data: {
128
- currency: 'USD',
129
- currencyValue: 431,
130
- rates: {
131
- USD: 0.8929,
132
- },
133
- text: 'CORR PRA(US21870U3041) Payment in Lieu of Dividend (Ordinary Dividend)',
134
- },
135
- description: 'Dividend CORR PRA',
136
- },
137
- {
138
- account: 'income.statement.LISTED_CASH_DIVIDEND',
139
- amount: -453,
140
- data: {
141
- asset: 'CORR PRA' as Asset,
142
- count: 1,
143
- currency: 'USD',
144
- currencyValue: -507,
145
- perAsset: 5.07,
146
- rates: {
147
- USD: 0.8929,
148
- },
149
- text: 'CORR PRA(US21870U3041) Payment in Lieu of Dividend (Ordinary Dividend)',
150
- },
151
- description: 'Dividend CORR PRA',
152
- },
153
- {
154
- account: 'tax.statement.WITHHOLDING_TAX',
155
- amount: 1167,
156
- data: {
157
- currency: 'USD',
158
- currencyValue: 1307,
159
- rates: {
160
- USD: 0.8929,
161
- },
162
- text: 'CORR PRA(US21870U3041) Cash Dividend USD 0.460938 per Share - US Tax',
163
- },
164
- description: 'Dividend CORR PRA',
165
- },
166
- {
167
- account: 'tax.statement.WITHHOLDING_TAX',
168
- amount: 68,
169
- data: {
170
- currency: 'USD',
171
- currencyValue: 76,
172
- rates: {
173
- USD: 0.8929,
174
- },
175
- text: 'CORR PRA(US21870U3041) Payment in Lieu of Dividend - US Tax',
176
- },
177
- description: 'Dividend CORR PRA',
178
- },
179
- ]]
180
- )
181
- })