Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. const User = require('./models/user');
  2.  
  3. description(Tag parser'', () => {
  4. it('should parse tag stirng to query map, and remove query when user is not exists', async () => {
  5. // bob, id: 1
  6. // foo, id: 2
  7. // system is no such user
  8. const tagString = 'fav:bob fav:foo fav:system threshold:1';
  9. const queryMap = await tagString
  10. .split(/\s+/)
  11. .reduce(async (accuPromise, tag) => {
  12. const [, name, value] = tag.match(/^(.+):(.+)$/);
  13. if (/^fav/.test(name)) {
  14. const user = await User.find({ where: { name } });
  15. if (user) {
  16. const accumulator = await accuPromise;
  17. return Promise.resolve({ [name]: user.id });
  18. }
  19.  
  20. return accuPromise;
  21. }
  22.  
  23. const accumulator = await accuPromise;
  24. return Promise.resolve({ ...accumulator, [name]: value });
  25. }, Promise.resolve({}));
  26.  
  27. expect(queryMap).toEqual({ fav: [1, 2], threshold: ['1'] });
  28. });
  29. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement