Skip to content
Snippets Groups Projects
Commit e30a7160 authored by Alex Pennells's avatar Alex Pennells :three:
Browse files

Merge branch '411315-fix-relative-url-root' into 'master'

Fix GroupActivityCard relative metric links

See merge request !120789



Merged-by: default avatarAlex Pennells <apennells@gitlab.com>
Approved-by: default avatarAmmar Alakkad <aalakkad@gitlab.com>
Reviewed-by: default avatarPaul Gascou-Vaillancourt <pgascouvaillancourt@gitlab.com>
parents 61210662 d916229d
No related branches found
No related tags found
No related merge requests found
Pipeline #870885040 passed
Pipeline: GitLab

#870909175

    Pipeline: GitLab

    #870891886

      ......@@ -21,7 +21,13 @@ export default {
      GlTooltip: GlTooltipDirective,
      },
      mixins: [Tracking.mixin()],
      inject: ['groupFullPath', 'groupName'],
      inject: [
      'groupFullPath',
      'groupName',
      'mergeRequestsMetricLink',
      'issuesMetricLink',
      'newMembersMetricLink',
      ],
      data() {
      return {
      isLoading: false,
      ......@@ -29,19 +35,19 @@ export default {
      mergeRequests: {
      value: null,
      label: s__('GroupActivityMetrics|Merge requests created'),
      link: `/groups/${this.groupFullPath}/-/analytics/productivity_analytics`,
      link: this.mergeRequestsMetricLink,
      trackingLabel: MERGE_REQUESTS_TRACKING_LABEL,
      },
      issues: {
      value: null,
      label: s__('GroupActivityMetrics|Issues created'),
      link: `/groups/${this.groupFullPath}/-/issues_analytics`,
      link: this.issuesMetricLink,
      trackingLabel: ISSUES_TRACKING_LABEL,
      },
      newMembers: {
      value: null,
      label: s__('GroupActivityMetrics|Members added'),
      link: `/groups/${this.groupFullPath}/-/group_members?sort=last_joined`,
      link: this.newMembersMetricLink,
      trackingLabel: NEW_MEMBERS_TRACKING_LABEL,
      },
      },
      ......
      ......@@ -6,7 +6,13 @@ export default () => {
      if (!container) return;
      const { groupFullPath, groupName } = container.dataset;
      const {
      groupFullPath,
      groupName,
      mergeRequestsMetricLink,
      issuesMetricLink,
      newMembersMetricLink,
      } = container.dataset;
      // eslint-disable-next-line no-new
      new Vue({
      ......@@ -14,6 +20,9 @@ export default () => {
      provide: {
      groupFullPath,
      groupName,
      mergeRequestsMetricLink,
      issuesMetricLink,
      newMembersMetricLink,
      },
      render(h) {
      return h(GroupActivityCard);
      ......
      - return unless show_group_activity_analytics?
      #js-group-activity{ data: { group_full_path: @group.full_path, group_name: @group.name } }
      #js-group-activity{ data: { group_full_path: @group.full_path, group_name: @group.name, merge_requests_metric_link: group_analytics_productivity_analytics_path(@group), issues_metric_link: group_issues_analytics_path(@group), new_members_metric_link: group_group_members_path(@group, sort: 'last_joined') } }
      ......@@ -11,6 +11,9 @@ import { extendedWrapper } from 'helpers/vue_test_utils_helper';
      const TEST_GROUP_ID = 'gitlab-org';
      const TEST_GROUP_NAME = 'Gitlab Org';
      const TEST_MERGE_REQUESTS_METRIC_LINK = `/groups/${TEST_GROUP_ID}/-/analytics/productivity_analytics`;
      const TEST_ISSUES_METRIC_LINK = `/groups/${TEST_GROUP_ID}/-/issues_analytics`;
      const TEST_NEW_MEMBERS_METRIC_LINK = `/groups/${TEST_GROUP_ID}/-/group_members?sort=last_joined`;
      const TEST_MERGE_REQUESTS_COUNT = { data: { merge_requests_count: 10 } };
      const TEST_LARGE_MERGE_REQUESTS_COUNT = { data: { merge_requests_count: 1001 } };
      const TEST_ISSUES_COUNT = { data: { issues_count: 20 } };
      ......@@ -18,8 +21,6 @@ const TEST_LARGE_ISSUES_COUNT = { data: { issues_count: 999 } };
      const TEST_NEW_MEMBERS_COUNT = { data: { new_members_count: 30 } };
      const TEST_LARGE_NEW_MEMBERS_COUNT = { data: { new_members_count: 998 } };
      jest.mock('~/lib/utils/url_utility');
      const mockActivityRequests = ({ issuesCount, mergeRequestsCount, newMembersCount }) => {
      jest
      .spyOn(Api, 'groupActivityMergeRequestsCount')
      ......@@ -40,6 +41,9 @@ describe('GroupActivity component', () => {
      provide: {
      groupFullPath: TEST_GROUP_ID,
      groupName: TEST_GROUP_NAME,
      mergeRequestsMetricLink: TEST_MERGE_REQUESTS_METRIC_LINK,
      issuesMetricLink: TEST_ISSUES_METRIC_LINK,
      newMembersMetricLink: TEST_NEW_MEMBERS_METRIC_LINK,
      },
      }),
      );
      ......@@ -91,30 +95,24 @@ describe('GroupActivity component', () => {
      });
      describe('metrics', () => {
      beforeEach(() => {
      createComponent();
      });
      describe.each`
      index | value | title | link
      ${0} | ${10} | ${'Merge requests created'} | ${`/groups/${TEST_GROUP_ID}/-/analytics/productivity_analytics`}
      ${1} | ${20} | ${'Issues created'} | ${`/groups/${TEST_GROUP_ID}/-/issues_analytics`}
      ${2} | ${30} | ${'Members added'} | ${`/groups/${TEST_GROUP_ID}/-/group_members?sort=last_joined`}
      ${0} | ${10} | ${'Merge requests created'} | ${TEST_MERGE_REQUESTS_METRIC_LINK}
      ${1} | ${20} | ${'Issues created'} | ${TEST_ISSUES_METRIC_LINK}
      ${2} | ${30} | ${'Members added'} | ${TEST_NEW_MEMBERS_METRIC_LINK}
      `('for metric $title', ({ index, value, title, link }) => {
      let anchor;
      let singleStat;
      beforeEach(() => {
      anchor = findAllSingleStatAnchors().at(index);
      singleStat = findAllSingleStats().at(index);
      createComponent();
      });
      it('renders a GlSingleStat', () => {
      const singleStat = findAllSingleStats().at(index);
      expect(singleStat.props('value')).toBe(`${value}`);
      expect(singleStat.props('title')).toBe(title);
      });
      it('redirects to the link on click', () => {
      const anchor = findAllSingleStatAnchors().at(index);
      expect(anchor.attributes('href')).toBe(link);
      });
      });
      ......
      0% Loading or .
      You are about to add 0 people to the discussion. Proceed with caution.
      Finish editing this message first!
      Please register or to comment