summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-11-16 13:57:42 +0000
committerSean McGivern <sean@mcgivern.me.uk>2016-11-16 13:57:42 +0000
commit1263708d81dcb978b44139a2965d384dff310fcc (patch)
tree6075639f5c4e1cbf1f92d6054e03d955cd0b5651
parented70f29ffd1e58c43606134e4940c8cd57020718 (diff)
parent8966c6e33daec5480f19149d2a6102107833afe0 (diff)
downloadgitlab-ce-1263708d81dcb978b44139a2965d384dff310fcc.tar.gz
Merge branch 'fix_labels_api_adding_missing_parameter' into 'master'
fix labels API adding missing parameter (current_user) See merge request !7458
-rw-r--r--changelogs/unreleased/fix_labels_api_adding_missing_parameter.yml4
-rw-r--r--lib/api/entities.rb13
-rw-r--r--spec/requests/api/labels_spec.rb43
3 files changed, 51 insertions, 9 deletions
diff --git a/changelogs/unreleased/fix_labels_api_adding_missing_parameter.yml b/changelogs/unreleased/fix_labels_api_adding_missing_parameter.yml
new file mode 100644
index 00000000000..01b191a8c5a
--- /dev/null
+++ b/changelogs/unreleased/fix_labels_api_adding_missing_parameter.yml
@@ -0,0 +1,4 @@
+---
+title: Fix labels API by adding missing current_user parameter
+merge_request: 7458
+author: Francesco Coda Zabetta
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 8f1aaaaaaa0..6e370e961c4 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -437,7 +437,18 @@ module API
end
class Label < LabelBasic
- expose :open_issues_count, :closed_issues_count, :open_merge_requests_count
+ expose :open_issues_count do |label, options|
+ label.open_issues_count(options[:current_user])
+ end
+
+ expose :closed_issues_count do |label, options|
+ label.closed_issues_count(options[:current_user])
+ end
+
+ expose :open_merge_requests_count do |label, options|
+ label.open_merge_requests_count(options[:current_user])
+ end
+
expose :priority do |label, options|
label.priority(options[:project])
end
diff --git a/spec/requests/api/labels_spec.rb b/spec/requests/api/labels_spec.rb
index 5d84976c9c3..77dfebf1a98 100644
--- a/spec/requests/api/labels_spec.rb
+++ b/spec/requests/api/labels_spec.rb
@@ -17,6 +17,10 @@ describe API::API, api: true do
group = create(:group)
group_label = create(:group_label, title: 'feature', group: group)
project.update(group: group)
+ create(:labeled_issue, project: project, labels: [group_label], author: user)
+ create(:labeled_issue, project: project, labels: [label1], author: user, state: :closed)
+ create(:labeled_merge_request, labels: [priority_label], author: user, source_project: project )
+
expected_keys = [
'id', 'name', 'color', 'description',
'open_issues_count', 'closed_issues_count', 'open_merge_requests_count',
@@ -30,14 +34,37 @@ describe API::API, api: true do
expect(json_response.size).to eq(3)
expect(json_response.first.keys).to match_array expected_keys
expect(json_response.map { |l| l['name'] }).to match_array([group_label.name, priority_label.name, label1.name])
- expect(json_response.last['name']).to eq(label1.name)
- expect(json_response.last['color']).to be_present
- expect(json_response.last['description']).to be_nil
- expect(json_response.last['open_issues_count']).to eq(0)
- expect(json_response.last['closed_issues_count']).to eq(0)
- expect(json_response.last['open_merge_requests_count']).to eq(0)
- expect(json_response.last['priority']).to be_nil
- expect(json_response.last['subscribed']).to be_falsey
+
+ label1_response = json_response.find { |l| l['name'] == label1.title }
+ group_label_response = json_response.find { |l| l['name'] == group_label.title }
+ priority_label_response = json_response.find { |l| l['name'] == priority_label.title }
+
+ expect(label1_response['open_issues_count']).to eq(0)
+ expect(label1_response['closed_issues_count']).to eq(1)
+ expect(label1_response['open_merge_requests_count']).to eq(0)
+ expect(label1_response['name']).to eq(label1.name)
+ expect(label1_response['color']).to be_present
+ expect(label1_response['description']).to be_nil
+ expect(label1_response['priority']).to be_nil
+ expect(label1_response['subscribed']).to be_falsey
+
+ expect(group_label_response['open_issues_count']).to eq(1)
+ expect(group_label_response['closed_issues_count']).to eq(0)
+ expect(group_label_response['open_merge_requests_count']).to eq(0)
+ expect(group_label_response['name']).to eq(group_label.name)
+ expect(group_label_response['color']).to be_present
+ expect(group_label_response['description']).to be_nil
+ expect(group_label_response['priority']).to be_nil
+ expect(group_label_response['subscribed']).to be_falsey
+
+ expect(priority_label_response['open_issues_count']).to eq(0)
+ expect(priority_label_response['closed_issues_count']).to eq(0)
+ expect(priority_label_response['open_merge_requests_count']).to eq(1)
+ expect(priority_label_response['name']).to eq(priority_label.name)
+ expect(priority_label_response['color']).to be_present
+ expect(priority_label_response['description']).to be_nil
+ expect(priority_label_response['priority']).to eq(3)
+ expect(priority_label_response['subscribed']).to be_falsey
end
end