PublishersGetter.test.mjs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { vi, expect } from 'vitest'
  2. import sinon from 'sinon'
  3. import path from 'node:path'
  4. const modulePath = path.join(
  5. import.meta.dirname,
  6. '../../../../app/src/Features/Publishers/PublishersGetter.mjs'
  7. )
  8. describe('PublishersGetter', function () {
  9. beforeEach(async function (ctx) {
  10. ctx.publisher = {
  11. _id: 'mock-publsiher-id',
  12. slug: 'ieee',
  13. fetchV1Data: sinon.stub(),
  14. }
  15. ctx.UserMembershipsHandler = {
  16. promises: {
  17. getEntitiesByUser: sinon.stub().resolves([ctx.publisher]),
  18. },
  19. }
  20. ctx.UserMembershipEntityConfigs = {
  21. publisher: {
  22. modelName: 'Publisher',
  23. canCreate: true,
  24. fields: {
  25. primaryKey: 'slug',
  26. },
  27. },
  28. }
  29. vi.doMock('../../../../app/src/Features/User/UserGetter', () => ({
  30. default: ctx.UserGetter,
  31. }))
  32. vi.doMock(
  33. '../../../../app/src/Features/UserMembership/UserMembershipsHandler',
  34. () => ({
  35. default: ctx.UserMembershipsHandler,
  36. })
  37. )
  38. vi.doMock(
  39. '../../../../app/src/Features/UserMembership/UserMembershipEntityConfigs',
  40. () => ({
  41. default: ctx.UserMembershipEntityConfigs,
  42. })
  43. )
  44. ctx.PublishersGetter = (await import(modulePath)).default
  45. ctx.userId = '12345abcde'
  46. })
  47. describe('getManagedPublishers', function () {
  48. it('fetches v1 data before returning publisher list', async function (ctx) {
  49. const publishers =
  50. await ctx.PublishersGetter.promises.getManagedPublishers(ctx.userId)
  51. expect(publishers.length).to.equal(1)
  52. })
  53. })
  54. })