Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/ci/pipeline_details/test_reports')
-rw-r--r--spec/frontend/ci/pipeline_details/test_reports/mock_data.js8
-rw-r--r--spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js44
-rw-r--r--spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js10
3 files changed, 45 insertions, 17 deletions
diff --git a/spec/frontend/ci/pipeline_details/test_reports/mock_data.js b/spec/frontend/ci/pipeline_details/test_reports/mock_data.js
index 7c9f9287c86..643863c9d24 100644
--- a/spec/frontend/ci/pipeline_details/test_reports/mock_data.js
+++ b/spec/frontend/ci/pipeline_details/test_reports/mock_data.js
@@ -1,4 +1,4 @@
-import { TestStatus } from '~/ci/pipeline_details/constants';
+import { testStatus } from '~/ci/pipeline_details/constants';
export default [
{
@@ -7,7 +7,7 @@ export default [
execution_time: 0,
name: 'Test#skipped text',
stack_trace: null,
- status: TestStatus.SKIPPED,
+ status: testStatus.SKIPPED,
system_output: null,
},
{
@@ -16,7 +16,7 @@ export default [
execution_time: 0,
name: 'Test#error text',
stack_trace: null,
- status: TestStatus.ERROR,
+ status: testStatus.ERROR,
system_output: null,
},
{
@@ -25,7 +25,7 @@ export default [
execution_time: 0,
name: 'Test#unknown text',
stack_trace: null,
- status: TestStatus.UNKNOWN,
+ status: testStatus.UNKNOWN,
system_output: null,
},
];
diff --git a/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js b/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js
index d318aa36bcf..836c35977b4 100644
--- a/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js
+++ b/spec/frontend/ci/pipeline_details/test_reports/test_reports_spec.js
@@ -5,7 +5,12 @@ import Vue from 'vue';
import Vuex from 'vuex';
import testReports from 'test_fixtures/pipelines/test_report.json';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-import { getParameterValues } from '~/lib/utils/url_utility';
+import {
+ getParameterValues,
+ updateHistory,
+ removeParams,
+ setUrlParams,
+} from '~/lib/utils/url_utility';
import EmptyState from '~/ci/pipeline_details/test_reports/empty_state.vue';
import TestReports from '~/ci/pipeline_details/test_reports/test_reports.vue';
import TestSummary from '~/ci/pipeline_details/test_reports/test_summary.vue';
@@ -17,6 +22,9 @@ Vue.use(Vuex);
jest.mock('~/lib/utils/url_utility', () => ({
...jest.requireActual('~/lib/utils/url_utility'),
getParameterValues: jest.fn().mockReturnValue([]),
+ updateHistory: jest.fn().mockName('updateHistory'),
+ removeParams: jest.fn().mockName('removeParams'),
+ setUrlParams: jest.fn().mockName('setUrlParams'),
}));
describe('Test reports app', () => {
@@ -36,7 +44,7 @@ describe('Test reports app', () => {
removeSelectedSuiteIndex: jest.fn(),
};
- const createComponent = ({ state = {} } = {}) => {
+ const createComponent = ({ state = {}, getterStubs = {} } = {}) => {
store = new Vuex.Store({
modules: {
testReports: {
@@ -48,7 +56,10 @@ describe('Test reports app', () => {
...state,
},
actions: actionSpies,
- getters,
+ getters: {
+ ...getters,
+ ...getterStubs,
+ },
},
},
});
@@ -124,24 +135,41 @@ describe('Test reports app', () => {
describe('when a suite is clicked', () => {
beforeEach(() => {
- createComponent({ state: { hasFullReport: true } });
+ document.title = 'Test reports';
+ createComponent({
+ state: { hasFullReport: true },
+ getters: { getSelectedSuite: jest.fn().mockReturnValue({ name: 'test' }) },
+ });
testSummaryTable().vm.$emit('row-click', 0);
});
- it('should call setSelectedSuiteIndex and fetchTestSuite', () => {
- expect(actionSpies.setSelectedSuiteIndex).toHaveBeenCalled();
- expect(actionSpies.fetchTestSuite).toHaveBeenCalled();
+ it('should call setSelectedSuiteIndex, fetchTestSuite and updateHistory', () => {
+ expect(actionSpies.setSelectedSuiteIndex).toHaveBeenCalledWith(expect.anything(Object), 0);
+ expect(actionSpies.fetchTestSuite).toHaveBeenCalledWith(expect.anything(Object), 0);
+ expect(setUrlParams).toHaveBeenCalledWith({ job_name: undefined });
+ expect(updateHistory).toHaveBeenCalledWith({
+ replace: true,
+ title: 'Test reports',
+ url: undefined,
+ });
});
});
describe('when clicking back to summary', () => {
beforeEach(() => {
+ document.title = 'Test reports';
createComponent({ state: { selectedSuiteIndex: 0 } });
testSummary().vm.$emit('on-back-click');
});
- it('should call removeSelectedSuiteIndex', () => {
+ it('should call removeSelectedSuiteIndex and updateHistory', () => {
expect(actionSpies.removeSelectedSuiteIndex).toHaveBeenCalled();
+ expect(removeParams).toHaveBeenCalledWith(['job_name']);
+ expect(updateHistory).toHaveBeenCalledWith({
+ replace: true,
+ title: 'Test reports',
+ url: undefined,
+ });
});
});
});
diff --git a/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js b/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js
index 5bdea6bbcbf..181b8df31f4 100644
--- a/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js
+++ b/spec/frontend/ci/pipeline_details/test_reports/test_suite_table_spec.js
@@ -5,7 +5,7 @@ import Vuex from 'vuex';
import testReports from 'test_fixtures/pipelines/test_report.json';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import SuiteTable, { i18n } from '~/ci/pipeline_details/test_reports/test_suite_table.vue';
-import { TestStatus } from '~/ci/pipeline_details/constants';
+import { testStatus } from '~/ci/pipeline_details/constants';
import * as getters from '~/ci/pipeline_details/stores/test_reports/getters';
import { formatFilePath } from '~/ci/pipeline_details/stores/test_reports/utils';
import { ARTIFACTS_EXPIRED_ERROR_MESSAGE } from '~/ci/pipeline_details/stores/test_reports/constants';
@@ -92,10 +92,10 @@ describe('Test reports suite table', () => {
});
it.each([
- TestStatus.ERROR,
- TestStatus.FAILED,
- TestStatus.SKIPPED,
- TestStatus.SUCCESS,
+ testStatus.ERROR,
+ testStatus.FAILED,
+ testStatus.SKIPPED,
+ testStatus.SUCCESS,
'unknown',
])('renders the correct icon for test case with %s status', (status) => {
const test = testCases.findIndex((x) => x.status === status);