From d4c273d5ba59b7363e941f728acdebc82d213b69 Mon Sep 17 00:00:00 2001 From: "M. Oleske" Date: Sat, 26 Apr 2025 22:09:18 -0700 Subject: [PATCH 1/4] Add/update rubocop rules that don't require code changes --- .rubocop_cc.yml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.rubocop_cc.yml b/.rubocop_cc.yml index aacb12342f9..a00d105abb1 100644 --- a/.rubocop_cc.yml +++ b/.rubocop_cc.yml @@ -1,12 +1,14 @@ # Cloud Controller Specific Rubocop Config -require: +plugins: - rubocop-sequel - rubocop-rails - rubocop-capybara - rubocop-factory_bot - rubocop-rspec - rubocop-rspec_rails + +require: - ./spec/linters/migration/add_constraint_name.rb - ./spec/linters/migration/include_string_size.rb - ./spec/linters/migration/require_primary_key.rb @@ -160,10 +162,14 @@ Lint/AmbiguousOperatorPrecedence: Enabled: true Lint/AmbiguousRange: Enabled: true +Lint/ArrayLiteralInRegexp: + Enabled: true Lint/ConstantOverwrittenInRescue: Enabled: true Lint/ConstantReassignment: Enabled: true +Lint/CopDirectiveSyntax: + Enabled: true Lint/DeprecatedConstants: Enabled: true Lint/DuplicateBranch: @@ -208,6 +214,8 @@ Lint/RedundantDirGlobSort: Enabled: true Lint/RedundantRegexpQuantifiers: Enabled: true +Lint/RedundantTypeConversion: + Enabled: true Lint/RefinementImportMethods: Enabled: true Lint/RequireRangeParentheses: @@ -216,6 +224,8 @@ Lint/RequireRelativeSelfPath: Enabled: true Lint/SharedMutableDefault: Enabled: true +Lint/SuppressedExceptionInNumberConversion: + Enabled: true Lint/SymbolConversion: Enabled: true Lint/ToEnumArguments: @@ -290,12 +300,16 @@ Style/HashConversion: Enabled: true Style/HashExcept: Enabled: true +Style/HashFetchChain: + Enabled: true Style/IfWithBooleanLiteralBranches: Enabled: true Style/InPatternThen: Enabled: true Style/ItAssignment: Enabled: true +Style/ItBlockParameter: + Enabled: true Style/KeywordArgumentsMerging: Enabled: true Style/MagicCommentFormat: @@ -342,6 +356,8 @@ Style/RedundantEach: Enabled: true Style/RedundantFilterChain: Enabled: true +Style/RedundantFormat: + Enabled: true Style/RedundantHeredocDelimiterQuotes: Enabled: true Style/RedundantInitialize: @@ -424,6 +440,8 @@ Rails/MatchRoute: Enabled: true Rails/MigrationClassName: Enabled: true +Rails/MultipleRoutePaths: + Enabled: true Rails/NegateInclude: Enabled: true Rails/Pluck: @@ -454,6 +472,8 @@ Rails/SquishedSQLHeredocs: Enabled: true Rails/StripHeredoc: Enabled: true +Rails/StrongParametersExpect: + Enabled: true Rails/ThreeStateBooleanColumn: Enabled: true Rails/TimeZoneAssignment: @@ -482,10 +502,14 @@ Rails/WhereNotWithMultipleConditions: Enabled: true Capybara/ClickLinkOrButtonStyle: Enabled: false +Capybara/FindAllFirst: + Enabled: true Capybara/MatchStyle: Enabled: false Capybara/NegationMatcher: Enabled: false +Capybara/NegationMatcherAfterVisit: + Enabled: true Capybara/RedundantWithinFind: Enabled: true Capybara/SpecificActions: From d752b886d158d79e58e60c8b658bffccf5d00657 Mon Sep 17 00:00:00 2001 From: "M. Oleske" Date: Sat, 26 Apr 2025 23:27:57 -0700 Subject: [PATCH 2/4] Enable style/comparablebetween --- .rubocop_cc.yml | 2 ++ app/presenters/error_presenter.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.rubocop_cc.yml b/.rubocop_cc.yml index a00d105abb1..7f64109c24e 100644 --- a/.rubocop_cc.yml +++ b/.rubocop_cc.yml @@ -264,6 +264,8 @@ Style/CollectionCompact: Enabled: true Style/CombinableDefined: Enabled: true +Style/ComparableBetween: + Enabled: true Style/ComparableClamp: Enabled: true Style/ConcatArrayLiterals: diff --git a/app/presenters/error_presenter.rb b/app/presenters/error_presenter.rb index 5dcb71abf36..697e46b8fa6 100644 --- a/app/presenters/error_presenter.rb +++ b/app/presenters/error_presenter.rb @@ -8,7 +8,7 @@ def initialize(error, test_mode=false, error_hasher=V2ErrorHasher.new(error)) end def client_error? - response_code >= 400 && response_code <= 499 + response_code.between?(400, 499) end def log_message From 74df0336d8c4d05f6bd9fcd7dabcbf8fd26d57c6 Mon Sep 17 00:00:00 2001 From: "M. Oleske" Date: Sat, 26 Apr 2025 23:54:30 -0700 Subject: [PATCH 3/4] add rspec/includeexamples --- .rubocop_cc.yml | 2 + .../broker_api_v2.0_spec.rb | 12 +-- ..._add_user_id_index_to_roles_tables_spec.rb | 16 ++-- spec/request/packages_spec.rb | 4 +- .../controllers/base/model_controller_spec.rb | 4 +- .../runtime/apps_controller_spec.rb | 56 ++++++------ .../runtime/domains_controller_spec.rb | 52 +++++------ .../runtime/organizations_controller_spec.rb | 32 +++---- .../runtime/route_mappings_controller_spec.rb | 56 ++++++------ .../runtime/routes_controller_spec.rb | 56 ++++++------ ...space_quota_definitions_controller_spec.rb | 66 +++++++------- .../runtime/spaces_controller_spec.rb | 56 ++++++------ .../runtime/stagings_controller_spec.rb | 8 +- .../runtime/users_controller_spec.rb | 20 ++--- .../service_bindings_controller_spec.rb | 64 +++++++------- .../service_instances_controller_spec.rb | 40 ++++----- .../services/service_keys_controller_spec.rb | 56 ++++++------ ...rvice_plan_visibilities_controller_spec.rb | 8 +- .../services/service_plans_controller_spec.rb | 24 +++--- .../services/services_controller_spec.rb | 24 +++--- ...vided_service_instances_controller_spec.rb | 40 ++++----- .../v3/packages_controller_spec.rb | 4 +- .../security_group_list_fetcher_spec.rb | 4 +- .../buildpack_installer_factory_spec.rb | 16 ++-- .../service_binding_state_fetch_spec.rb | 4 +- .../service_instance_state_fetch_spec.rb | 4 +- .../diego/app_recipe_builder_spec.rb | 12 +-- .../service_binding_files_builder_spec.rb | 86 +++++++++---------- .../service_brokers/v2/http_client_spec.rb | 8 +- spec/unit/lib/sinatra/vcap_spec.rb | 6 +- spec/unit/lib/vcap/rest_api/attribute_spec.rb | 6 +- .../models/runtime/private_domain_spec.rb | 2 +- .../unit/models/runtime/shared_domain_spec.rb | 2 +- spec/unit/models/runtime/space_spec.rb | 2 +- .../system_env_presenter_spec.rb | 8 +- 35 files changed, 431 insertions(+), 429 deletions(-) diff --git a/.rubocop_cc.yml b/.rubocop_cc.yml index 7f64109c24e..c8ac38a9fb0 100644 --- a/.rubocop_cc.yml +++ b/.rubocop_cc.yml @@ -560,6 +560,8 @@ RSpec/ExcessiveDocstringSpacing: Enabled: true RSpec/IdenticalEqualityAssertion: Enabled: true +RSpec/IncludeExamples: + Enabled: true RSpec/IndexedLet: Enabled: true RSpec/MatchArray: diff --git a/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb b/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb index 33e6a33ee29..8c4b3576fd8 100644 --- a/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb +++ b/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb @@ -105,7 +105,7 @@ def request_has_version_header(method, url) it_behaves_like 'a catalog fetch request' - include_examples 'broker errors' + it_behaves_like 'broker errors' it 'handles the broker response' do expect(last_response).to have_status_code(201) @@ -126,7 +126,7 @@ def request_has_version_header(method, url) it_behaves_like 'a catalog fetch request' - include_examples 'broker errors' + it_behaves_like 'broker errors' it 'handles the broker response' do expect(last_response).to have_status_code(200) @@ -169,7 +169,7 @@ def request_has_version_header(method, url) admin_headers) end - include_examples 'broker errors' + it_behaves_like 'broker errors' it 'sends all required fields' do expect(a_request(:put, %r{broker-url/v2/service_instances/#{guid_pattern}}). @@ -258,7 +258,7 @@ def request_has_version_header(method, url) admin_headers) end - include_examples 'broker errors' + it_behaves_like 'broker errors' it 'uses the correct version header' do request_has_version_header(:put, %r{/v2/service_instances/#{service_instance_guid}/service_bindings/#{guid_pattern}$}) @@ -340,7 +340,7 @@ def request_has_version_header(method, url) admin_headers) end - include_examples 'broker errors' + it_behaves_like 'broker errors' it 'sends all required fields' do expected_url = %r{broker-url/v2/service_instances/#{service_instance_guid}/service_bindings/#{guid_pattern}\?plan_id=plan1-guid-here&service_id=service-guid-here} @@ -397,7 +397,7 @@ def request_has_version_header(method, url) admin_headers) end - include_examples 'broker errors' + it_behaves_like 'broker errors' it 'sends all required fields' do expect(a_request(:delete, %r{broker-url/v2/service_instances/#{service_instance_guid}\?plan_id=plan1-guid-here&service_id=service-guid-here})). diff --git a/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb b/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb index 5e66ac7a0aa..1276dc54f63 100644 --- a/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb +++ b/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb @@ -65,12 +65,12 @@ let(:migration_filename) { '20250318112800_add_user_id_index_to_roles_tables.rb' } end - include_examples 'adding an index for table', 'organizations_auditors' - include_examples 'adding an index for table', 'organizations_billing_managers' - include_examples 'adding an index for table', 'organizations_managers' - include_examples 'adding an index for table', 'organizations_users' - include_examples 'adding an index for table', 'spaces_auditors' - include_examples 'adding an index for table', 'spaces_developers' - include_examples 'adding an index for table', 'spaces_managers' - include_examples 'adding an index for table', 'spaces_supporters' + it_behaves_like 'adding an index for table', 'organizations_auditors' + it_behaves_like 'adding an index for table', 'organizations_billing_managers' + it_behaves_like 'adding an index for table', 'organizations_managers' + it_behaves_like 'adding an index for table', 'organizations_users' + it_behaves_like 'adding an index for table', 'spaces_auditors' + it_behaves_like 'adding an index for table', 'spaces_developers' + it_behaves_like 'adding an index for table', 'spaces_managers' + it_behaves_like 'adding an index for table', 'spaces_supporters' end diff --git a/spec/request/packages_spec.rb b/spec/request/packages_spec.rb index 3d8c0c90d02..ef39451c04a 100644 --- a/spec/request/packages_spec.rb +++ b/spec/request/packages_spec.rb @@ -913,7 +913,7 @@ } end - include_examples 'upload bits successfully' + it_behaves_like 'upload bits successfully' end context 'with v3 resources' do @@ -927,7 +927,7 @@ } end - include_examples 'upload bits successfully' + it_behaves_like 'upload bits successfully' end context 'telemetry' do diff --git a/spec/unit/controllers/base/model_controller_spec.rb b/spec/unit/controllers/base/model_controller_spec.rb index 68e8fe1b611..e367ab5d471 100644 --- a/spec/unit/controllers/base/model_controller_spec.rb +++ b/spec/unit/controllers/base/model_controller_spec.rb @@ -372,7 +372,7 @@ def run_delayed_job expect(last_response.body).to eq('') end - include_examples 'tests with associations' + it_behaves_like 'tests with associations' end context 'when async=true' do @@ -392,7 +392,7 @@ def run_delayed_job end end - include_examples 'tests with associations' + it_behaves_like 'tests with associations' end end diff --git a/spec/unit/controllers/runtime/apps_controller_spec.rb b/spec/unit/controllers/runtime/apps_controller_spec.rb index 18ee3d9d58c..86545b3a0b7 100644 --- a/spec/unit/controllers/runtime/apps_controller_spec.rb +++ b/spec/unit/controllers/runtime/apps_controller_spec.rb @@ -2036,40 +2036,40 @@ def delete_app let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'app', - path: '/v2/apps', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'app', + path: '/v2/apps', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'app', - path: '/v2/apps', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'app', + path: '/v2/apps', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'app', - path: '/v2/apps', - enumerate: 0 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'app', + path: '/v2/apps', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'app', - path: '/v2/apps', - enumerate: 0 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'app', + path: '/v2/apps', + enumerate: 0 end end @@ -2078,30 +2078,30 @@ def delete_app let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'app', - path: '/v2/apps', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'app', + path: '/v2/apps', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'app', - path: '/v2/apps', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'app', + path: '/v2/apps', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'app', - path: '/v2/apps', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'app', + path: '/v2/apps', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/domains_controller_spec.rb b/spec/unit/controllers/runtime/domains_controller_spec.rb index 4fd80e36e1d..efea338bf53 100644 --- a/spec/unit/controllers/runtime/domains_controller_spec.rb +++ b/spec/unit/controllers/runtime/domains_controller_spec.rb @@ -60,10 +60,10 @@ module VCAP::CloudController let(:member_b) { @org_b_manager } let(:enumeration_expectation_a) { [@obj_a, @shared_domain] } - include_examples 'permission enumeration', 'OrgManager', - name: 'domain', - path: '/v2/domains', - enumerate: 2 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'domain', + path: '/v2/domains', + enumerate: 2 end describe 'OrgUser' do @@ -71,10 +71,10 @@ module VCAP::CloudController let(:member_b) { @org_b_member } let(:enumeration_expectation_a) { [@shared_domain] } - include_examples 'permission enumeration', 'OrgUser', - name: 'domain', - path: '/v2/domains', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'domain', + path: '/v2/domains', + enumerate: 1 end describe 'BillingManager' do @@ -82,10 +82,10 @@ module VCAP::CloudController let(:member_b) { @org_b_billing_manager } let(:enumeration_expectation_a) { [@shared_domain] } - include_examples 'permission enumeration', 'BillingManager', - name: 'domain', - path: '/v2/domains', - enumerate: 1 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'domain', + path: '/v2/domains', + enumerate: 1 end describe 'Auditor' do @@ -93,10 +93,10 @@ module VCAP::CloudController let(:member_b) { @org_b_auditor } let(:enumeration_expectation_a) { [@obj_a, @shared_domain] } - include_examples 'permission enumeration', 'Auditor', - name: 'domain', - path: '/v2/domains', - enumerate: 2 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'domain', + path: '/v2/domains', + enumerate: 2 end context 'with a shared private domain' do @@ -108,22 +108,22 @@ module VCAP::CloudController let(:member_a) { @org_b_manager } let(:enumeration_expectation_a) { [@obj_a, @obj_b, @shared_domain] } - include_examples 'permission enumeration', 'OrgManager', - permissions_overlap: true, - name: 'domain', - path: '/v2/domains', - enumerate: 3 + it_behaves_like 'permission enumeration', 'OrgManager', + permissions_overlap: true, + name: 'domain', + path: '/v2/domains', + enumerate: 3 end describe 'SpaceDeveloper' do let(:member_a) { @space_b_developer } let(:enumeration_expectation_a) { [@obj_a, @obj_b, @shared_domain] } - include_examples 'permission enumeration', 'SpaceDeveloper', - permissions_overlap: true, - name: 'domain', - path: '/v2/domains', - enumerate: 3 + it_behaves_like 'permission enumeration', 'SpaceDeveloper', + permissions_overlap: true, + name: 'domain', + path: '/v2/domains', + enumerate: 3 end end end diff --git a/spec/unit/controllers/runtime/organizations_controller_spec.rb b/spec/unit/controllers/runtime/organizations_controller_spec.rb index 90314faf870..b4a548d23b4 100644 --- a/spec/unit/controllers/runtime/organizations_controller_spec.rb +++ b/spec/unit/controllers/runtime/organizations_controller_spec.rb @@ -80,10 +80,10 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 it 'cannot update quota definition' do quota = QuotaDefinition.make @@ -111,30 +111,30 @@ module VCAP::CloudController let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/route_mappings_controller_spec.rb b/spec/unit/controllers/runtime/route_mappings_controller_spec.rb index 2e596101485..9fc06b5fa66 100644 --- a/spec/unit/controllers/runtime/route_mappings_controller_spec.rb +++ b/spec/unit/controllers/runtime/route_mappings_controller_spec.rb @@ -31,40 +31,40 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 0 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 0 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 0 end end @@ -73,30 +73,30 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/routes_controller_spec.rb b/spec/unit/controllers/runtime/routes_controller_spec.rb index d47d8e654d8..7bf6cca2a49 100644 --- a/spec/unit/controllers/runtime/routes_controller_spec.rb +++ b/spec/unit/controllers/runtime/routes_controller_spec.rb @@ -76,40 +76,40 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'route', - path: '/v2/routes', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'route', + path: '/v2/routes', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'route', - path: '/v2/routes', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'route', + path: '/v2/routes', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'route', - path: '/v2/routes', - enumerate: 0 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'route', + path: '/v2/routes', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'route', - path: '/v2/routes', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'route', + path: '/v2/routes', + enumerate: 1 end end @@ -118,30 +118,30 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'route', - path: '/v2/routes', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'route', + path: '/v2/routes', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'route', - path: '/v2/routes', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'route', + path: '/v2/routes', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'route', - path: '/v2/routes', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'route', + path: '/v2/routes', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb b/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb index b2fc56eb8e5..31ffc3001e4 100644 --- a/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb +++ b/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb @@ -58,10 +58,10 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end describe 'OrgManager of both' do @@ -73,41 +73,41 @@ module VCAP::CloudController @org_b.add_manager(@org_a_manager) end - include_examples 'permission enumeration', 'OrgManager', - permissions_overlap: true, - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 2 + it_behaves_like 'permission enumeration', 'OrgManager', + permissions_overlap: true, + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 2 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 0 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 0 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 0 end end @@ -116,30 +116,30 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/spaces_controller_spec.rb b/spec/unit/controllers/runtime/spaces_controller_spec.rb index 7d3a8e19260..1964268a646 100644 --- a/spec/unit/controllers/runtime/spaces_controller_spec.rb +++ b/spec/unit/controllers/runtime/spaces_controller_spec.rb @@ -74,40 +74,40 @@ def decoded_guids let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'space', - path: '/v2/spaces', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'space', + path: '/v2/spaces', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'space', - path: '/v2/spaces', - enumerate: 0 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'space', + path: '/v2/spaces', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'space', - path: '/v2/spaces', - enumerate: 0 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'space', + path: '/v2/spaces', + enumerate: 0 end end @@ -116,30 +116,30 @@ def decoded_guids let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/stagings_controller_spec.rb b/spec/unit/controllers/runtime/stagings_controller_spec.rb index 2be7d38dc8c..09b227560fe 100644 --- a/spec/unit/controllers/runtime/stagings_controller_spec.rb +++ b/spec/unit/controllers/runtime/stagings_controller_spec.rb @@ -74,7 +74,7 @@ module VCAP::CloudController end RSpec.shared_examples 'droplet staging error handling' do - include_examples 'check content digest' + it_behaves_like 'check content digest' context 'with an invalid app' do it 'returns 404' do @@ -329,7 +329,7 @@ def create_test_blob expect(last_response.status).to eq(404) end - include_examples 'staging bad auth', :get, 'packages' + it_behaves_like 'staging bad auth', :get, 'packages' end describe 'POST /internal/v4/droplets/:guid/upload' do @@ -423,7 +423,7 @@ def create_test_blob expect(last_response.status).to eq 200 end - include_examples 'check content digest' do + it_behaves_like 'check content digest' do let(:url) { "/internal/v4/buildpack_cache/#{stack}/#{app_model.guid}/upload" } end end @@ -569,7 +569,7 @@ def upload_droplet expect(last_response.status).to eq(404) end - include_examples 'staging bad auth', :get, 'droplets' + it_behaves_like 'staging bad auth', :get, 'droplets' end end end diff --git a/spec/unit/controllers/runtime/users_controller_spec.rb b/spec/unit/controllers/runtime/users_controller_spec.rb index 4ac852a5654..91364fbcac3 100644 --- a/spec/unit/controllers/runtime/users_controller_spec.rb +++ b/spec/unit/controllers/runtime/users_controller_spec.rb @@ -80,22 +80,22 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @space_a_manager } - include_examples 'permission enumeration', 'User', - name: 'user', - path: '/v2/users', - enumerate: :not_allowed + it_behaves_like 'permission enumeration', 'User', + name: 'user', + path: '/v2/users', + enumerate: :not_allowed end context 'admin user' do let(:member_a) { User.make } let(:enumeration_expectation_a) { User.order(:id).limit(50) } - include_examples 'permission enumeration', 'Admin', - name: 'user', - path: '/v2/users', - enumerate: proc { User.count }, - permissions_overlap: true, - user_opts: { admin: true } + it_behaves_like 'permission enumeration', 'Admin', + name: 'user', + path: '/v2/users', + enumerate: proc { User.count }, + permissions_overlap: true, + user_opts: { admin: true } end end diff --git a/spec/unit/controllers/services/service_bindings_controller_spec.rb b/spec/unit/controllers/services/service_bindings_controller_spec.rb index be6b5c0f5b7..7695f2c9b88 100644 --- a/spec/unit/controllers/services/service_bindings_controller_spec.rb +++ b/spec/unit/controllers/services/service_bindings_controller_spec.rb @@ -93,40 +93,40 @@ def bind_url_regex(opts={}) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end end @@ -135,40 +135,40 @@ def bind_url_regex(opts={}) let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'Developer in service instance space' do let(:member_a) { make_developer_for_space(@service_instance_a.space) } let(:member_b) { make_developer_for_space(@service_instance_b.space) } - include_examples 'permission enumeration', 'Developer in service instance space', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + it_behaves_like 'permission enumeration', 'Developer in service instance space', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end end end diff --git a/spec/unit/controllers/services/service_instances_controller_spec.rb b/spec/unit/controllers/services/service_instances_controller_spec.rb index 80a75f21d79..5cb7209f42f 100644 --- a/spec/unit/controllers/services/service_instances_controller_spec.rb +++ b/spec/unit/controllers/services/service_instances_controller_spec.rb @@ -54,10 +54,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { instance_variable_get(member_a_ivar) } let(:member_b) { instance_variable_get(member_b_ivar) } - include_examples 'permission enumeration', user_role, - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 0 + it_behaves_like 'permission enumeration', user_role, + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 0 end end @@ -70,10 +70,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 end end @@ -218,10 +218,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 it 'prevents a developer from creating a service instance in an unauthorized space' do plan = ServicePlan.make(:v2) @@ -244,20 +244,20 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 end describe 'SpaceManager' do let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 end end end diff --git a/spec/unit/controllers/services/service_keys_controller_spec.rb b/spec/unit/controllers/services/service_keys_controller_spec.rb index 4f588fe252c..da41ab1d1f6 100644 --- a/spec/unit/controllers/services/service_keys_controller_spec.rb +++ b/spec/unit/controllers/services/service_keys_controller_spec.rb @@ -89,40 +89,40 @@ def bind_url_regex(opts={}) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'permission enumeration', 'OrgUser', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + it_behaves_like 'permission enumeration', 'OrgUser', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'permission enumeration', 'BillingManager', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + it_behaves_like 'permission enumeration', 'BillingManager', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'permission enumeration', 'Auditor', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + it_behaves_like 'permission enumeration', 'Auditor', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end end @@ -131,30 +131,30 @@ def bind_url_regex(opts={}) let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end end end diff --git a/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb b/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb index a3c6908e957..c1d6c411a85 100644 --- a/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb +++ b/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb @@ -37,10 +37,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { instance_variable_get(member_a_ivar) } let(:member_b) { instance_variable_get(member_b_ivar) } - include_examples 'permission enumeration', user_role, - name: 'service plan visibility', - path: '/v2/service_plan_visibilities', - enumerate: 0 + it_behaves_like 'permission enumeration', user_role, + name: 'service plan visibility', + path: '/v2/service_plan_visibilities', + enumerate: 0 end end diff --git a/spec/unit/controllers/services/service_plans_controller_spec.rb b/spec/unit/controllers/services/service_plans_controller_spec.rb index 191136db7df..2ec8ff16ece 100644 --- a/spec/unit/controllers/services/service_plans_controller_spec.rb +++ b/spec/unit/controllers/services/service_plans_controller_spec.rb @@ -5,11 +5,11 @@ module VCAP::CloudController RSpec.describe ServicePlansController, :services do shared_examples 'enumerate and read plan only' do |perm_name| - include_examples 'permission enumeration', perm_name, - name: 'service plan', - path: '/v2/service_plans', - permissions_overlap: true, - enumerate: 7 + it_behaves_like 'permission enumeration', perm_name, + name: 'service plan', + path: '/v2/service_plans', + permissions_overlap: true, + enumerate: 7 end let(:developer) { make_developer_for_space(Space.make) } @@ -70,28 +70,28 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'enumerate and read plan only', 'OrgManager' + it_behaves_like 'enumerate and read plan only', 'OrgManager' end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'enumerate and read plan only', 'OrgUser' + it_behaves_like 'enumerate and read plan only', 'OrgUser' end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'enumerate and read plan only', 'BillingManager' + it_behaves_like 'enumerate and read plan only', 'BillingManager' end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'enumerate and read plan only', 'Auditor' + it_behaves_like 'enumerate and read plan only', 'Auditor' end end @@ -100,21 +100,21 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'enumerate and read plan only', 'SpaceManager' + it_behaves_like 'enumerate and read plan only', 'SpaceManager' end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'enumerate and read plan only', 'Developer' + it_behaves_like 'enumerate and read plan only', 'Developer' end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'enumerate and read plan only', 'SpaceAuditor' + it_behaves_like 'enumerate and read plan only', 'SpaceAuditor' end end end diff --git a/spec/unit/controllers/services/services_controller_spec.rb b/spec/unit/controllers/services/services_controller_spec.rb index dc1fbb736e6..60b31424886 100644 --- a/spec/unit/controllers/services/services_controller_spec.rb +++ b/spec/unit/controllers/services/services_controller_spec.rb @@ -5,11 +5,11 @@ module VCAP::CloudController RSpec.describe ServicesController, :services do shared_examples 'enumerate and read service only' do |perm_name| - include_examples 'permission enumeration', perm_name, - name: 'service', - path: '/v2/services', - permissions_overlap: true, - enumerate: 7 + it_behaves_like 'permission enumeration', perm_name, + name: 'service', + path: '/v2/services', + permissions_overlap: true, + enumerate: 7 end describe 'Query Parameters' do @@ -54,28 +54,28 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'enumerate and read service only', 'OrgManager' + it_behaves_like 'enumerate and read service only', 'OrgManager' end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - include_examples 'enumerate and read service only', 'OrgUser' + it_behaves_like 'enumerate and read service only', 'OrgUser' end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - include_examples 'enumerate and read service only', 'BillingManager' + it_behaves_like 'enumerate and read service only', 'BillingManager' end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - include_examples 'enumerate and read service only', 'Auditor' + it_behaves_like 'enumerate and read service only', 'Auditor' end end @@ -84,21 +84,21 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'enumerate and read service only', 'SpaceManager' + it_behaves_like 'enumerate and read service only', 'SpaceManager' end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'enumerate and read service only', 'Developer' + it_behaves_like 'enumerate and read service only', 'Developer' end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'enumerate and read service only', 'SpaceAuditor' + it_behaves_like 'enumerate and read service only', 'SpaceAuditor' end end end diff --git a/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb b/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb index c131a173574..a429547bf39 100644 --- a/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb +++ b/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb @@ -51,10 +51,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { instance_variable_get(member_a_ivar) } let(:member_b) { instance_variable_get(member_b_ivar) } - include_examples 'permission enumeration', user_role, - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 0 + it_behaves_like 'permission enumeration', user_role, + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 0 end end @@ -67,10 +67,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - include_examples 'permission enumeration', 'OrgManager', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'OrgManager', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end end @@ -79,30 +79,30 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - include_examples 'permission enumeration', 'Developer', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'Developer', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - include_examples 'permission enumeration', 'SpaceAuditor', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceAuditor', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end describe 'SpaceManager' do let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - include_examples 'permission enumeration', 'SpaceManager', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + it_behaves_like 'permission enumeration', 'SpaceManager', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end end end diff --git a/spec/unit/controllers/v3/packages_controller_spec.rb b/spec/unit/controllers/v3/packages_controller_spec.rb index 4f627ea83a8..6edbe75b354 100644 --- a/spec/unit/controllers/v3/packages_controller_spec.rb +++ b/spec/unit/controllers/v3/packages_controller_spec.rb @@ -90,7 +90,7 @@ } end - include_examples 'uploading successfully' + it_behaves_like 'uploading successfully' end context 'v3 resource format' do @@ -100,7 +100,7 @@ } end - include_examples 'uploading successfully' + it_behaves_like 'uploading successfully' end end end diff --git a/spec/unit/fetchers/security_group_list_fetcher_spec.rb b/spec/unit/fetchers/security_group_list_fetcher_spec.rb index 26b9593fc41..0d339677062 100644 --- a/spec/unit/fetchers/security_group_list_fetcher_spec.rb +++ b/spec/unit/fetchers/security_group_list_fetcher_spec.rb @@ -33,7 +33,7 @@ module VCAP::CloudController describe '#fetch_all' do let(:security_groups) { fetcher.fetch_all(message) } - include_examples 'eager loading' + it_behaves_like 'eager loading' it 'includes all the security_groups' do expect(security_groups.all).to include(security_group_1, security_group_2, security_group_3) @@ -44,7 +44,7 @@ module VCAP::CloudController let(:visible_security_groups) { [security_group_1.guid, security_group_2.guid] } let(:security_groups) { fetcher.fetch(message, visible_security_groups) } - include_examples 'eager loading' + it_behaves_like 'eager loading' context 'when no filters are specified' do it 'returns all of the security groups' do diff --git a/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb b/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb index 481eaca0171..349712df92c 100644 --- a/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb +++ b/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb @@ -36,7 +36,7 @@ module Jobs::Runtime context 'and there is a detected stack in the zipfile' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'detected stack' }] } - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'plans to create the record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) @@ -48,7 +48,7 @@ module Jobs::Runtime end context 'and there is not a detected stack in the zipfile' do - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'plans to create the record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) @@ -68,7 +68,7 @@ module Jobs::Runtime context 'and the buildpack zip has the same stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: existing_stack.name }] } - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'sets the stack to the matching stack' do expect(single_buildpack_job.stack_name).to eq(existing_stack.name) @@ -86,7 +86,7 @@ module Jobs::Runtime context 'and the buildpack zip has a different stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'manifest stack' }] } - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'plans on creating a new record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) @@ -114,7 +114,7 @@ module Jobs::Runtime context 'and the buildpack zip also has a nil stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: nil }] } - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'plans to update' do expect(single_buildpack_job).to be_a(UpdateBuildpackInstaller) @@ -132,7 +132,7 @@ module Jobs::Runtime context 'but the buildpack zip /has/ a stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'manifest stack' }] } - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'plans on updating it' do expect(single_buildpack_job).to be_a(UpdateBuildpackInstaller) @@ -159,7 +159,7 @@ module Jobs::Runtime context 'and one matches the manifest stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: existing_stack.name }] } - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'sets the stack to the matching stack' do expect(single_buildpack_job.stack_name).to eq(existing_stack.name) @@ -187,7 +187,7 @@ module Jobs::Runtime context 'and none match the manifest stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'manifest stack' }] } - include_examples 'passthrough parameters' + it_behaves_like 'passthrough parameters' it 'plans on creating a new record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) diff --git a/spec/unit/jobs/services/service_binding_state_fetch_spec.rb b/spec/unit/jobs/services/service_binding_state_fetch_spec.rb index 6652ab80e8e..7a74474db87 100644 --- a/spec/unit/jobs/services/service_binding_state_fetch_spec.rb +++ b/spec/unit/jobs/services/service_binding_state_fetch_spec.rb @@ -423,7 +423,7 @@ def run_job(job) end end - include_examples 'when exponential backoff is not set to default' + it_behaves_like 'when exponential backoff is not set to default' end context 'when the last_operation state is failed' do @@ -789,7 +789,7 @@ def run_job(job) end end - include_examples 'when brokers return Retry-After header', :fetch_service_binding_last_operation + it_behaves_like 'when brokers return Retry-After header', :fetch_service_binding_last_operation end describe '#display_name' do diff --git a/spec/unit/jobs/services/service_instance_state_fetch_spec.rb b/spec/unit/jobs/services/service_instance_state_fetch_spec.rb index 18d11aba276..88a34605cb6 100644 --- a/spec/unit/jobs/services/service_instance_state_fetch_spec.rb +++ b/spec/unit/jobs/services/service_instance_state_fetch_spec.rb @@ -376,7 +376,7 @@ def run_job(job) expect(Event.find(type: 'audit.service_instance.create')).to be_nil end - include_examples 'when exponential backoff is not set to default' + it_behaves_like 'when exponential backoff is not set to default' context 'when the last_operation is replaced with delete in progress' do let(:polling_interval) { 60 } @@ -575,7 +575,7 @@ def run_job(job) end end - include_examples 'when brokers return Retry-After header', :fetch_service_instance_last_operation + it_behaves_like 'when brokers return Retry-After header', :fetch_service_instance_last_operation end describe '#job_name_in_configuration' do diff --git a/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb b/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb index 734df1aacb1..d719e2abecc 100644 --- a/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb +++ b/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb @@ -948,8 +948,8 @@ module Diego end end - include_examples 'k8s service bindings' - include_examples 'file-based VCAP service bindings' + it_behaves_like 'k8s service bindings' + it_behaves_like 'file-based VCAP service bindings' end context 'when the lifecycle_type is "cnb"' do @@ -1042,8 +1042,8 @@ module Diego end end - include_examples 'k8s service bindings' - include_examples 'file-based VCAP service bindings' + it_behaves_like 'k8s service bindings' + it_behaves_like 'file-based VCAP service bindings' end context 'when the lifecycle_type is "docker"' do @@ -1388,8 +1388,8 @@ module Diego end end - include_examples 'k8s service bindings' - include_examples 'file-based VCAP service bindings' + it_behaves_like 'k8s service bindings' + it_behaves_like 'file-based VCAP service bindings' end end diff --git a/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb b/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb index fe716bd526f..2812f5e1bcf 100644 --- a/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb +++ b/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb @@ -118,32 +118,32 @@ module VCAP::CloudController::Diego expect(service_binding_files).to all(have_attributes(path: match(%r{^binding-name/.+$}))) end - include_examples 'mapping of type and provider' - include_examples 'mapping of binding metadata' - include_examples 'mapping of instance metadata' - include_examples 'mapping of plan metadata' - include_examples 'mapping of tags' - include_examples 'mapping of credentials' + it_behaves_like 'mapping of type and provider' + it_behaves_like 'mapping of binding metadata' + it_behaves_like 'mapping of instance metadata' + it_behaves_like 'mapping of plan metadata' + it_behaves_like 'mapping of tags' + it_behaves_like 'mapping of credentials' it 'omits null or empty array attributes' do expect(service_binding_files).not_to include(have_attributes(path: 'binding-name/syslog_drain_url')) expect(service_binding_files).not_to include(have_attributes(path: 'binding-name/volume_mounts')) end - include_examples 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash] + it_behaves_like 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash] context 'when binding_name is nil' do let(:binding_name) { nil } let(:directory) { 'instance-name' } - include_examples 'mapping of type and provider' - include_examples 'mapping of binding metadata', 'instance-name' - include_examples 'mapping of instance metadata' - include_examples 'mapping of plan metadata' - include_examples 'mapping of tags' - include_examples 'mapping of credentials' + it_behaves_like 'mapping of type and provider' + it_behaves_like 'mapping of binding metadata', 'instance-name' + it_behaves_like 'mapping of instance metadata' + it_behaves_like 'mapping of plan metadata' + it_behaves_like 'mapping of tags' + it_behaves_like 'mapping of credentials' - include_examples 'expected files', %w[type provider label binding-guid name instance-guid instance-name plan tags string number boolean array hash] + it_behaves_like 'expected files', %w[type provider label binding-guid name instance-guid instance-name plan tags string number boolean array hash] end context 'when syslog_drain_url is set' do @@ -153,15 +153,15 @@ module VCAP::CloudController::Diego expect(service_binding_files.find { |f| f.path == 'binding-name/syslog-drain-url' }).to have_attributes(content: 'https://syslog.drain') end - include_examples 'mapping of type and provider' - include_examples 'mapping of binding metadata' - include_examples 'mapping of instance metadata' - include_examples 'mapping of plan metadata' - include_examples 'mapping of tags' - include_examples 'mapping of credentials' + it_behaves_like 'mapping of type and provider' + it_behaves_like 'mapping of binding metadata' + it_behaves_like 'mapping of instance metadata' + it_behaves_like 'mapping of plan metadata' + it_behaves_like 'mapping of tags' + it_behaves_like 'mapping of credentials' - include_examples 'expected files', - %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash syslog-drain-url] + it_behaves_like 'expected files', + %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash syslog-drain-url] end context 'when volume_mounts is set' do @@ -185,40 +185,40 @@ module VCAP::CloudController::Diego end).to have_attributes(content: '[{"container_dir":"dir1","device_type":"type1","mode":"mode1"},{"container_dir":"dir2","device_type":"type2","mode":"mode2"}]') end - include_examples 'mapping of type and provider' - include_examples 'mapping of binding metadata' - include_examples 'mapping of instance metadata' - include_examples 'mapping of plan metadata' - include_examples 'mapping of tags' - include_examples 'mapping of credentials' + it_behaves_like 'mapping of type and provider' + it_behaves_like 'mapping of binding metadata' + it_behaves_like 'mapping of instance metadata' + it_behaves_like 'mapping of plan metadata' + it_behaves_like 'mapping of tags' + it_behaves_like 'mapping of credentials' - include_examples 'expected files', - %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash volume-mounts] + it_behaves_like 'expected files', + %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash volume-mounts] end context 'when the instance is user-provided' do let(:instance) { VCAP::CloudController::UserProvidedServiceInstance.make(name: 'upsi', tags: %w[an-upsi-tag another-upsi-tag]) } - include_examples 'mapping of type and provider', 'user-provided' - include_examples 'mapping of binding metadata' - include_examples 'mapping of instance metadata', 'upsi' - include_examples 'mapping of tags', '["an-upsi-tag","another-upsi-tag"]' - include_examples 'mapping of credentials' + it_behaves_like 'mapping of type and provider', 'user-provided' + it_behaves_like 'mapping of binding metadata' + it_behaves_like 'mapping of instance metadata', 'upsi' + it_behaves_like 'mapping of tags', '["an-upsi-tag","another-upsi-tag"]' + it_behaves_like 'mapping of credentials' - include_examples 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name tags string number boolean array hash] + it_behaves_like 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name tags string number boolean array hash] end context 'when there are duplicate keys at different levels' do let(:credentials) { { type: 'duplicate-type', name: 'duplicate-name', credentials: { password: 'secret' } } } - include_examples 'mapping of type and provider' # no 'duplicate-type' - include_examples 'mapping of binding metadata' # no 'duplicate-name' - include_examples 'mapping of instance metadata' - include_examples 'mapping of plan metadata' - include_examples 'mapping of tags' - include_examples 'mapping of credentials', { credentials: '{"password":"secret"}' } + it_behaves_like 'mapping of type and provider' # no 'duplicate-type' + it_behaves_like 'mapping of binding metadata' # no 'duplicate-name' + it_behaves_like 'mapping of instance metadata' + it_behaves_like 'mapping of plan metadata' + it_behaves_like 'mapping of tags' + it_behaves_like 'mapping of credentials', { credentials: '{"password":"secret"}' } - include_examples 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags credentials] + it_behaves_like 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags credentials] end context 'when there are duplicate binding names' do diff --git a/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb b/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb index cb1b6bcfd16..923b8cf74b9 100644 --- a/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb +++ b/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb @@ -456,7 +456,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - include_examples 'broker communication errors' do + it_behaves_like 'broker communication errors' do let(:request) { client.get(path) } end end @@ -527,7 +527,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - include_examples 'broker communication errors' do + it_behaves_like 'broker communication errors' do let(:request) { client.put(path, message) } end end @@ -604,7 +604,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - include_examples 'broker communication errors' do + it_behaves_like 'broker communication errors' do let(:request) { client.patch(path, message) } end end @@ -674,7 +674,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - include_examples 'broker communication errors' do + it_behaves_like 'broker communication errors' do let(:full_url) { "http://broker.example.com#{path}?#{message.to_query}" } let(:request) { client.delete(path, message) } end diff --git a/spec/unit/lib/sinatra/vcap_spec.rb b/spec/unit/lib/sinatra/vcap_spec.rb index 4f5bfe49a51..2ee034746a8 100644 --- a/spec/unit/lib/sinatra/vcap_spec.rb +++ b/spec/unit/lib/sinatra/vcap_spec.rb @@ -75,7 +75,7 @@ def app expect(last_response.body).to eq('ok') end - include_examples 'http header content type' + it_behaves_like 'http header content type' end describe 'accessing an invalid route' do @@ -90,7 +90,7 @@ def app expect(decoded_response['description']).to match(/Unknown request/) end - include_examples 'http header content type' + it_behaves_like 'http header content type' end describe 'accessing a route that throws a low level exception' do @@ -108,7 +108,7 @@ def app }) end - include_examples 'http header content type' + it_behaves_like 'http header content type' end describe 'accessing a route that throws a vcap error' do diff --git a/spec/unit/lib/vcap/rest_api/attribute_spec.rb b/spec/unit/lib/vcap/rest_api/attribute_spec.rb index 8dccd834262..f52a4c192ef 100644 --- a/spec/unit/lib/vcap/rest_api/attribute_spec.rb +++ b/spec/unit/lib/vcap/rest_api/attribute_spec.rb @@ -49,8 +49,8 @@ module VCAP::CloudController end end - include_examples 'operation list', :exclude_in, :exclude_in?, 'excluded' - include_examples 'operation list', :optional_in, :optional_in?, 'optional' - include_examples 'operation list', :redact_in, :redact_in?, 'redacted' + it_behaves_like 'operation list', :exclude_in, :exclude_in?, 'excluded' + it_behaves_like 'operation list', :optional_in, :optional_in?, 'optional' + it_behaves_like 'operation list', :redact_in, :redact_in?, 'redacted' end end diff --git a/spec/unit/models/runtime/private_domain_spec.rb b/spec/unit/models/runtime/private_domain_spec.rb index cc6e69921a7..bcbd5b94c01 100644 --- a/spec/unit/models/runtime/private_domain_spec.rb +++ b/spec/unit/models/runtime/private_domain_spec.rb @@ -29,7 +29,7 @@ module VCAP::CloudController describe 'domain' do subject { private_domain } - include_examples 'domain validation' + it_behaves_like 'domain validation' end it 'denies private uaa.customer-app-domain1.com when customer-app-domain1.com is the system domain' do diff --git a/spec/unit/models/runtime/shared_domain_spec.rb b/spec/unit/models/runtime/shared_domain_spec.rb index 6b587cfb922..db44bda7887 100644 --- a/spec/unit/models/runtime/shared_domain_spec.rb +++ b/spec/unit/models/runtime/shared_domain_spec.rb @@ -26,7 +26,7 @@ module VCAP::CloudController end describe '#validate' do - include_examples 'domain validation' + it_behaves_like 'domain validation' context 'when the name is foo.com and bar.foo.com is a shared domain' do before do diff --git a/spec/unit/models/runtime/space_spec.rb b/spec/unit/models/runtime/space_spec.rb index 0e21c1aad34..08bc2b63fd9 100644 --- a/spec/unit/models/runtime/space_spec.rb +++ b/spec/unit/models/runtime/space_spec.rb @@ -388,7 +388,7 @@ module VCAP::CloudController end %w[developer manager auditor supporter].each do |perm| - include_examples 'bad app space permission', perm + it_behaves_like 'bad app space permission', perm end end diff --git a/spec/unit/presenters/system_environment/system_env_presenter_spec.rb b/spec/unit/presenters/system_environment/system_env_presenter_spec.rb index 7b734293a8e..5d79fdba480 100644 --- a/spec/unit/presenters/system_environment/system_env_presenter_spec.rb +++ b/spec/unit/presenters/system_environment/system_env_presenter_spec.rb @@ -44,8 +44,8 @@ module VCAP::CloudController expect(system_env_presenter.system_env[:VCAP_SERVICES]).to eq({}) end - include_examples 'k8s service bindings' - include_examples 'file-based VCAP service bindings' + it_behaves_like 'k8s service bindings' + it_behaves_like 'file-based VCAP service bindings' end context 'when there are services' do @@ -190,8 +190,8 @@ module VCAP::CloudController end end - include_examples 'k8s service bindings' - include_examples 'file-based VCAP service bindings' + it_behaves_like 'k8s service bindings' + it_behaves_like 'file-based VCAP service bindings' end end end From 33ff434eb6f1617e124753fe76a46b9a96b12b98 Mon Sep 17 00:00:00 2001 From: "M. Oleske" Date: Sun, 27 Apr 2025 10:00:57 -0700 Subject: [PATCH 4/4] Revert "add rspec/includeexamples" This reverts commit 74df0336d8c4d05f6bd9fcd7dabcbf8fd26d57c6. --- .rubocop_cc.yml | 2 - .../broker_api_v2.0_spec.rb | 12 +-- ..._add_user_id_index_to_roles_tables_spec.rb | 16 ++-- spec/request/packages_spec.rb | 4 +- .../controllers/base/model_controller_spec.rb | 4 +- .../runtime/apps_controller_spec.rb | 56 ++++++------ .../runtime/domains_controller_spec.rb | 52 +++++------ .../runtime/organizations_controller_spec.rb | 32 +++---- .../runtime/route_mappings_controller_spec.rb | 56 ++++++------ .../runtime/routes_controller_spec.rb | 56 ++++++------ ...space_quota_definitions_controller_spec.rb | 66 +++++++------- .../runtime/spaces_controller_spec.rb | 56 ++++++------ .../runtime/stagings_controller_spec.rb | 8 +- .../runtime/users_controller_spec.rb | 20 ++--- .../service_bindings_controller_spec.rb | 64 +++++++------- .../service_instances_controller_spec.rb | 40 ++++----- .../services/service_keys_controller_spec.rb | 56 ++++++------ ...rvice_plan_visibilities_controller_spec.rb | 8 +- .../services/service_plans_controller_spec.rb | 24 +++--- .../services/services_controller_spec.rb | 24 +++--- ...vided_service_instances_controller_spec.rb | 40 ++++----- .../v3/packages_controller_spec.rb | 4 +- .../security_group_list_fetcher_spec.rb | 4 +- .../buildpack_installer_factory_spec.rb | 16 ++-- .../service_binding_state_fetch_spec.rb | 4 +- .../service_instance_state_fetch_spec.rb | 4 +- .../diego/app_recipe_builder_spec.rb | 12 +-- .../service_binding_files_builder_spec.rb | 86 +++++++++---------- .../service_brokers/v2/http_client_spec.rb | 8 +- spec/unit/lib/sinatra/vcap_spec.rb | 6 +- spec/unit/lib/vcap/rest_api/attribute_spec.rb | 6 +- .../models/runtime/private_domain_spec.rb | 2 +- .../unit/models/runtime/shared_domain_spec.rb | 2 +- spec/unit/models/runtime/space_spec.rb | 2 +- .../system_env_presenter_spec.rb | 8 +- 35 files changed, 429 insertions(+), 431 deletions(-) diff --git a/.rubocop_cc.yml b/.rubocop_cc.yml index c8ac38a9fb0..7f64109c24e 100644 --- a/.rubocop_cc.yml +++ b/.rubocop_cc.yml @@ -560,8 +560,6 @@ RSpec/ExcessiveDocstringSpacing: Enabled: true RSpec/IdenticalEqualityAssertion: Enabled: true -RSpec/IncludeExamples: - Enabled: true RSpec/IndexedLet: Enabled: true RSpec/MatchArray: diff --git a/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb b/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb index 8c4b3576fd8..33e6a33ee29 100644 --- a/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb +++ b/spec/acceptance/broker_api_compatibility/broker_api_v2.0_spec.rb @@ -105,7 +105,7 @@ def request_has_version_header(method, url) it_behaves_like 'a catalog fetch request' - it_behaves_like 'broker errors' + include_examples 'broker errors' it 'handles the broker response' do expect(last_response).to have_status_code(201) @@ -126,7 +126,7 @@ def request_has_version_header(method, url) it_behaves_like 'a catalog fetch request' - it_behaves_like 'broker errors' + include_examples 'broker errors' it 'handles the broker response' do expect(last_response).to have_status_code(200) @@ -169,7 +169,7 @@ def request_has_version_header(method, url) admin_headers) end - it_behaves_like 'broker errors' + include_examples 'broker errors' it 'sends all required fields' do expect(a_request(:put, %r{broker-url/v2/service_instances/#{guid_pattern}}). @@ -258,7 +258,7 @@ def request_has_version_header(method, url) admin_headers) end - it_behaves_like 'broker errors' + include_examples 'broker errors' it 'uses the correct version header' do request_has_version_header(:put, %r{/v2/service_instances/#{service_instance_guid}/service_bindings/#{guid_pattern}$}) @@ -340,7 +340,7 @@ def request_has_version_header(method, url) admin_headers) end - it_behaves_like 'broker errors' + include_examples 'broker errors' it 'sends all required fields' do expected_url = %r{broker-url/v2/service_instances/#{service_instance_guid}/service_bindings/#{guid_pattern}\?plan_id=plan1-guid-here&service_id=service-guid-here} @@ -397,7 +397,7 @@ def request_has_version_header(method, url) admin_headers) end - it_behaves_like 'broker errors' + include_examples 'broker errors' it 'sends all required fields' do expect(a_request(:delete, %r{broker-url/v2/service_instances/#{service_instance_guid}\?plan_id=plan1-guid-here&service_id=service-guid-here})). diff --git a/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb b/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb index 1276dc54f63..5e66ac7a0aa 100644 --- a/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb +++ b/spec/migrations/20250318112800_add_user_id_index_to_roles_tables_spec.rb @@ -65,12 +65,12 @@ let(:migration_filename) { '20250318112800_add_user_id_index_to_roles_tables.rb' } end - it_behaves_like 'adding an index for table', 'organizations_auditors' - it_behaves_like 'adding an index for table', 'organizations_billing_managers' - it_behaves_like 'adding an index for table', 'organizations_managers' - it_behaves_like 'adding an index for table', 'organizations_users' - it_behaves_like 'adding an index for table', 'spaces_auditors' - it_behaves_like 'adding an index for table', 'spaces_developers' - it_behaves_like 'adding an index for table', 'spaces_managers' - it_behaves_like 'adding an index for table', 'spaces_supporters' + include_examples 'adding an index for table', 'organizations_auditors' + include_examples 'adding an index for table', 'organizations_billing_managers' + include_examples 'adding an index for table', 'organizations_managers' + include_examples 'adding an index for table', 'organizations_users' + include_examples 'adding an index for table', 'spaces_auditors' + include_examples 'adding an index for table', 'spaces_developers' + include_examples 'adding an index for table', 'spaces_managers' + include_examples 'adding an index for table', 'spaces_supporters' end diff --git a/spec/request/packages_spec.rb b/spec/request/packages_spec.rb index ef39451c04a..3d8c0c90d02 100644 --- a/spec/request/packages_spec.rb +++ b/spec/request/packages_spec.rb @@ -913,7 +913,7 @@ } end - it_behaves_like 'upload bits successfully' + include_examples 'upload bits successfully' end context 'with v3 resources' do @@ -927,7 +927,7 @@ } end - it_behaves_like 'upload bits successfully' + include_examples 'upload bits successfully' end context 'telemetry' do diff --git a/spec/unit/controllers/base/model_controller_spec.rb b/spec/unit/controllers/base/model_controller_spec.rb index e367ab5d471..68e8fe1b611 100644 --- a/spec/unit/controllers/base/model_controller_spec.rb +++ b/spec/unit/controllers/base/model_controller_spec.rb @@ -372,7 +372,7 @@ def run_delayed_job expect(last_response.body).to eq('') end - it_behaves_like 'tests with associations' + include_examples 'tests with associations' end context 'when async=true' do @@ -392,7 +392,7 @@ def run_delayed_job end end - it_behaves_like 'tests with associations' + include_examples 'tests with associations' end end diff --git a/spec/unit/controllers/runtime/apps_controller_spec.rb b/spec/unit/controllers/runtime/apps_controller_spec.rb index 86545b3a0b7..18ee3d9d58c 100644 --- a/spec/unit/controllers/runtime/apps_controller_spec.rb +++ b/spec/unit/controllers/runtime/apps_controller_spec.rb @@ -2036,40 +2036,40 @@ def delete_app let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'app', - path: '/v2/apps', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'app', + path: '/v2/apps', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'app', - path: '/v2/apps', - enumerate: 0 + include_examples 'permission enumeration', 'OrgUser', + name: 'app', + path: '/v2/apps', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'app', - path: '/v2/apps', - enumerate: 0 + include_examples 'permission enumeration', 'BillingManager', + name: 'app', + path: '/v2/apps', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'app', - path: '/v2/apps', - enumerate: 0 + include_examples 'permission enumeration', 'Auditor', + name: 'app', + path: '/v2/apps', + enumerate: 0 end end @@ -2078,30 +2078,30 @@ def delete_app let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'app', - path: '/v2/apps', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'app', + path: '/v2/apps', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'app', - path: '/v2/apps', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'app', + path: '/v2/apps', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'app', - path: '/v2/apps', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'app', + path: '/v2/apps', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/domains_controller_spec.rb b/spec/unit/controllers/runtime/domains_controller_spec.rb index efea338bf53..4fd80e36e1d 100644 --- a/spec/unit/controllers/runtime/domains_controller_spec.rb +++ b/spec/unit/controllers/runtime/domains_controller_spec.rb @@ -60,10 +60,10 @@ module VCAP::CloudController let(:member_b) { @org_b_manager } let(:enumeration_expectation_a) { [@obj_a, @shared_domain] } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'domain', - path: '/v2/domains', - enumerate: 2 + include_examples 'permission enumeration', 'OrgManager', + name: 'domain', + path: '/v2/domains', + enumerate: 2 end describe 'OrgUser' do @@ -71,10 +71,10 @@ module VCAP::CloudController let(:member_b) { @org_b_member } let(:enumeration_expectation_a) { [@shared_domain] } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'domain', - path: '/v2/domains', - enumerate: 1 + include_examples 'permission enumeration', 'OrgUser', + name: 'domain', + path: '/v2/domains', + enumerate: 1 end describe 'BillingManager' do @@ -82,10 +82,10 @@ module VCAP::CloudController let(:member_b) { @org_b_billing_manager } let(:enumeration_expectation_a) { [@shared_domain] } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'domain', - path: '/v2/domains', - enumerate: 1 + include_examples 'permission enumeration', 'BillingManager', + name: 'domain', + path: '/v2/domains', + enumerate: 1 end describe 'Auditor' do @@ -93,10 +93,10 @@ module VCAP::CloudController let(:member_b) { @org_b_auditor } let(:enumeration_expectation_a) { [@obj_a, @shared_domain] } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'domain', - path: '/v2/domains', - enumerate: 2 + include_examples 'permission enumeration', 'Auditor', + name: 'domain', + path: '/v2/domains', + enumerate: 2 end context 'with a shared private domain' do @@ -108,22 +108,22 @@ module VCAP::CloudController let(:member_a) { @org_b_manager } let(:enumeration_expectation_a) { [@obj_a, @obj_b, @shared_domain] } - it_behaves_like 'permission enumeration', 'OrgManager', - permissions_overlap: true, - name: 'domain', - path: '/v2/domains', - enumerate: 3 + include_examples 'permission enumeration', 'OrgManager', + permissions_overlap: true, + name: 'domain', + path: '/v2/domains', + enumerate: 3 end describe 'SpaceDeveloper' do let(:member_a) { @space_b_developer } let(:enumeration_expectation_a) { [@obj_a, @obj_b, @shared_domain] } - it_behaves_like 'permission enumeration', 'SpaceDeveloper', - permissions_overlap: true, - name: 'domain', - path: '/v2/domains', - enumerate: 3 + include_examples 'permission enumeration', 'SpaceDeveloper', + permissions_overlap: true, + name: 'domain', + path: '/v2/domains', + enumerate: 3 end end end diff --git a/spec/unit/controllers/runtime/organizations_controller_spec.rb b/spec/unit/controllers/runtime/organizations_controller_spec.rb index b4a548d23b4..90314faf870 100644 --- a/spec/unit/controllers/runtime/organizations_controller_spec.rb +++ b/spec/unit/controllers/runtime/organizations_controller_spec.rb @@ -80,10 +80,10 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 it 'cannot update quota definition' do quota = QuotaDefinition.make @@ -111,30 +111,30 @@ module VCAP::CloudController let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + include_examples 'permission enumeration', 'OrgUser', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + include_examples 'permission enumeration', 'BillingManager', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'organization', - path: '/v2/organizations', - enumerate: 1 + include_examples 'permission enumeration', 'Auditor', + name: 'organization', + path: '/v2/organizations', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/route_mappings_controller_spec.rb b/spec/unit/controllers/runtime/route_mappings_controller_spec.rb index 9fc06b5fa66..2e596101485 100644 --- a/spec/unit/controllers/runtime/route_mappings_controller_spec.rb +++ b/spec/unit/controllers/runtime/route_mappings_controller_spec.rb @@ -31,40 +31,40 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 0 + include_examples 'permission enumeration', 'OrgUser', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 0 + include_examples 'permission enumeration', 'BillingManager', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 0 + include_examples 'permission enumeration', 'Auditor', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 0 end end @@ -73,30 +73,30 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'route_mapping', - path: '/v2/route_mappings', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'route_mapping', + path: '/v2/route_mappings', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/routes_controller_spec.rb b/spec/unit/controllers/runtime/routes_controller_spec.rb index 7bf6cca2a49..d47d8e654d8 100644 --- a/spec/unit/controllers/runtime/routes_controller_spec.rb +++ b/spec/unit/controllers/runtime/routes_controller_spec.rb @@ -76,40 +76,40 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'route', - path: '/v2/routes', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'route', + path: '/v2/routes', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'route', - path: '/v2/routes', - enumerate: 0 + include_examples 'permission enumeration', 'OrgUser', + name: 'route', + path: '/v2/routes', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'route', - path: '/v2/routes', - enumerate: 0 + include_examples 'permission enumeration', 'BillingManager', + name: 'route', + path: '/v2/routes', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'route', - path: '/v2/routes', - enumerate: 1 + include_examples 'permission enumeration', 'Auditor', + name: 'route', + path: '/v2/routes', + enumerate: 1 end end @@ -118,30 +118,30 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'route', - path: '/v2/routes', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'route', + path: '/v2/routes', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'route', - path: '/v2/routes', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'route', + path: '/v2/routes', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'route', - path: '/v2/routes', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'route', + path: '/v2/routes', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb b/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb index 31ffc3001e4..b2fc56eb8e5 100644 --- a/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb +++ b/spec/unit/controllers/runtime/space_quota_definitions_controller_spec.rb @@ -58,10 +58,10 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end describe 'OrgManager of both' do @@ -73,41 +73,41 @@ module VCAP::CloudController @org_b.add_manager(@org_a_manager) end - it_behaves_like 'permission enumeration', 'OrgManager', - permissions_overlap: true, - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 2 + include_examples 'permission enumeration', 'OrgManager', + permissions_overlap: true, + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 2 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 0 + include_examples 'permission enumeration', 'OrgUser', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 0 + include_examples 'permission enumeration', 'BillingManager', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 0 + include_examples 'permission enumeration', 'Auditor', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 0 end end @@ -116,30 +116,30 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'space_quota_definition', - path: '/v2/space_quota_definitions', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'space_quota_definition', + path: '/v2/space_quota_definitions', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/spaces_controller_spec.rb b/spec/unit/controllers/runtime/spaces_controller_spec.rb index 1964268a646..7d3a8e19260 100644 --- a/spec/unit/controllers/runtime/spaces_controller_spec.rb +++ b/spec/unit/controllers/runtime/spaces_controller_spec.rb @@ -74,40 +74,40 @@ def decoded_guids let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'space', - path: '/v2/spaces', - enumerate: 0 + include_examples 'permission enumeration', 'OrgUser', + name: 'space', + path: '/v2/spaces', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'space', - path: '/v2/spaces', - enumerate: 0 + include_examples 'permission enumeration', 'BillingManager', + name: 'space', + path: '/v2/spaces', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'space', - path: '/v2/spaces', - enumerate: 0 + include_examples 'permission enumeration', 'Auditor', + name: 'space', + path: '/v2/spaces', + enumerate: 0 end end @@ -116,30 +116,30 @@ def decoded_guids let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'space', - path: '/v2/spaces', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'space', + path: '/v2/spaces', + enumerate: 1 end end end diff --git a/spec/unit/controllers/runtime/stagings_controller_spec.rb b/spec/unit/controllers/runtime/stagings_controller_spec.rb index 09b227560fe..2be7d38dc8c 100644 --- a/spec/unit/controllers/runtime/stagings_controller_spec.rb +++ b/spec/unit/controllers/runtime/stagings_controller_spec.rb @@ -74,7 +74,7 @@ module VCAP::CloudController end RSpec.shared_examples 'droplet staging error handling' do - it_behaves_like 'check content digest' + include_examples 'check content digest' context 'with an invalid app' do it 'returns 404' do @@ -329,7 +329,7 @@ def create_test_blob expect(last_response.status).to eq(404) end - it_behaves_like 'staging bad auth', :get, 'packages' + include_examples 'staging bad auth', :get, 'packages' end describe 'POST /internal/v4/droplets/:guid/upload' do @@ -423,7 +423,7 @@ def create_test_blob expect(last_response.status).to eq 200 end - it_behaves_like 'check content digest' do + include_examples 'check content digest' do let(:url) { "/internal/v4/buildpack_cache/#{stack}/#{app_model.guid}/upload" } end end @@ -569,7 +569,7 @@ def upload_droplet expect(last_response.status).to eq(404) end - it_behaves_like 'staging bad auth', :get, 'droplets' + include_examples 'staging bad auth', :get, 'droplets' end end end diff --git a/spec/unit/controllers/runtime/users_controller_spec.rb b/spec/unit/controllers/runtime/users_controller_spec.rb index 91364fbcac3..4ac852a5654 100644 --- a/spec/unit/controllers/runtime/users_controller_spec.rb +++ b/spec/unit/controllers/runtime/users_controller_spec.rb @@ -80,22 +80,22 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @space_a_manager } - it_behaves_like 'permission enumeration', 'User', - name: 'user', - path: '/v2/users', - enumerate: :not_allowed + include_examples 'permission enumeration', 'User', + name: 'user', + path: '/v2/users', + enumerate: :not_allowed end context 'admin user' do let(:member_a) { User.make } let(:enumeration_expectation_a) { User.order(:id).limit(50) } - it_behaves_like 'permission enumeration', 'Admin', - name: 'user', - path: '/v2/users', - enumerate: proc { User.count }, - permissions_overlap: true, - user_opts: { admin: true } + include_examples 'permission enumeration', 'Admin', + name: 'user', + path: '/v2/users', + enumerate: proc { User.count }, + permissions_overlap: true, + user_opts: { admin: true } end end diff --git a/spec/unit/controllers/services/service_bindings_controller_spec.rb b/spec/unit/controllers/services/service_bindings_controller_spec.rb index 7695f2c9b88..be6b5c0f5b7 100644 --- a/spec/unit/controllers/services/service_bindings_controller_spec.rb +++ b/spec/unit/controllers/services/service_bindings_controller_spec.rb @@ -93,40 +93,40 @@ def bind_url_regex(opts={}) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + include_examples 'permission enumeration', 'OrgUser', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + include_examples 'permission enumeration', 'BillingManager', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + include_examples 'permission enumeration', 'Auditor', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end end @@ -135,40 +135,40 @@ def bind_url_regex(opts={}) let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 1 end describe 'Developer in service instance space' do let(:member_a) { make_developer_for_space(@service_instance_a.space) } let(:member_b) { make_developer_for_space(@service_instance_b.space) } - it_behaves_like 'permission enumeration', 'Developer in service instance space', - name: 'service binding', - path: '/v2/service_bindings', - enumerate: 0 + include_examples 'permission enumeration', 'Developer in service instance space', + name: 'service binding', + path: '/v2/service_bindings', + enumerate: 0 end end end diff --git a/spec/unit/controllers/services/service_instances_controller_spec.rb b/spec/unit/controllers/services/service_instances_controller_spec.rb index 5cb7209f42f..80a75f21d79 100644 --- a/spec/unit/controllers/services/service_instances_controller_spec.rb +++ b/spec/unit/controllers/services/service_instances_controller_spec.rb @@ -54,10 +54,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { instance_variable_get(member_a_ivar) } let(:member_b) { instance_variable_get(member_b_ivar) } - it_behaves_like 'permission enumeration', user_role, - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 0 + include_examples 'permission enumeration', user_role, + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 0 end end @@ -70,10 +70,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 end end @@ -218,10 +218,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 it 'prevents a developer from creating a service instance in an unauthorized space' do plan = ServicePlan.make(:v2) @@ -244,20 +244,20 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 end describe 'SpaceManager' do let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'managed service instance', - path: '/v2/service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'managed service instance', + path: '/v2/service_instances', + enumerate: 1 end end end diff --git a/spec/unit/controllers/services/service_keys_controller_spec.rb b/spec/unit/controllers/services/service_keys_controller_spec.rb index da41ab1d1f6..4f588fe252c 100644 --- a/spec/unit/controllers/services/service_keys_controller_spec.rb +++ b/spec/unit/controllers/services/service_keys_controller_spec.rb @@ -89,40 +89,40 @@ def bind_url_regex(opts={}) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + include_examples 'permission enumeration', 'OrgManager', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'permission enumeration', 'OrgUser', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + include_examples 'permission enumeration', 'OrgUser', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'permission enumeration', 'BillingManager', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + include_examples 'permission enumeration', 'BillingManager', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'permission enumeration', 'Auditor', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + include_examples 'permission enumeration', 'Auditor', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end end @@ -131,30 +131,30 @@ def bind_url_regex(opts={}) let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + include_examples 'permission enumeration', 'SpaceManager', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'getting service key', - path: '/v2/service_keys', - enumerate: 0 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'getting service key', + path: '/v2/service_keys', + enumerate: 0 end end end diff --git a/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb b/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb index c1d6c411a85..a3c6908e957 100644 --- a/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb +++ b/spec/unit/controllers/services/service_plan_visibilities_controller_spec.rb @@ -37,10 +37,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { instance_variable_get(member_a_ivar) } let(:member_b) { instance_variable_get(member_b_ivar) } - it_behaves_like 'permission enumeration', user_role, - name: 'service plan visibility', - path: '/v2/service_plan_visibilities', - enumerate: 0 + include_examples 'permission enumeration', user_role, + name: 'service plan visibility', + path: '/v2/service_plan_visibilities', + enumerate: 0 end end diff --git a/spec/unit/controllers/services/service_plans_controller_spec.rb b/spec/unit/controllers/services/service_plans_controller_spec.rb index 2ec8ff16ece..191136db7df 100644 --- a/spec/unit/controllers/services/service_plans_controller_spec.rb +++ b/spec/unit/controllers/services/service_plans_controller_spec.rb @@ -5,11 +5,11 @@ module VCAP::CloudController RSpec.describe ServicePlansController, :services do shared_examples 'enumerate and read plan only' do |perm_name| - it_behaves_like 'permission enumeration', perm_name, - name: 'service plan', - path: '/v2/service_plans', - permissions_overlap: true, - enumerate: 7 + include_examples 'permission enumeration', perm_name, + name: 'service plan', + path: '/v2/service_plans', + permissions_overlap: true, + enumerate: 7 end let(:developer) { make_developer_for_space(Space.make) } @@ -70,28 +70,28 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'enumerate and read plan only', 'OrgManager' + include_examples 'enumerate and read plan only', 'OrgManager' end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'enumerate and read plan only', 'OrgUser' + include_examples 'enumerate and read plan only', 'OrgUser' end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'enumerate and read plan only', 'BillingManager' + include_examples 'enumerate and read plan only', 'BillingManager' end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'enumerate and read plan only', 'Auditor' + include_examples 'enumerate and read plan only', 'Auditor' end end @@ -100,21 +100,21 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'enumerate and read plan only', 'SpaceManager' + include_examples 'enumerate and read plan only', 'SpaceManager' end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'enumerate and read plan only', 'Developer' + include_examples 'enumerate and read plan only', 'Developer' end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'enumerate and read plan only', 'SpaceAuditor' + include_examples 'enumerate and read plan only', 'SpaceAuditor' end end end diff --git a/spec/unit/controllers/services/services_controller_spec.rb b/spec/unit/controllers/services/services_controller_spec.rb index 60b31424886..dc1fbb736e6 100644 --- a/spec/unit/controllers/services/services_controller_spec.rb +++ b/spec/unit/controllers/services/services_controller_spec.rb @@ -5,11 +5,11 @@ module VCAP::CloudController RSpec.describe ServicesController, :services do shared_examples 'enumerate and read service only' do |perm_name| - it_behaves_like 'permission enumeration', perm_name, - name: 'service', - path: '/v2/services', - permissions_overlap: true, - enumerate: 7 + include_examples 'permission enumeration', perm_name, + name: 'service', + path: '/v2/services', + permissions_overlap: true, + enumerate: 7 end describe 'Query Parameters' do @@ -54,28 +54,28 @@ module VCAP::CloudController let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'enumerate and read service only', 'OrgManager' + include_examples 'enumerate and read service only', 'OrgManager' end describe 'OrgUser' do let(:member_a) { @org_a_member } let(:member_b) { @org_b_member } - it_behaves_like 'enumerate and read service only', 'OrgUser' + include_examples 'enumerate and read service only', 'OrgUser' end describe 'BillingManager' do let(:member_a) { @org_a_billing_manager } let(:member_b) { @org_b_billing_manager } - it_behaves_like 'enumerate and read service only', 'BillingManager' + include_examples 'enumerate and read service only', 'BillingManager' end describe 'Auditor' do let(:member_a) { @org_a_auditor } let(:member_b) { @org_b_auditor } - it_behaves_like 'enumerate and read service only', 'Auditor' + include_examples 'enumerate and read service only', 'Auditor' end end @@ -84,21 +84,21 @@ module VCAP::CloudController let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'enumerate and read service only', 'SpaceManager' + include_examples 'enumerate and read service only', 'SpaceManager' end describe 'Developer' do let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'enumerate and read service only', 'Developer' + include_examples 'enumerate and read service only', 'Developer' end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'enumerate and read service only', 'SpaceAuditor' + include_examples 'enumerate and read service only', 'SpaceAuditor' end end end diff --git a/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb b/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb index a429547bf39..c131a173574 100644 --- a/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb +++ b/spec/unit/controllers/services/user_provided_service_instances_controller_spec.rb @@ -51,10 +51,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { instance_variable_get(member_a_ivar) } let(:member_b) { instance_variable_get(member_b_ivar) } - it_behaves_like 'permission enumeration', user_role, - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 0 + include_examples 'permission enumeration', user_role, + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 0 end end @@ -67,10 +67,10 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @org_a_manager } let(:member_b) { @org_b_manager } - it_behaves_like 'permission enumeration', 'OrgManager', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'OrgManager', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end end @@ -79,30 +79,30 @@ def self.user_sees_empty_enumerate(user_role, member_a_ivar, member_b_ivar) let(:member_a) { @space_a_developer } let(:member_b) { @space_b_developer } - it_behaves_like 'permission enumeration', 'Developer', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'Developer', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end describe 'SpaceAuditor' do let(:member_a) { @space_a_auditor } let(:member_b) { @space_b_auditor } - it_behaves_like 'permission enumeration', 'SpaceAuditor', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceAuditor', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end describe 'SpaceManager' do let(:member_a) { @space_a_manager } let(:member_b) { @space_b_manager } - it_behaves_like 'permission enumeration', 'SpaceManager', - name: 'user provided service instance', - path: '/v2/user_provided_service_instances', - enumerate: 1 + include_examples 'permission enumeration', 'SpaceManager', + name: 'user provided service instance', + path: '/v2/user_provided_service_instances', + enumerate: 1 end end end diff --git a/spec/unit/controllers/v3/packages_controller_spec.rb b/spec/unit/controllers/v3/packages_controller_spec.rb index 6edbe75b354..4f627ea83a8 100644 --- a/spec/unit/controllers/v3/packages_controller_spec.rb +++ b/spec/unit/controllers/v3/packages_controller_spec.rb @@ -90,7 +90,7 @@ } end - it_behaves_like 'uploading successfully' + include_examples 'uploading successfully' end context 'v3 resource format' do @@ -100,7 +100,7 @@ } end - it_behaves_like 'uploading successfully' + include_examples 'uploading successfully' end end end diff --git a/spec/unit/fetchers/security_group_list_fetcher_spec.rb b/spec/unit/fetchers/security_group_list_fetcher_spec.rb index 0d339677062..26b9593fc41 100644 --- a/spec/unit/fetchers/security_group_list_fetcher_spec.rb +++ b/spec/unit/fetchers/security_group_list_fetcher_spec.rb @@ -33,7 +33,7 @@ module VCAP::CloudController describe '#fetch_all' do let(:security_groups) { fetcher.fetch_all(message) } - it_behaves_like 'eager loading' + include_examples 'eager loading' it 'includes all the security_groups' do expect(security_groups.all).to include(security_group_1, security_group_2, security_group_3) @@ -44,7 +44,7 @@ module VCAP::CloudController let(:visible_security_groups) { [security_group_1.guid, security_group_2.guid] } let(:security_groups) { fetcher.fetch(message, visible_security_groups) } - it_behaves_like 'eager loading' + include_examples 'eager loading' context 'when no filters are specified' do it 'returns all of the security groups' do diff --git a/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb b/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb index 349712df92c..481eaca0171 100644 --- a/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb +++ b/spec/unit/jobs/runtime/buildpack_installer_factory_spec.rb @@ -36,7 +36,7 @@ module Jobs::Runtime context 'and there is a detected stack in the zipfile' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'detected stack' }] } - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'plans to create the record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) @@ -48,7 +48,7 @@ module Jobs::Runtime end context 'and there is not a detected stack in the zipfile' do - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'plans to create the record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) @@ -68,7 +68,7 @@ module Jobs::Runtime context 'and the buildpack zip has the same stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: existing_stack.name }] } - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'sets the stack to the matching stack' do expect(single_buildpack_job.stack_name).to eq(existing_stack.name) @@ -86,7 +86,7 @@ module Jobs::Runtime context 'and the buildpack zip has a different stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'manifest stack' }] } - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'plans on creating a new record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) @@ -114,7 +114,7 @@ module Jobs::Runtime context 'and the buildpack zip also has a nil stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: nil }] } - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'plans to update' do expect(single_buildpack_job).to be_a(UpdateBuildpackInstaller) @@ -132,7 +132,7 @@ module Jobs::Runtime context 'but the buildpack zip /has/ a stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'manifest stack' }] } - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'plans on updating it' do expect(single_buildpack_job).to be_a(UpdateBuildpackInstaller) @@ -159,7 +159,7 @@ module Jobs::Runtime context 'and one matches the manifest stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: existing_stack.name }] } - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'sets the stack to the matching stack' do expect(single_buildpack_job.stack_name).to eq(existing_stack.name) @@ -187,7 +187,7 @@ module Jobs::Runtime context 'and none match the manifest stack' do let(:buildpack_fields) { [{ file: file, options: opts, stack: 'manifest stack' }] } - it_behaves_like 'passthrough parameters' + include_examples 'passthrough parameters' it 'plans on creating a new record' do expect(single_buildpack_job).to be_a(CreateBuildpackInstaller) diff --git a/spec/unit/jobs/services/service_binding_state_fetch_spec.rb b/spec/unit/jobs/services/service_binding_state_fetch_spec.rb index 7a74474db87..6652ab80e8e 100644 --- a/spec/unit/jobs/services/service_binding_state_fetch_spec.rb +++ b/spec/unit/jobs/services/service_binding_state_fetch_spec.rb @@ -423,7 +423,7 @@ def run_job(job) end end - it_behaves_like 'when exponential backoff is not set to default' + include_examples 'when exponential backoff is not set to default' end context 'when the last_operation state is failed' do @@ -789,7 +789,7 @@ def run_job(job) end end - it_behaves_like 'when brokers return Retry-After header', :fetch_service_binding_last_operation + include_examples 'when brokers return Retry-After header', :fetch_service_binding_last_operation end describe '#display_name' do diff --git a/spec/unit/jobs/services/service_instance_state_fetch_spec.rb b/spec/unit/jobs/services/service_instance_state_fetch_spec.rb index 88a34605cb6..18d11aba276 100644 --- a/spec/unit/jobs/services/service_instance_state_fetch_spec.rb +++ b/spec/unit/jobs/services/service_instance_state_fetch_spec.rb @@ -376,7 +376,7 @@ def run_job(job) expect(Event.find(type: 'audit.service_instance.create')).to be_nil end - it_behaves_like 'when exponential backoff is not set to default' + include_examples 'when exponential backoff is not set to default' context 'when the last_operation is replaced with delete in progress' do let(:polling_interval) { 60 } @@ -575,7 +575,7 @@ def run_job(job) end end - it_behaves_like 'when brokers return Retry-After header', :fetch_service_instance_last_operation + include_examples 'when brokers return Retry-After header', :fetch_service_instance_last_operation end describe '#job_name_in_configuration' do diff --git a/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb b/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb index d719e2abecc..734df1aacb1 100644 --- a/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb +++ b/spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb @@ -948,8 +948,8 @@ module Diego end end - it_behaves_like 'k8s service bindings' - it_behaves_like 'file-based VCAP service bindings' + include_examples 'k8s service bindings' + include_examples 'file-based VCAP service bindings' end context 'when the lifecycle_type is "cnb"' do @@ -1042,8 +1042,8 @@ module Diego end end - it_behaves_like 'k8s service bindings' - it_behaves_like 'file-based VCAP service bindings' + include_examples 'k8s service bindings' + include_examples 'file-based VCAP service bindings' end context 'when the lifecycle_type is "docker"' do @@ -1388,8 +1388,8 @@ module Diego end end - it_behaves_like 'k8s service bindings' - it_behaves_like 'file-based VCAP service bindings' + include_examples 'k8s service bindings' + include_examples 'file-based VCAP service bindings' end end diff --git a/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb b/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb index 2812f5e1bcf..fe716bd526f 100644 --- a/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb +++ b/spec/unit/lib/cloud_controller/diego/service_binding_files_builder_spec.rb @@ -118,32 +118,32 @@ module VCAP::CloudController::Diego expect(service_binding_files).to all(have_attributes(path: match(%r{^binding-name/.+$}))) end - it_behaves_like 'mapping of type and provider' - it_behaves_like 'mapping of binding metadata' - it_behaves_like 'mapping of instance metadata' - it_behaves_like 'mapping of plan metadata' - it_behaves_like 'mapping of tags' - it_behaves_like 'mapping of credentials' + include_examples 'mapping of type and provider' + include_examples 'mapping of binding metadata' + include_examples 'mapping of instance metadata' + include_examples 'mapping of plan metadata' + include_examples 'mapping of tags' + include_examples 'mapping of credentials' it 'omits null or empty array attributes' do expect(service_binding_files).not_to include(have_attributes(path: 'binding-name/syslog_drain_url')) expect(service_binding_files).not_to include(have_attributes(path: 'binding-name/volume_mounts')) end - it_behaves_like 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash] + include_examples 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash] context 'when binding_name is nil' do let(:binding_name) { nil } let(:directory) { 'instance-name' } - it_behaves_like 'mapping of type and provider' - it_behaves_like 'mapping of binding metadata', 'instance-name' - it_behaves_like 'mapping of instance metadata' - it_behaves_like 'mapping of plan metadata' - it_behaves_like 'mapping of tags' - it_behaves_like 'mapping of credentials' + include_examples 'mapping of type and provider' + include_examples 'mapping of binding metadata', 'instance-name' + include_examples 'mapping of instance metadata' + include_examples 'mapping of plan metadata' + include_examples 'mapping of tags' + include_examples 'mapping of credentials' - it_behaves_like 'expected files', %w[type provider label binding-guid name instance-guid instance-name plan tags string number boolean array hash] + include_examples 'expected files', %w[type provider label binding-guid name instance-guid instance-name plan tags string number boolean array hash] end context 'when syslog_drain_url is set' do @@ -153,15 +153,15 @@ module VCAP::CloudController::Diego expect(service_binding_files.find { |f| f.path == 'binding-name/syslog-drain-url' }).to have_attributes(content: 'https://syslog.drain') end - it_behaves_like 'mapping of type and provider' - it_behaves_like 'mapping of binding metadata' - it_behaves_like 'mapping of instance metadata' - it_behaves_like 'mapping of plan metadata' - it_behaves_like 'mapping of tags' - it_behaves_like 'mapping of credentials' + include_examples 'mapping of type and provider' + include_examples 'mapping of binding metadata' + include_examples 'mapping of instance metadata' + include_examples 'mapping of plan metadata' + include_examples 'mapping of tags' + include_examples 'mapping of credentials' - it_behaves_like 'expected files', - %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash syslog-drain-url] + include_examples 'expected files', + %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash syslog-drain-url] end context 'when volume_mounts is set' do @@ -185,40 +185,40 @@ module VCAP::CloudController::Diego end).to have_attributes(content: '[{"container_dir":"dir1","device_type":"type1","mode":"mode1"},{"container_dir":"dir2","device_type":"type2","mode":"mode2"}]') end - it_behaves_like 'mapping of type and provider' - it_behaves_like 'mapping of binding metadata' - it_behaves_like 'mapping of instance metadata' - it_behaves_like 'mapping of plan metadata' - it_behaves_like 'mapping of tags' - it_behaves_like 'mapping of credentials' + include_examples 'mapping of type and provider' + include_examples 'mapping of binding metadata' + include_examples 'mapping of instance metadata' + include_examples 'mapping of plan metadata' + include_examples 'mapping of tags' + include_examples 'mapping of credentials' - it_behaves_like 'expected files', - %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash volume-mounts] + include_examples 'expected files', + %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags string number boolean array hash volume-mounts] end context 'when the instance is user-provided' do let(:instance) { VCAP::CloudController::UserProvidedServiceInstance.make(name: 'upsi', tags: %w[an-upsi-tag another-upsi-tag]) } - it_behaves_like 'mapping of type and provider', 'user-provided' - it_behaves_like 'mapping of binding metadata' - it_behaves_like 'mapping of instance metadata', 'upsi' - it_behaves_like 'mapping of tags', '["an-upsi-tag","another-upsi-tag"]' - it_behaves_like 'mapping of credentials' + include_examples 'mapping of type and provider', 'user-provided' + include_examples 'mapping of binding metadata' + include_examples 'mapping of instance metadata', 'upsi' + include_examples 'mapping of tags', '["an-upsi-tag","another-upsi-tag"]' + include_examples 'mapping of credentials' - it_behaves_like 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name tags string number boolean array hash] + include_examples 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name tags string number boolean array hash] end context 'when there are duplicate keys at different levels' do let(:credentials) { { type: 'duplicate-type', name: 'duplicate-name', credentials: { password: 'secret' } } } - it_behaves_like 'mapping of type and provider' # no 'duplicate-type' - it_behaves_like 'mapping of binding metadata' # no 'duplicate-name' - it_behaves_like 'mapping of instance metadata' - it_behaves_like 'mapping of plan metadata' - it_behaves_like 'mapping of tags' - it_behaves_like 'mapping of credentials', { credentials: '{"password":"secret"}' } + include_examples 'mapping of type and provider' # no 'duplicate-type' + include_examples 'mapping of binding metadata' # no 'duplicate-name' + include_examples 'mapping of instance metadata' + include_examples 'mapping of plan metadata' + include_examples 'mapping of tags' + include_examples 'mapping of credentials', { credentials: '{"password":"secret"}' } - it_behaves_like 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags credentials] + include_examples 'expected files', %w[type provider label binding-guid name binding-name instance-guid instance-name plan tags credentials] end context 'when there are duplicate binding names' do diff --git a/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb b/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb index 923b8cf74b9..cb1b6bcfd16 100644 --- a/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb +++ b/spec/unit/lib/services/service_brokers/v2/http_client_spec.rb @@ -456,7 +456,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - it_behaves_like 'broker communication errors' do + include_examples 'broker communication errors' do let(:request) { client.get(path) } end end @@ -527,7 +527,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - it_behaves_like 'broker communication errors' do + include_examples 'broker communication errors' do let(:request) { client.put(path, message) } end end @@ -604,7 +604,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - it_behaves_like 'broker communication errors' do + include_examples 'broker communication errors' do let(:request) { client.patch(path, message) } end end @@ -674,7 +674,7 @@ def expect_timeout_to_be(timeout) end describe 'handling errors' do - it_behaves_like 'broker communication errors' do + include_examples 'broker communication errors' do let(:full_url) { "http://broker.example.com#{path}?#{message.to_query}" } let(:request) { client.delete(path, message) } end diff --git a/spec/unit/lib/sinatra/vcap_spec.rb b/spec/unit/lib/sinatra/vcap_spec.rb index 2ee034746a8..4f5bfe49a51 100644 --- a/spec/unit/lib/sinatra/vcap_spec.rb +++ b/spec/unit/lib/sinatra/vcap_spec.rb @@ -75,7 +75,7 @@ def app expect(last_response.body).to eq('ok') end - it_behaves_like 'http header content type' + include_examples 'http header content type' end describe 'accessing an invalid route' do @@ -90,7 +90,7 @@ def app expect(decoded_response['description']).to match(/Unknown request/) end - it_behaves_like 'http header content type' + include_examples 'http header content type' end describe 'accessing a route that throws a low level exception' do @@ -108,7 +108,7 @@ def app }) end - it_behaves_like 'http header content type' + include_examples 'http header content type' end describe 'accessing a route that throws a vcap error' do diff --git a/spec/unit/lib/vcap/rest_api/attribute_spec.rb b/spec/unit/lib/vcap/rest_api/attribute_spec.rb index f52a4c192ef..8dccd834262 100644 --- a/spec/unit/lib/vcap/rest_api/attribute_spec.rb +++ b/spec/unit/lib/vcap/rest_api/attribute_spec.rb @@ -49,8 +49,8 @@ module VCAP::CloudController end end - it_behaves_like 'operation list', :exclude_in, :exclude_in?, 'excluded' - it_behaves_like 'operation list', :optional_in, :optional_in?, 'optional' - it_behaves_like 'operation list', :redact_in, :redact_in?, 'redacted' + include_examples 'operation list', :exclude_in, :exclude_in?, 'excluded' + include_examples 'operation list', :optional_in, :optional_in?, 'optional' + include_examples 'operation list', :redact_in, :redact_in?, 'redacted' end end diff --git a/spec/unit/models/runtime/private_domain_spec.rb b/spec/unit/models/runtime/private_domain_spec.rb index bcbd5b94c01..cc6e69921a7 100644 --- a/spec/unit/models/runtime/private_domain_spec.rb +++ b/spec/unit/models/runtime/private_domain_spec.rb @@ -29,7 +29,7 @@ module VCAP::CloudController describe 'domain' do subject { private_domain } - it_behaves_like 'domain validation' + include_examples 'domain validation' end it 'denies private uaa.customer-app-domain1.com when customer-app-domain1.com is the system domain' do diff --git a/spec/unit/models/runtime/shared_domain_spec.rb b/spec/unit/models/runtime/shared_domain_spec.rb index db44bda7887..6b587cfb922 100644 --- a/spec/unit/models/runtime/shared_domain_spec.rb +++ b/spec/unit/models/runtime/shared_domain_spec.rb @@ -26,7 +26,7 @@ module VCAP::CloudController end describe '#validate' do - it_behaves_like 'domain validation' + include_examples 'domain validation' context 'when the name is foo.com and bar.foo.com is a shared domain' do before do diff --git a/spec/unit/models/runtime/space_spec.rb b/spec/unit/models/runtime/space_spec.rb index 08bc2b63fd9..0e21c1aad34 100644 --- a/spec/unit/models/runtime/space_spec.rb +++ b/spec/unit/models/runtime/space_spec.rb @@ -388,7 +388,7 @@ module VCAP::CloudController end %w[developer manager auditor supporter].each do |perm| - it_behaves_like 'bad app space permission', perm + include_examples 'bad app space permission', perm end end diff --git a/spec/unit/presenters/system_environment/system_env_presenter_spec.rb b/spec/unit/presenters/system_environment/system_env_presenter_spec.rb index 5d79fdba480..7b734293a8e 100644 --- a/spec/unit/presenters/system_environment/system_env_presenter_spec.rb +++ b/spec/unit/presenters/system_environment/system_env_presenter_spec.rb @@ -44,8 +44,8 @@ module VCAP::CloudController expect(system_env_presenter.system_env[:VCAP_SERVICES]).to eq({}) end - it_behaves_like 'k8s service bindings' - it_behaves_like 'file-based VCAP service bindings' + include_examples 'k8s service bindings' + include_examples 'file-based VCAP service bindings' end context 'when there are services' do @@ -190,8 +190,8 @@ module VCAP::CloudController end end - it_behaves_like 'k8s service bindings' - it_behaves_like 'file-based VCAP service bindings' + include_examples 'k8s service bindings' + include_examples 'file-based VCAP service bindings' end end end