vitest.setup.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { vi } from 'vitest'
  2. import { createPinia, setActivePinia } from 'pinia'
  3. // Мокаем Nuxt
  4. vi.mock('#app', () => ({
  5. useNuxtApp: () => ({
  6. $api: {
  7. user: {
  8. getInfo: vi.fn().mockResolvedValue({
  9. user_info: {
  10. name: 'Test User',
  11. image: 'test.jpg'
  12. },
  13. main_info: {
  14. Группа: 'Test Group'
  15. },
  16. courses: [{
  17. title: 'Test Course'
  18. }]
  19. })
  20. }
  21. }
  22. })
  23. }))
  24. // Мокаем #imports
  25. vi.mock('#imports', () => ({
  26. useRouter: () => ({
  27. push: vi.fn(),
  28. replace: vi.fn(),
  29. back: vi.fn(),
  30. currentRoute: {
  31. value: {
  32. path: '/'
  33. }
  34. }
  35. }),
  36. useNuxtApp: () => ({
  37. $api: {
  38. user: {
  39. getInfo: vi.fn().mockResolvedValue({
  40. user_info: {
  41. name: 'Test User',
  42. image: 'test.jpg'
  43. },
  44. main_info: {
  45. Группа: 'Test Group'
  46. },
  47. courses: [{
  48. title: 'Test Course'
  49. }]
  50. })
  51. }
  52. }
  53. }),
  54. ref: (value: unknown) => ({ value })
  55. }))
  56. // Мокаем Vue
  57. vi.mock('vue', async (importOriginal) => {
  58. const actual = await importOriginal() as unknown
  59. return {
  60. ...actual,
  61. ref: (value: unknown) => ({ value }),
  62. defineComponent: (options: unknown) => ({
  63. ...options,
  64. __vccOpts: options
  65. }),
  66. onMounted: vi.fn(),
  67. onUnmounted: vi.fn(),
  68. computed: (getter: () => unknown) => ({
  69. value: getter()
  70. })
  71. }
  72. })
  73. // Мокаем Pinia
  74. vi.mock('pinia', async () => {
  75. const actual = await vi.importActual('pinia')
  76. return {
  77. ...actual,
  78. defineStore: (id: string, setup: unknown) => {
  79. const store = setup()
  80. return () => store
  81. },
  82. createPinia: () => ({
  83. install: vi.fn()
  84. }),
  85. setActivePinia: vi.fn()
  86. }
  87. })
  88. // Создаем глобальный экземпляр Pinia
  89. const pinia = createPinia()
  90. setActivePinia(pinia)
  91. // Экспортируем для использования в тестах
  92. export { pinia }