summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/reports/store/mutations.js
blob: acaa98754b0e8610cccaf9002e22cf88deb102a3 (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
import * as types from './mutation_types';
import { countRecentlyFailedTests } from './utils';

export default {
  [types.SET_ENDPOINT](state, endpoint) {
    state.endpoint = endpoint;
  },
  [types.REQUEST_REPORTS](state) {
    state.isLoading = true;
  },
  [types.RECEIVE_REPORTS_SUCCESS](state, response) {
    state.hasError = response.suites.some(suite => suite.status === 'error');

    state.isLoading = false;

    state.summary.total = response.summary.total;
    state.summary.resolved = response.summary.resolved;
    state.summary.failed = response.summary.failed;
    state.summary.errored = response.summary.errored;
    state.summary.recentlyFailed = countRecentlyFailedTests(response.suites);

    state.status = response.status;
    state.reports = response.suites;

    state.reports.forEach((report, i) => {
      if (!state.reports[i].summary) return;
      state.reports[i].summary.recentlyFailed = countRecentlyFailedTests(report);
    });
  },
  [types.RECEIVE_REPORTS_ERROR](state) {
    state.isLoading = false;
    state.hasError = true;

    state.reports = [];
    state.summary = {
      total: 0,
      resolved: 0,
      failed: 0,
      errored: 0,
      recentlyFailed: 0,
    };
    state.status = null;
  },
  [types.SET_ISSUE_MODAL_DATA](state, payload) {
    state.modal.title = payload.issue.name;

    Object.keys(payload.issue).forEach(key => {
      if (Object.prototype.hasOwnProperty.call(state.modal.data, key)) {
        state.modal.data[key] = {
          ...state.modal.data[key],
          value: payload.issue[key],
        };
      }
    });
  },
};