test_util.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { Model, createServer } from 'miragejs'
  2. import type { User } from '@/models/user'
  3. import type { History } from '@/models/history'
  4. import type { Log } from '@/models/log'
  5. import { seedUser, seedHistory, seedLog } from '@/test/factories'
  6. export function mockAPI() {
  7. if (process.env.NODE_ENV === 'development') {
  8. console.log('in development mode, starting mock server ... ')
  9. const server = createServer({
  10. environment: process.env.NODE_ENV,
  11. factories: {
  12. user: seedUser(),
  13. history: seedHistory(),
  14. log: seedLog(),
  15. },
  16. models: {
  17. user: Model.extend<Partial<User>>({}),
  18. history: Model.extend<Partial<History>>({}),
  19. log: Model.extend<Partial<Log>>({}),
  20. },
  21. routes() {
  22. this.namespace = '/api'
  23. this.get('/users', () => {
  24. return this.schema.all('user')
  25. })
  26. this.get('/histories', () => {
  27. return this.schema.all('history')
  28. })
  29. this.get('/logs', () => {
  30. return this.schema.all('log')
  31. })
  32. },
  33. seeds(server) {
  34. server.createList('user', 20)
  35. server.createList('history', 50)
  36. server.createList('log', 50)
  37. },
  38. })
  39. return server
  40. }
  41. console.log('Not in development mode, not starting mock server ... ')
  42. return null
  43. }