From 0073be9bf70f79ece094a28ed4d897636ba8ddc8 Mon Sep 17 00:00:00 2001 From: Filipa Lacerda Date: Thu, 11 Oct 2018 13:39:20 +0100 Subject: [PATCH] Adds `.json` to the end of pipelines endpoint When the job page is rendered we fetch the pipeline endpoint to render the stages in the sidebar. Without `.json` the response is cached, and when the user goes back to the pipeline's page it renders the json output instead of the Vue app --- app/assets/javascripts/jobs/store/actions.js | 2 +- changelogs/unreleased/52472-pipeline-endpoint-json.yml | 5 +++++ spec/javascripts/jobs/store/actions_spec.js | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 changelogs/unreleased/52472-pipeline-endpoint-json.yml diff --git a/app/assets/javascripts/jobs/store/actions.js b/app/assets/javascripts/jobs/store/actions.js index 298367c9342..c8e1090bcc5 100644 --- a/app/assets/javascripts/jobs/store/actions.js +++ b/app/assets/javascripts/jobs/store/actions.js @@ -139,7 +139,7 @@ export const fetchStages = ({ state, dispatch }) => { dispatch('requestStages'); axios - .get(state.job.pipeline.path) + .get(`${state.job.pipeline.path}.json`) .then(({ data }) => { dispatch('receiveStagesSuccess', data.details.stages); dispatch('fetchJobsForStage', data.details.stages[0]); diff --git a/changelogs/unreleased/52472-pipeline-endpoint-json.yml b/changelogs/unreleased/52472-pipeline-endpoint-json.yml new file mode 100644 index 00000000000..6819a0f7b5f --- /dev/null +++ b/changelogs/unreleased/52472-pipeline-endpoint-json.yml @@ -0,0 +1,5 @@ +--- +title: Fix caching issue with pipelines URL +merge_request: +author: +type: fixed diff --git a/spec/javascripts/jobs/store/actions_spec.js b/spec/javascripts/jobs/store/actions_spec.js index 5ab1f75d0d6..ce07effba9e 100644 --- a/spec/javascripts/jobs/store/actions_spec.js +++ b/spec/javascripts/jobs/store/actions_spec.js @@ -422,7 +422,7 @@ describe('Job State actions', () => { beforeEach(() => { mockedState.job.pipeline = { - path: `${TEST_HOST}/endpoint.json/stages`, + path: `${TEST_HOST}/endpoint`, }; mock = new MockAdapter(axios); }); @@ -434,7 +434,7 @@ describe('Job State actions', () => { describe('success', () => { it('dispatches requestStages and receiveStagesSuccess, fetchJobsForStage ', done => { mock - .onGet(`${TEST_HOST}/endpoint.json/stages`) + .onGet(`${TEST_HOST}/endpoint.json`) .replyOnce(200, { details: { stages: [{ id: 121212, name: 'build' }] } }); testAction(