Skip to content

Commit

Permalink
removed researcher from tests. datacite/volpino#72
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Fenner committed Sep 29, 2019
1 parent 11bd2b8 commit c10e1f4
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 72 deletions.
17 changes: 0 additions & 17 deletions app/graphql/types/query_type.rb
Original file line number Diff line number Diff line change
Expand Up @@ -81,23 +81,6 @@ def funder(id:)
result
end

field :researcher, ResearcherType, null: true do
argument :id, ID, required: true
end

def researcher(id:)
ElasticsearchLoader.for(Researcher).load(orcid_from_url(id))
end

field :researchers, ResearcherConnectionWithMetaType, null: false, connection: true, max_page_size: 100 do
argument :query, String, required: false
argument :first, Int, required: false, default_value: 25
end

def researchers(query: nil, first: nil)
Researcher.query(query, page: { number: 1, size: first }).results.to_a
end

field :organizations, OrganizationConnectionWithMetaType, null: false, connection: true, max_page_size: 100 do
argument :query, String, required: false
argument :first, Int, required: false, default_value: 25
Expand Down
15 changes: 2 additions & 13 deletions app/models/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,11 @@ def initialize(credentials, options={})
# default to role user unless database says otherwise
uid = payload["preferred_username"].present? ? payload["preferred_username"][0..18] : nil

if uid.present?
researcher = Researcher.where(uid: uid).first
researcher = Researcher.create(uid: uid, name: payload["name"], email: payload["email"], role_id: "user") if researcher.nil?

if uid.present?
payload = {
"uid" => uid,
"name" => payload["name"],
"email" => payload["email"],
"role_id" => researcher.role_id,
"beta_tester" => researcher.beta_tester
"email" => payload["email"]
}

@jwt = encode_token(payload.merge(iat: Time.now.to_i, exp: Time.now.to_i + 3600 * 24 * 30))
Expand Down Expand Up @@ -94,12 +89,6 @@ def client
::Client.where(symbol: client_id).where(deleted_at: nil).first
end

def researcher
return nil unless uid.present?

Researcher.where(uid: uid).first
end

def self.reset(username)
uid = username.downcase

Expand Down
34 changes: 34 additions & 0 deletions spec/factories/default.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,40 @@
require 'faker'

FactoryBot.define do
factory :user do
sequence(:name) { |n| "Josiah Carberry{n}" }
provider { "globus" }
role_id { "user" }
sequence(:uid) { |n| "0000-0002-1825-000#{n}" }

factory :admin_user do
role_id { "staff_admin" }
uid { "0000-0002-1825-0003" }
end

factory :staff_user do
role_id { "staff_user" }
uid { "0000-0002-1825-0004" }
end

factory :regular_user do
role_id { "user" }
uid { "0000-0002-1825-0001" }
end

factory :valid_user do
uid { '0000-0001-6528-2027' }
orcid_token { ENV['ACCESS_TOKEN'] }
end

factory :invalid_user do
uid { '0000-0001-6528-2027' }
orcid_token { nil }
end

initialize_with { User.new(User.generate_alb_token(uid: uid, role_id: role_id), type: "oidc") }
end

factory :client do
provider

Expand Down
26 changes: 13 additions & 13 deletions spec/jobs/orcid_auto_update_by_id_job_spec.rb
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
require 'rails_helper'
# require 'rails_helper'

describe OrcidAutoUpdateByIdJob, type: :job do
let(:researcher) { create(:researcher) }
subject(:job) { OrcidAutoUpdateByIdJob.perform_later(researcher.uid) }
# describe OrcidAutoUpdateByIdJob, type: :job do
# let(:user) { create(:user) }
# subject(:job) { OrcidAutoUpdateByIdJob.perform_later(user.uid) }

it 'queues the job' do
expect { job }.to have_enqueued_job(OrcidAutoUpdateByIdJob)
.on_queue("test_lupo_background")
end
# it 'queues the job' do
# expect { job }.to have_enqueued_job(OrcidAutoUpdateByIdJob)
# .on_queue("test_lupo_background")
# end

after do
clear_enqueued_jobs
clear_performed_jobs
end
end
# after do
# clear_enqueued_jobs
# clear_performed_jobs
# end
# end
57 changes: 28 additions & 29 deletions spec/requests/sessions_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,34 +124,33 @@
end
end

describe "Openid connect session", type: :request do
context 'role user' do
let(:researcher) { create(:researcher, uid: "0000-0003-1419-2405") }
let(:params) { "token=" + User.generate_alb_token(preferred_username: researcher.uid + "@orcid.org", name: researcher.name) }
# describe "Openid connect session", type: :request do
# context 'role user' do
# let(:user) { create(:user, uid: "0000-0003-1419-2405") }
# let(:params) { "token=" + User.generate_alb_token(preferred_username: user.uid + "@orcid.org", name: user.name) }

it 'creates a user token' do
post '/oidc-token', params, { 'HTTP_ACCEPT'=>'application/x-www-form-urlencoded' }
# it 'creates a user token' do
# post '/oidc-token', params, { 'HTTP_ACCEPT'=>'application/x-www-form-urlencoded' }

expect(last_response.status).to eq(200)
payload = researcher.decode_token(json.fetch('access_token', {}))
expect(payload["uid"]).to eq("0000-0003-1419-2405")
expect(payload["role_id"]).to eq("user")
expect(payload["name"]).to eq(researcher.name)
end
end

context 'role staff_admin' do
let!(:researcher) { create(:researcher, uid: "0000-0003-1419-2405", role_id: "staff_admin") }
let(:params) { "token=" + User.generate_alb_token(preferred_username: researcher.uid + "@orcid.org", name: researcher.name) }

it 'creates a user token' do
post '/oidc-token', params, { 'HTTP_ACCEPT'=>'application/x-www-form-urlencoded' }

expect(last_response.status).to eq(200)
payload = researcher.decode_token(json.fetch('access_token', {}))
expect(payload["uid"]).to eq("0000-0003-1419-2405")
expect(payload["role_id"]).to eq("staff_admin")
expect(payload["name"]).to eq(researcher.name)
end
end
end
# expect(last_response.status).to eq(200)
# payload = user.decode_token(json.fetch('access_token', {}))
# expect(payload["uid"]).to eq("0000-0003-1419-2405")
# expect(payload["role_id"]).to eq("user")
# expect(payload["name"]).to eq(user.name)
# end
# end

# context 'role staff_admin' do
# let!(:user) { create(:user, uid: "0000-0003-1419-2405", role_id: "staff_admin") }
# let(:params) { "token=" + User.generate_alb_token(preferred_username: user.uid + "@orcid.org", name: user.name) }

# it 'creates a user token' do
# post '/oidc-token', params, { 'HTTP_ACCEPT'=>'application/x-www-form-urlencoded' }
# expect(last_response.status).to eq(200)
# payload = user.decode_token(json.fetch('access_token', {}))
# expect(payload["uid"]).to eq("0000-0003-1419-2405")
# expect(payload["role_id"]).to eq("staff_admin")
# expect(payload["name"]).to eq(user.name)
# end
# end
# end

0 comments on commit c10e1f4

Please sign in to comment.