banking.test.js 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const { eq, ok } = require('../../helpers/assert');
  2. const { makeNetwork, makePeer } = require('../../helpers/setup');
  3. describe('banking: address management (no RPC)', (t) => {
  4. t('A adds own ECO address', async () => {
  5. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  6. await A.use('banking').addAddress({ userId: A.keypair.id, address: 'ECoinAddrAAA1111111111111111' });
  7. const addr = await A.use('banking').getUserAddress(A.keypair.id);
  8. eq(addr, 'ECoinAddrAAA1111111111111111');
  9. });
  10. t('A sets address (publishes if self)', async () => {
  11. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  12. await A.use('banking').setUserAddress(A.keypair.id, 'ECoinAddrXYZ222222222222222', true);
  13. const addr = await A.use('banking').getUserAddress(A.keypair.id);
  14. eq(addr, 'ECoinAddrXYZ222222222222222');
  15. });
  16. t('listAddressesMerged returns combined view', async () => {
  17. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  18. await A.use('banking').addAddress({ userId: A.keypair.id, address: 'ECoinAddrZ4444444444444444' });
  19. const merged = await A.use('banking').listAddressesMerged();
  20. ok(Array.isArray(merged));
  21. });
  22. t('A removes own address', async () => {
  23. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  24. await A.use('banking').addAddress({ userId: A.keypair.id, address: 'addr1' });
  25. await A.use('banking').removeAddress({ userId: A.keypair.id });
  26. const addr = await A.use('banking').getUserAddress(A.keypair.id);
  27. eq(addr, null);
  28. });
  29. });
  30. describe('banking: claims and epochs (no RPC)', (t) => {
  31. t('hasClaimedThisMonth returns boolean', async () => {
  32. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  33. const claimed = await A.use('banking').hasClaimedThisMonth(A.keypair.id);
  34. eq(typeof claimed, 'boolean');
  35. });
  36. t('getUbiClaimHistory returns history object', async () => {
  37. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  38. const history = await A.use('banking').getUbiClaimHistory(A.keypair.id);
  39. ok(history);
  40. eq(typeof history.claimCount, 'number');
  41. });
  42. t('listBanking returns object', async () => {
  43. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  44. const result = await A.use('banking').listBanking('all').catch(() => null);
  45. ok(result === null || typeof result === 'object');
  46. });
  47. t('getBankingData returns user banking info', async () => {
  48. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  49. const data = await A.use('banking').getBankingData(A.keypair.id).catch(() => null);
  50. ok(data === null || typeof data === 'object');
  51. });
  52. });
  53. describe('banking: pub state', (t) => {
  54. t('isPubNode returns boolean', async () => {
  55. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  56. const isPub = A.use('banking').isPubNode();
  57. eq(typeof isPub, 'boolean');
  58. });
  59. t('getConfiguredPubId returns string or null', async () => {
  60. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  61. const pid = A.use('banking').getConfiguredPubId();
  62. ok(typeof pid === 'string' || pid === null || pid === undefined);
  63. });
  64. t('DEFAULT_RULES exported', async () => {
  65. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  66. const rules = A.use('banking').DEFAULT_RULES;
  67. ok(rules);
  68. ok(rules.caps);
  69. });
  70. });