events.test.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const { eq, ok } = require('../../helpers/assert');
  2. const { makeNetwork, makePeer } = require('../../helpers/setup');
  3. describe('events: create + list + attend', (t) => {
  4. t('A creates event', async () => {
  5. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  6. const r = await A.use('events').createEvent('Concert', 'desc', '2030-12-01T20:00:00Z', 'venue', 0, '', [], ['music'], 'public', '');
  7. ok(r);
  8. const list = await A.use('events').listAll(null, 'all');
  9. ok(list.length >= 1);
  10. eq(list[0].title, 'Concert');
  11. });
  12. t('A toggles attendance on own event', async () => {
  13. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  14. const r = await A.use('events').createEvent('Party', 'd', '2030-12-01', '', 0, '', [], [], 'public', '');
  15. await A.use('events').toggleAttendee(r.key);
  16. const ev = await A.use('events').getEventById(r.key);
  17. ok(ev.attendees.includes(A.keypair.id));
  18. });
  19. t('B (other user) attends A event', async () => {
  20. const net = makeNetwork(); const A = makePeer(net); const B = makePeer(net);
  21. A.setActor();
  22. await A.use('events').createEvent('Open', 'd', '2030-12-01', '', 0, '', [], [], 'public', '');
  23. B.setActor();
  24. const before = await B.use('events').listAll(null, 'all');
  25. const ev = before.find(e => e.title === 'Open');
  26. ok(ev);
  27. await B.use('events').toggleAttendee(ev.id);
  28. const after = await B.use('events').listAll(null, 'all');
  29. const updated = after.find(e => e.title === 'Open');
  30. ok(updated.attendees.includes(B.keypair.id));
  31. });
  32. t('A deletes own event', async () => {
  33. const net = makeNetwork(); const A = makePeer(net); A.setActor();
  34. const r = await A.use('events').createEvent('X', 'd', '2030-12-01', '', 0, '', [], [], 'public', '');
  35. await A.use('events').deleteEventById(r.key);
  36. const list = await A.use('events').listAll(null, 'all');
  37. eq(list.length, 0);
  38. });
  39. });