summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/pipelines/stores/test_reports/getters.js
blob: 03680de0fa9a19d82b1133c318eb9be03e855001 (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
import { addIconStatus, formatFilePath, formattedTime } from './utils';

export const getTestSuites = (state) => {
  const { test_suites: testSuites = [] } = state.testReports;

  return testSuites.map((suite) => ({
    ...suite,
    formattedTime: formattedTime(suite.total_time),
  }));
};

export const getSelectedSuite = (state) =>
  state.testReports?.test_suites?.[state.selectedSuiteIndex] || {};

export const getSuiteTests = (state) => {
  const { test_cases: testCases = [] } = getSelectedSuite(state);
  const { page, perPage } = state.pageInfo;
  const start = (page - 1) * perPage;

  return testCases
    .map((testCase) => ({
      ...testCase,
      classname: testCase.classname || '',
      name: testCase.name || '',
      filePath: testCase.file ? `${state.blobPath}/${formatFilePath(testCase.file)}` : null,
    }))
    .map(addIconStatus)
    .slice(start, start + perPage);
};

export const getSuiteTestCount = (state) => getSelectedSuite(state)?.test_cases?.length || 0;