diff options
| -rw-r--r-- | app/policies/api_key_policy.rb | 3 | ||||
| -rw-r--r-- | lib/stif/permission_translator.rb | 3 | ||||
| -rw-r--r-- | spec/features/api_keys/edit_api_key_feature_spec.rb | 39 | ||||
| -rw-r--r-- | spec/features/api_keys/new_api_key_feature_spec.rb | 38 | ||||
| -rw-r--r-- | spec/features/line_footnotes_permissions_spec.rb | 2 | ||||
| -rw-r--r-- | spec/features/referential_lines_spec.rb | 3 | ||||
| -rw-r--r-- | spec/features/referentials_spec.rb | 1 |
7 files changed, 80 insertions, 9 deletions
diff --git a/app/policies/api_key_policy.rb b/app/policies/api_key_policy.rb index 7b4c22e33..7c62595b5 100644 --- a/app/policies/api_key_policy.rb +++ b/app/policies/api_key_policy.rb @@ -14,6 +14,7 @@ class ApiKeyPolicy < ApplicationPolicy end def update? - organisation_match? && user.has_permission?('api_keys.update') + record.try(:organisation_id) == user.organisation_id && + user.has_permission?('api_keys.update') end end diff --git a/lib/stif/permission_translator.rb b/lib/stif/permission_translator.rb index d82e1c6b0..e780f4ba2 100644 --- a/lib/stif/permission_translator.rb +++ b/lib/stif/permission_translator.rb @@ -16,8 +16,7 @@ module Stif def all_resources %w[ - api_keys - access_points + access_points api_keys connection_links calendars footnotes journey_patterns diff --git a/spec/features/api_keys/edit_api_key_feature_spec.rb b/spec/features/api_keys/edit_api_key_feature_spec.rb new file mode 100644 index 000000000..411c11aaf --- /dev/null +++ b/spec/features/api_keys/edit_api_key_feature_spec.rb @@ -0,0 +1,39 @@ +RSpec.describe 'New API Key', type: :feature do + login_user + + describe "api_keys#edit" do + + let!( :api_key ){ create :api_key, name: SecureRandom.uuid, organisation: @user.organisation } + + let( :edit_label ){ "#{api_key.name} : #{api_key.token}" } + let( :name_label ){ "Nom" } + let( :validate_label ){ "Valider" } + + let( :unique_name ){ SecureRandom.uuid } + + it 'complete workflow' do + # /workbenches + visit workbenches_path + # api_key's new name does not exist yet + expect( page ).not_to have_content(unique_name) + # the api_key is visible + click_link edit_label + + # brings us to correct page + expect(page.current_path).to eq(edit_api_key_path(api_key)) + fill_in(name_label, with: unique_name) + click_button(validate_label) + + # check impact on DB + expect(api_key.reload.name).to eq(unique_name) + + # check redirect and changed display + expect(page.current_path).to eq(workbenches_path) + # changed api_key's name exists now + expect( page ).to have_content(unique_name) + end + + end + +end + diff --git a/spec/features/api_keys/new_api_key_feature_spec.rb b/spec/features/api_keys/new_api_key_feature_spec.rb new file mode 100644 index 000000000..eba873691 --- /dev/null +++ b/spec/features/api_keys/new_api_key_feature_spec.rb @@ -0,0 +1,38 @@ +RSpec.describe 'New API Key', type: :feature do + login_user + + describe "api_keys#create" do + + let( :create_label ){ "Créer une clé d'API" } + let( :name_label ){ "Nom" } + let( :validate_label ){ "Valider" } + + let( :unique_name ){ SecureRandom.uuid } + let( :last_api_key ){ Api::V1::ApiKey.last } + + + it 'complete workflow' do + # /workbenches + visit workbenches_path + expect(page).to have_link(create_label, href: new_api_key_path) + # to be created api_key does not exist yet + expect( page ).not_to have_content(unique_name) + + # /api_keys/new + click_link create_label + fill_in(name_label, with: unique_name) + click_button validate_label + + # check impact on DB + expect(last_api_key.name).to eq(unique_name) + + # check redirect and changed display + expect(page.current_path).to eq(workbenches_path) + # to be created api_key exists now + expect( page ).to have_content(unique_name) + end + + end + +end + diff --git a/spec/features/line_footnotes_permissions_spec.rb b/spec/features/line_footnotes_permissions_spec.rb index 4de2a6137..62adbfcd5 100644 --- a/spec/features/line_footnotes_permissions_spec.rb +++ b/spec/features/line_footnotes_permissions_spec.rb @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - describe 'Line Footnotes', type: :feature do login_user diff --git a/spec/features/referential_lines_spec.rb b/spec/features/referential_lines_spec.rb index 95fc596fd..e8cc8e0e1 100644 --- a/spec/features/referential_lines_spec.rb +++ b/spec/features/referential_lines_spec.rb @@ -1,6 +1,3 @@ -# -*- coding: utf-8 -*- -require 'spec_helper' - describe 'ReferentialLines', type: :feature do login_user let!(:referential_metadata) { create :referential_metadata, referential: referential } diff --git a/spec/features/referentials_spec.rb b/spec/features/referentials_spec.rb index a38577aba..9af0ed32e 100644 --- a/spec/features/referentials_spec.rb +++ b/spec/features/referentials_spec.rb @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- describe "Referentials", :type => :feature do login_user |
