Commit 388b143b authored by Mayra Cabrera's avatar Mayra Cabrera

Merge branch 'expose-a11y-report-path' into 'master'

Expose a11y report path

See merge request gitlab-org/gitlab!31921
parents d2e9a476 4039b06e
...@@ -37,23 +37,12 @@ export const summaryStatus = state => { ...@@ -37,23 +37,12 @@ export const summaryStatus = state => {
export const shouldRenderIssuesList = state => export const shouldRenderIssuesList = state =>
Object.values(state.report).some(x => Array.isArray(x) && x.length > 0); Object.values(state.report).some(x => Array.isArray(x) && x.length > 0);
export const unresolvedIssues = state => [ // We could just map state, but we're going to iterate in the future
...state.report.existing_errors, // to add notes and warnings to these issue lists, so I'm going to
...state.report.existing_warnings, // keep these as getters
...state.report.existing_notes, export const unresolvedIssues = state => state.report.existing_errors;
]; export const resolvedIssues = state => state.report.resolved_errors;
export const newIssues = state => state.report.new_errors;
export const resolvedIssues = state => [
...state.report.resolved_errors,
...state.report.resolved_warnings,
...state.report.resolved_notes,
];
export const newIssues = state => [
...state.report.new_errors,
...state.report.new_warnings,
...state.report.new_notes,
];
// prevent babel-plugin-rewire from generating an invalid default during karma tests // prevent babel-plugin-rewire from generating an invalid default during karma tests
export default () => {}; export default () => {};
...@@ -40,7 +40,6 @@ import TerraformPlan from './components/mr_widget_terraform_plan.vue'; ...@@ -40,7 +40,6 @@ import TerraformPlan from './components/mr_widget_terraform_plan.vue';
import GroupedTestReportsApp from '../reports/components/grouped_test_reports_app.vue'; import GroupedTestReportsApp from '../reports/components/grouped_test_reports_app.vue';
import { setFaviconOverlay } from '../lib/utils/common_utils'; import { setFaviconOverlay } from '../lib/utils/common_utils';
import GroupedAccessibilityReportsApp from '../reports/accessibility_report/grouped_accessibility_reports_app.vue'; import GroupedAccessibilityReportsApp from '../reports/accessibility_report/grouped_accessibility_reports_app.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
export default { export default {
el: '#js-vue-mr-widget', el: '#js-vue-mr-widget',
...@@ -80,7 +79,6 @@ export default { ...@@ -80,7 +79,6 @@ export default {
TerraformPlan, TerraformPlan,
GroupedAccessibilityReportsApp, GroupedAccessibilityReportsApp,
}, },
mixins: [glFeatureFlagsMixin()],
props: { props: {
mrData: { mrData: {
type: Object, type: Object,
...@@ -146,7 +144,7 @@ export default { ...@@ -146,7 +144,7 @@ export default {
}); });
}, },
shouldShowAccessibilityReport() { shouldShowAccessibilityReport() {
return this.mr.accessibilityReportPath && this.glFeatures.accessibilityMergeRequestWidget; return this.mr.accessibilityReportPath;
}, },
}, },
watch: { watch: {
......
...@@ -32,7 +32,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo ...@@ -32,7 +32,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
push_frontend_feature_flag(:code_navigation, @project) push_frontend_feature_flag(:code_navigation, @project)
push_frontend_feature_flag(:widget_visibility_polling, @project, default_enabled: true) push_frontend_feature_flag(:widget_visibility_polling, @project, default_enabled: true)
push_frontend_feature_flag(:merge_ref_head_comments, @project) push_frontend_feature_flag(:merge_ref_head_comments, @project)
push_frontend_feature_flag(:accessibility_merge_request_widget, @project)
push_frontend_feature_flag(:mr_commit_neighbor_nav, @project, default_enabled: true) push_frontend_feature_flag(:mr_commit_neighbor_nav, @project, default_enabled: true)
end end
......
...@@ -71,6 +71,12 @@ class MergeRequestPollWidgetEntity < Grape::Entity ...@@ -71,6 +71,12 @@ class MergeRequestPollWidgetEntity < Grape::Entity
end end
end end
expose :accessibility_report_path do |merge_request|
if merge_request.has_accessibility_reports?
accessibility_reports_project_merge_request_path(merge_request.project, merge_request, format: :json)
end
end
expose :terraform_reports_path do |merge_request| expose :terraform_reports_path do |merge_request|
if merge_request.has_terraform_reports? if merge_request.has_terraform_reports?
terraform_reports_project_merge_request_path(merge_request.project, merge_request, format: :json) terraform_reports_project_merge_request_path(merge_request.project, merge_request, format: :json)
......
...@@ -115,39 +115,33 @@ describe('Accessibility reports store getters', () => { ...@@ -115,39 +115,33 @@ describe('Accessibility reports store getters', () => {
}); });
describe('unresolvedIssues', () => { describe('unresolvedIssues', () => {
it('returns concatenated array of unresolved errors, warnings, and notes', () => { it('returns the array unresolved errors', () => {
localState.report = { localState.report = {
existing_errors: [1], existing_errors: [1],
existing_warnings: [2],
existing_notes: [3],
}; };
const result = [1, 2, 3]; const result = [1];
expect(getters.unresolvedIssues(localState)).toEqual(result); expect(getters.unresolvedIssues(localState)).toEqual(result);
}); });
}); });
describe('resolvedIssues', () => { describe('resolvedIssues', () => {
it('returns concatenated array of resolved errors, warnings, and notes', () => { it('returns array of resolved errors', () => {
localState.report = { localState.report = {
resolved_errors: [1], resolved_errors: [1],
resolved_warnings: [2],
resolved_notes: [3],
}; };
const result = [1, 2, 3]; const result = [1];
expect(getters.resolvedIssues(localState)).toEqual(result); expect(getters.resolvedIssues(localState)).toEqual(result);
}); });
}); });
describe('newIssues', () => { describe('newIssues', () => {
it('returns concatenated array of new errors, warnings, and notes', () => { it('returns array of new errors', () => {
localState.report = { localState.report = {
new_errors: [1], new_errors: [1],
new_warnings: [2],
new_notes: [3],
}; };
const result = [1, 2, 3]; const result = [1];
expect(getters.newIssues(localState)).toEqual(result); expect(getters.newIssues(localState)).toEqual(result);
}); });
......
...@@ -93,6 +93,28 @@ describe MergeRequestPollWidgetEntity do ...@@ -93,6 +93,28 @@ describe MergeRequestPollWidgetEntity do
end end
end end
describe 'accessibility_report_path' do
context 'when merge request has accessibility reports' do
before do
allow(resource).to receive(:has_accessibility_reports?).and_return(true)
end
it 'set the path to poll data' do
expect(subject[:accessibility_report_path]).to be_present
end
end
context 'when merge request has no accessibility reports' do
before do
allow(resource).to receive(:has_accessibility_reports?).and_return(false)
end
it 'set the path to poll data' do
expect(subject[:accessibility_report_path]).to be_nil
end
end
end
describe 'exposed_artifacts_path' do describe 'exposed_artifacts_path' do
context 'when merge request has exposed artifacts' do context 'when merge request has exposed artifacts' do
before do before do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment