summaryrefslogtreecommitdiff
path: root/spec/frontend_integration/test_helpers/mock_server/index.js
blob: 2aebdefaafb9dfa0c6047159679e628e0cf63d12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import { Server, Model, RestSerializer } from 'miragejs';
import {
  getProject,
  getEmptyProject,
  getBranch,
  getMergeRequests,
  getRepositoryFiles,
  getBlobReadme,
  getBlobImage,
  getBlobZip,
} from 'test_helpers/fixtures';
import setupRoutes from './routes';

export const createMockServerOptions = () => ({
  models: {
    project: Model,
    branch: Model,
    mergeRequest: Model,
    file: Model,
    userPermission: Model,
  },
  serializers: {
    application: RestSerializer.extend({
      root: false,
    }),
  },
  seeds(schema) {
    schema.db.loadData({
      files: getRepositoryFiles().map((path) => ({ path })),
      projects: [getProject(), getEmptyProject()],
      branches: [getBranch()],
      mergeRequests: getMergeRequests(),
      filesRaw: [
        {
          raw: getBlobReadme(),
          path: 'README.md',
        },
        {
          raw: getBlobZip(),
          path: 'Gemfile.zip',
        },
        {
          raw: getBlobImage(),
          path: 'files/images/logo-white.png',
        },
      ],
      userPermissions: [
        {
          createMergeRequestIn: true,
          readMergeRequest: true,
          pushCode: true,
        },
      ],
    });
  },
  routes() {
    this.namespace = '';
    this.urlPrefix = '/';

    setupRoutes(this);
  },
});

export const createMockServer = () => {
  const server = new Server(createMockServerOptions());

  return server;
};