Skip to content

Commit

Permalink
tests for meta for single user. #81
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Fenner committed Oct 20, 2019
1 parent 507503e commit 3160040
Show file tree
Hide file tree
Showing 7 changed files with 185 additions and 20 deletions.
6 changes: 4 additions & 2 deletions app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ class UsersController < BaseController

def show
options = {}

meta = get_meta(user_id: params[:id])
options[:meta] = {
dois: doi_count(user_id: params[:id]),
"resourceTypes" => resource_type_count(user_id: params[:id]) }.compact
dois: meta.fetch("created", []),
"resourceTypes" => meta.fetch("resourceTypes", []) }.compact
options[:include] = @include
options[:is_collection] = false
options[:params] = { current_ability: current_ability }
Expand Down
20 changes: 3 additions & 17 deletions app/models/concerns/countable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,16 @@ module Countable
extend ActiveSupport::Concern

included do
def doi_count(user_id: nil, state: nil)
def get_meta(user_id: nil, state: nil)
if user_id
url = ENV['API_URL'] + "/dois?user-id=#{user_id}&page[size]=0"
else
url = ENV['API_URL'] + "/dois?page[size]=0"
end

response = Maremma.get(url, accept: 'application/vnd.api+json')
return [] if response.status != 200

response.body.dig("meta", "created") || []
end

def resource_type_count(user_id: nil, state: nil)
if user_id
url = ENV['API_URL'] + "/dois?user-id=#{user_id}&page[size]=0"
else
url = ENV['API_URL'] + "/dois?page[size]=0"
end

response = Maremma.get(url, accept: 'application/vnd.api+json')
return [] if response.status != 200

response.body.dig("meta", "resourceTypes") || []
return {} if response.status != 200
response.body.fetch("meta", {}).slice("created", "resourceTypes")
end
end
end
18 changes: 18 additions & 0 deletions spec/concerns/countable_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require "rails_helper"

describe "UsersController", type: :controller, vcr: true do
subject { UsersController.new }

it "get_meta" do
response = subject.get_meta
expect(response["created"].first).to eq("count"=>29, "id"=>"2011", "title"=>"2011")
expect(response["resourceTypes"].first).to eq("count"=>323850, "id"=>"text", "title"=>"Text")
end

it "get_meta with user_id" do
user_id = "0000-0003-1419-2405"
response = subject.get_meta(user_id: user_id)
expect(response["created"].first).to eq("count"=>2, "id"=>"2018", "title"=>"2018")
expect(response["resourceTypes"].first).to eq("count"=>27, "id"=>"text", "title"=>"Text")
end
end
49 changes: 49 additions & 0 deletions spec/fixtures/vcr_cassettes/UsersController/get_meta.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion spec/requests/users_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
end

describe 'GET /users/:id' do
context 'when the record exists' do
context 'when the record exists', vcr: true do
it 'returns the user' do
get "/users/#{user.uid}", nil, headers

Expand Down

0 comments on commit 3160040

Please sign in to comment.