mock-project.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { docId } from './mock-doc'
  2. import { Folder } from '../../../../../types/folder'
  3. import { UserId } from '../../../../../types/user'
  4. import { ProjectCompiler } from '../../../../../types/project-settings'
  5. export const rootFolderId = '012345678901234567890123'
  6. export const figuresFolderId = '123456789012345678901234'
  7. export const figureId = '234567890123456789012345'
  8. export const mockProject = ({
  9. projectFeatures = {},
  10. projectOwner = undefined,
  11. spellCheckLanguage = 'en',
  12. rootFolder = null,
  13. trackChangesState = false,
  14. }: any = {}) => {
  15. return {
  16. _id: 'test-project',
  17. name: 'Test Project',
  18. spellCheckLanguage,
  19. rootDocId: '_root_doc_id',
  20. rootFolder:
  21. rootFolder ||
  22. ([
  23. {
  24. _id: rootFolderId,
  25. name: 'rootFolder',
  26. docs: [
  27. {
  28. _id: docId,
  29. name: 'test.tex',
  30. },
  31. ],
  32. folders: [
  33. {
  34. _id: figuresFolderId,
  35. name: 'figures',
  36. docs: [
  37. {
  38. _id: 'fake-nested-doc-id',
  39. name: 'foo.tex',
  40. },
  41. ],
  42. folders: [],
  43. fileRefs: [
  44. {
  45. _id: figureId,
  46. name: 'frog.jpg',
  47. hash: '42',
  48. },
  49. {
  50. _id: 'fake-figure-id',
  51. name: 'unicorn.png',
  52. hash: '43',
  53. },
  54. ],
  55. },
  56. ],
  57. fileRefs: [],
  58. },
  59. ] as Folder[]),
  60. features: {
  61. trackChanges: true,
  62. ...projectFeatures,
  63. },
  64. compiler: 'pdflatex' as ProjectCompiler,
  65. imageName: 'texlive-full:2024.1',
  66. trackChangesState,
  67. invites: [],
  68. members: [],
  69. owner: projectOwner || {
  70. _id: '124abd' as UserId,
  71. email: 'owner@example.com',
  72. first_name: 'Test',
  73. last_name: 'Owner',
  74. privileges: 'owner',
  75. signUpDate: new Date('2025-07-07').toISOString(),
  76. },
  77. }
  78. }