diff --git a/.rubocop.yml b/.rubocop.yml index 789defe7..7eaccd29 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,6 +4,7 @@ require: - rubocop-rails - rubocop-rspec - rubocop-performance + - rubocop-factory_bot AllCops: TargetRubyVersion: 3.2 diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6bd216b8..323176ca 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,13 +1,52 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2024-12-24 15:33:39 UTC using RuboCop version 1.28.2. +# on 2024-12-24 18:14:07 UTC using RuboCop version 1.69.2. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include. +# Include: **/*.gemfile, **/Gemfile, **/gems.rb +Bundler/OrderedGems: + Exclude: + - 'Gemfile' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +Layout/EmptyLineAfterMagicComment: + Exclude: + - 'config/initializers/application_controller_renderer.rb' + - 'config/initializers/backtrace_silencers.rb' + - 'config/initializers/content_security_policy.rb' + - 'config/initializers/mime_types.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleAlignWith, Severity. +# SupportedStylesAlignWith: keyword, variable, start_of_line +Layout/EndAlignment: + Exclude: + - 'app/services/random_request_generator.rb' + +# Offense count: 105 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: space, no_space +Layout/LineContinuationSpacing: + Exclude: + - 'app/controllers/users/omniauth_callbacks_controller.rb' + - 'spec/change_sets/absence_request_change_set_spec.rb' + - 'spec/decorators/estimate_decorator_spec.rb' + - 'spec/mailers/approve_request_mailer_spec.rb' + - 'spec/mailers/cancel_mailer_spec.rb' + - 'spec/services/staff_report_processor_spec.rb' + # Offense count: 16 -# Configuration parameters: IgnoredMethods. +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowedMethods, AllowedPatterns. Lint/AmbiguousBlockAssociation: Exclude: - 'spec/mailers/approve_request_mailer_spec.rb' @@ -39,8 +78,22 @@ Lint/MissingCopEnableDirective: - 'app/controllers/common_request_controller.rb' - 'spec/controllers/travel_requests_controller_spec.rb' +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). +Lint/NonAtomicFileOperation: + Exclude: + - 'spec/services/request_report_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: strict, consistent +Lint/SymbolConversion: + Exclude: + - 'app/change_sets/absence_request_change_set.rb' + # Offense count: 17 -# Configuration parameters: IgnoredMethods, CountRepeatedAttributes. +# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes. Metrics/AbcSize: Max: 27 @@ -50,14 +103,14 @@ Metrics/ClassLength: Max: 153 # Offense count: 20 -# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods. +# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns. Metrics/MethodLength: Max: 15 # Offense count: 14 -# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers. +# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns. # SupportedStyles: snake_case, normalcase, non_integer -# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339 +# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64 Naming/VariableNumber: Exclude: - 'spec/features/new_travel_request_spec.rb' @@ -65,11 +118,17 @@ Naming/VariableNumber: - 'spec/services/event_attendees_spec.rb' # Offense count: 1 -# This cop supports unsafe auto-correction (--auto-correct-all). +# This cop supports unsafe autocorrection (--autocorrect-all). Performance/InefficientHashSearch: Exclude: - 'app/models/staff_profile.rb' +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +Performance/StringIdentifierArgument: + Exclude: + - 'app/controllers/common_request_controller.rb' + # Offense count: 1 RSpec/AnyInstance: Exclude: @@ -81,14 +140,24 @@ RSpec/Be: - 'spec/models/travel_request_spec.rb' # Offense count: 3 -# This cop supports safe auto-correction (--auto-correct). +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: NegatedMatcher. RSpec/ChangeByZero: Exclude: - 'spec/controllers/travel_requests_controller_spec.rb' - 'spec/services/staff_report_processor_spec.rb' +# Offense count: 21 +# This cop supports safe autocorrection (--autocorrect). +RSpec/ContainExactly: + Exclude: + - 'spec/controllers/requests_controller_spec.rb' + - 'spec/services/approval_requests_list_spec.rb' + - 'spec/services/report_requests_list_spec.rb' + - 'spec/services/requests_list_spec.rb' + # Offense count: 108 -# Configuration parameters: Prefixes. +# Configuration parameters: Prefixes, AllowedPatterns. # Prefixes: when, with, without RSpec/ContextWording: Enabled: false @@ -99,31 +168,26 @@ RSpec/ExampleLength: Max: 100 # Offense count: 2 -# This cop supports safe auto-correction (--auto-correct). +# This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: method_call, block RSpec/ExpectChange: Exclude: - 'spec/models/delegate_spec.rb' -# Offense count: 709 -# This cop supports safe auto-correction (--auto-correct). -RSpec/FactoryBot/SyntaxMethods: - Enabled: false - -# Offense count: 8 -# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly. -# Include: **/*_spec*rb*, **/spec/**/* -RSpec/FilePath: +# Offense count: 31 +# Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns. +RSpec/IndexedLet: Exclude: - - 'spec/controllers/omniauth_callbacks_controller_spec.rb' - - 'spec/mailers/approve_request_mailer_spec.rb' - - 'spec/mailers/create_request_spec.rb' - - 'spec/mailers/deny_request_mailer_spec.rb' - - 'spec/requests/travel_requests_spec.rb' + - 'spec/controllers/requests_controller_spec.rb' + - 'spec/features/new_travel_request_spec.rb' + - 'spec/services/absent_staff_spec.rb' - 'spec/services/approval_requests_list_spec.rb' + - 'spec/services/event_attendees_spec.rb' - 'spec/services/report_requests_list_spec.rb' - 'spec/services/requests_list_spec.rb' + - 'spec/views/delegates/index.html.erb_spec.rb' + - 'spec/views/delegates/to_assume.html.erb_spec.rb' # Offense count: 2 # Configuration parameters: AssignmentOnly. @@ -136,6 +200,21 @@ RSpec/LeakyConstantDeclaration: Exclude: - 'spec/services/staff_report_processor_spec.rb' +# Offense count: 8 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: hash, symbol +RSpec/MetadataStyle: + Exclude: + - 'spec/features/decide_travel_request_spec.rb' + - 'spec/features/delegate_spec.rb' + - 'spec/features/my_approval_requests_spec.rb' + - 'spec/features/my_requests_spec.rb' + - 'spec/features/new_absence_request_spec.rb' + - 'spec/features/new_travel_request_spec.rb' + - 'spec/features/report_spec.rb' + - 'spec/views/travel_requests/_review_detail.html.erb_spec.rb' + # Offense count: 237 RSpec/MultipleExpectations: Max: 21 @@ -146,11 +225,25 @@ RSpec/MultipleMemoizedHelpers: Max: 19 # Offense count: 11 +# Configuration parameters: AllowedGroups. RSpec/NestedGroups: Max: 5 +# Offense count: 1 +# Configuration parameters: AllowedPatterns. +# AllowedPatterns: ^expect_, ^assert_ +RSpec/NoExpectationExample: + Exclude: + - 'spec/features/new_travel_request_spec.rb' + +# Offense count: 3 +RSpec/PendingWithoutReason: + Exclude: + - 'spec/features/my_requests_spec.rb' + - 'spec/features/report_spec.rb' + # Offense count: 23 -# This cop supports safe auto-correction (--auto-correct). +# This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers. # SupportedStyles: inflected, explicit RSpec/PredicateMatcher: @@ -161,11 +254,44 @@ RSpec/PredicateMatcher: - 'spec/services/balance_report_processor_spec.rb' # Offense count: 4 -# This cop supports unsafe auto-correction (--auto-correct-all). +# This cop supports unsafe autocorrection (--autocorrect-all). +RSpec/ReceiveMessages: + Exclude: + - 'spec/controllers/application_controller_spec.rb' + +# Offense count: 8 +# This cop supports safe autocorrection (--autocorrect). +RSpec/SortMetadata: + Exclude: + - 'spec/features/decide_travel_request_spec.rb' + - 'spec/features/delegate_spec.rb' + - 'spec/features/my_approval_requests_spec.rb' + - 'spec/features/my_requests_spec.rb' + - 'spec/features/new_absence_request_spec.rb' + - 'spec/features/new_travel_request_spec.rb' + - 'spec/features/report_spec.rb' + - 'spec/views/travel_requests/_review_detail.html.erb_spec.rb' + +# Offense count: 8 +# Configuration parameters: Include, CustomTransform, IgnoreMethods, IgnoreMetadata. +# Include: **/*_spec.rb +RSpec/SpecFilePathFormat: + Exclude: + - 'spec/controllers/omniauth_callbacks_controller_spec.rb' + - 'spec/mailers/approve_request_mailer_spec.rb' + - 'spec/mailers/create_request_spec.rb' + - 'spec/mailers/deny_request_mailer_spec.rb' + - 'spec/requests/travel_requests_spec.rb' + - 'spec/services/approval_requests_list_spec.rb' + - 'spec/services/report_requests_list_spec.rb' + - 'spec/services/requests_list_spec.rb' + +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Whitelist, AllowedMethods, AllowedReceivers. -# Whitelist: find_by_sql -# AllowedMethods: find_by_sql -# AllowedReceivers: Gem::Specification +# Whitelist: find_by_sql, find_by_token_for +# AllowedMethods: find_by_sql, find_by_token_for +# AllowedReceivers: Gem::Specification, page Rails/DynamicFindBy: Exclude: - 'app/decorators/report_list_decorator.rb' @@ -173,7 +299,24 @@ Rails/DynamicFindBy: - 'app/services/staff_report_processor.rb' - 'spec/services/ldap_spec.rb' -# Offense count: 7 +# Offense count: 5 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: Severity, Include. +# Include: app/models/**/*.rb +Rails/EnumSyntax: + Exclude: + - 'app/models/estimate.rb' + - 'app/models/request.rb' + - 'app/models/state_change.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +Rails/EnvLocal: + Exclude: + - 'config/lando_env.rb' + +# Offense count: 8 +# This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle. # SupportedStyles: slashes, arguments Rails/FilePath: @@ -185,6 +328,16 @@ Rails/FilePath: - 'spec/rails_helper.rb' - 'spec/services/request_report_spec.rb' +# Offense count: 5 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: AllowedMethods, AllowedPatterns. +# AllowedMethods: order, limit, select, lock +Rails/FindEach: + Exclude: + - 'app/services/staff_report_processor.rb' + - 'lib/tasks/approvals.rake' + - 'spec/decorators/report_list_decorator_spec.rb' + # Offense count: 3 # Configuration parameters: Include. # Include: app/models/**/*.rb @@ -201,47 +354,69 @@ Rails/LexicallyScopedActionFilter: - 'app/controllers/absence_requests_controller.rb' - 'app/controllers/travel_requests_controller.rb' +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Include. +# Include: spec/controllers/**/*.rb, spec/requests/**/*.rb, test/controllers/**/*.rb, test/integration/**/*.rb +Rails/ResponseParsedBody: + Exclude: + - 'spec/controllers/absence_requests_controller_spec.rb' + # Offense count: 2 -# This cop supports unsafe auto-correction (--auto-correct-all). +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowOnlyRestArgument, UseAnonymousForwarding, RedundantRestArgumentNames, RedundantKeywordRestArgumentNames, RedundantBlockArgumentNames. +# RedundantRestArgumentNames: args, arguments +# RedundantKeywordRestArgumentNames: kwargs, options, opts +# RedundantBlockArgumentNames: blk, block, proc +Style/ArgumentsForwarding: + Exclude: + - 'app/models/staff_profile.rb' + +# Offense count: 2 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: MinBranchesCount. Style/CaseLikeIf: Exclude: - 'app/decorators/report_list_decorator.rb' - 'spec/factories/fire_event_safely.rb' # Offense count: 1 -# This cop supports safe auto-correction (--auto-correct). +# This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: nested, compact Style/ClassAndModuleChildren: Exclude: - 'app/controllers/users/omniauth_callbacks_controller.rb' -# Offense count: 50 +# Offense count: 56 # Configuration parameters: AllowedConstants. Style/Documentation: Enabled: false # Offense count: 2 -# Configuration parameters: MaxUnannotatedPlaceholdersAllowed, IgnoredMethods. +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns. # SupportedStyles: annotated, template, unannotated +# AllowedMethods: redirect Style/FormatStringToken: EnforcedStyle: unannotated # Offense count: 2 -# This cop supports safe auto-correction (--auto-correct). +# This cop supports unsafe autocorrection (--autocorrect-all). Style/GlobalStdStream: Exclude: - 'config/environments/production.rb' - 'config/environments/staging.rb' # Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). # Configuration parameters: MinBodyLength, AllowConsecutiveConditionals. Style/GuardClause: Exclude: - 'app/mailers/create_mailer.rb' # Offense count: 4 -# This cop supports safe auto-correction (--auto-correct). +# This cop supports safe autocorrection (--autocorrect). Style/IfUnlessModifier: Exclude: - 'app/controllers/application_controller.rb' @@ -250,30 +425,81 @@ Style/IfUnlessModifier: - 'config/deploy.rb' # Offense count: 7 -# This cop supports unsafe auto-correction (--auto-correct-all). +# This cop supports unsafe autocorrection (--autocorrect-all). Style/MapToHash: Exclude: - 'app/decorators/report_list_decorator.rb' - 'app/decorators/request_list_decorator.rb' +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantConstantBase: + Exclude: + - 'config/environments/production.rb' + - 'config/environments/staging.rb' + - 'spec/rails_helper.rb' + - 'spec/support/capybara_selenium.rb' + # Offense count: 3 -# This cop supports unsafe auto-correction (--auto-correct-all). +# This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: SafeForConstants. Style/RedundantFetchBlock: Exclude: - 'config/puma.rb' +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantRegexpArgument: + Exclude: + - 'app/models/staff_profile.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantStringEscape: + Exclude: + - 'spec/controllers/absence_requests_controller_spec.rb' + # Offense count: 2 -# This cop supports unsafe auto-correction (--auto-correct-all). +# This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Mode. Style/StringConcatenation: Exclude: - 'app/change_sets/absence_request_change_set.rb' - 'app/decorators/request_decorator.rb' +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiterals: + Exclude: + - 'Gemfile' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +Style/SuperArguments: + Exclude: + - 'app/change_sets/event_request_change_set.rb' + - 'app/decorators/absence_request_decorator.rb' + - 'app/decorators/travel_request_decorator.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +Style/SuperWithArgsParentheses: + Exclude: + - 'app/change_sets/event_request_change_set.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +Style/YAMLFileRead: + Exclude: + - 'app/services/holidays.rb' + - 'app/services/location_loader.rb' + - 'app/services/recurring_event_loader.rb' + # Offense count: 303 -# This cop supports safe auto-correction (--auto-correct). -# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns. +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings. # URISchemes: http, https Layout/LineLength: Max: 200 diff --git a/Gemfile b/Gemfile index d1fe34ee..81f78cc9 100644 --- a/Gemfile +++ b/Gemfile @@ -52,6 +52,7 @@ group :development, :test do gem "rubocop-performance", require: false gem "rubocop-rails", require: false gem "rubocop-rspec", require: false + gem 'rubocop-factory_bot', require: false end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index d9a870e3..f40022c2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -342,6 +342,8 @@ GEM unicode-display_width (>= 2.4.0, < 4.0) rubocop-ast (1.37.0) parser (>= 3.3.1.0) + rubocop-factory_bot (2.26.1) + rubocop (~> 1.61) rubocop-performance (1.23.0) rubocop (>= 1.48.1, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) @@ -445,6 +447,7 @@ DEPENDENCIES reform-rails rspec-rails rspec_junit_formatter + rubocop-factory_bot rubocop-performance rubocop-rails rubocop-rspec diff --git a/spec/change_sets/travel_request_change_set_spec.rb b/spec/change_sets/travel_request_change_set_spec.rb index 2f1a749b..bdb1b750 100644 --- a/spec/change_sets/travel_request_change_set_spec.rb +++ b/spec/change_sets/travel_request_change_set_spec.rb @@ -5,7 +5,7 @@ RSpec.describe TravelRequestChangeSet, type: :model do subject(:travel_request) { described_class.new(TravelRequest.new) } - let(:recurring_event) { FactoryBot.create :recurring_event } + let(:recurring_event) { create(:recurring_event) } let(:travel_request_errors) do { creator_id: ["can't be blank"], @@ -99,9 +99,9 @@ describe "#recurring_event_list" do it "responds with recurring events and will calculate new ones only if needed" do - event1 = FactoryBot.create :recurring_event, name: "abc" + event1 = create(:recurring_event, name: "abc") expect(travel_request.recurring_event_list).to eq("[{\"id\":#{event1.id},\"label\":\"abc\"}]") - event2 = FactoryBot.create :recurring_event, name: "two" + event2 = create(:recurring_event, name: "two") expect(travel_request.recurring_event_list).to eq("[{\"id\":#{event1.id},\"label\":\"abc\"},{\"id\":#{event2.id},\"label\":\"two\"}]") values_before = travel_request.instance_variable_get(:@values) expect(travel_request.recurring_event_list).to eq("[{\"id\":#{event1.id},\"label\":\"abc\"},{\"id\":#{event2.id},\"label\":\"two\"}]") @@ -112,10 +112,10 @@ describe "#existing_notes" do it "gathers existing notes and filters blank notes" do - travel_request = described_class.new(FactoryBot.create(:travel_request)) + travel_request = described_class.new(create(:travel_request)) travel_request.notes << Note.new expect(travel_request.existing_notes).to be_empty - note = FactoryBot.create(:note, request: travel_request.model, content: "My Note") + note = create(:note, request: travel_request.model, content: "My Note") travel_request.notes << note expect(travel_request.existing_notes).to eq [{ content: "My Note", icon: "note", title: "#{note.creator.full_name} on #{note.created_at.strftime(Rails.configuration.short_date_format)}" }] diff --git a/spec/controllers/absence_requests_controller_spec.rb b/spec/controllers/absence_requests_controller_spec.rb index bd91821e..3e074a5d 100644 --- a/spec/controllers/absence_requests_controller_spec.rb +++ b/spec/controllers/absence_requests_controller_spec.rb @@ -26,7 +26,7 @@ # `rails-controller-testing` gem. RSpec.describe AbsenceRequestsController, type: :controller do - let(:creator) { FactoryBot.create(:staff_profile, :with_supervisor, user:) } + let(:creator) { create(:staff_profile, :with_supervisor, user:) } # This should return the minimal set of attributes required to create a valid # AbsenceRequest. As you add validations to AbsenceRequest, be sure to @@ -50,7 +50,7 @@ # AbsenceRequestsController. Be sure to keep this updated too. let(:valid_session) { {} } - let(:user) { FactoryBot.create :user } + let(:user) { create(:user) } before do sign_in creator.user @@ -58,31 +58,31 @@ describe "GET #show" do it "returns a success response for the creator" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) get :show, params: { id: absence_request.to_param }, session: valid_session expect(response).to be_successful assert_equal absence_request, assigns(:request).request end it "returns a success response for the creator's supervisor" do - staff_profile = FactoryBot.create(:staff_profile, supervisor: creator) - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) get :show, params: { id: absence_request.to_param }, session: valid_session expect(response).to be_successful assert_equal absence_request, assigns(:request).request end it "returns a success response for the creator's supervisor's supervisor" do - staff_supervisor = FactoryBot.create(:staff_profile, supervisor: creator) - staff_profile = FactoryBot.create(:staff_profile, supervisor: staff_supervisor) - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_supervisor = create(:staff_profile, supervisor: creator) + staff_profile = create(:staff_profile, supervisor: staff_supervisor) + absence_request = create(:absence_request, creator: staff_profile) get :show, params: { id: absence_request.to_param }, session: valid_session expect(response).to be_successful assert_equal absence_request, assigns(:request).request end it "can not show a request created by another user" do - absence_request = FactoryBot.create(:absence_request) + absence_request = create(:absence_request) get :show, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(my_requests_path) end @@ -98,42 +98,42 @@ describe "GET #edit" do it "returns a success response" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) get :edit, params: { id: absence_request.to_param }, session: valid_session expect(response).to be_successful expect(assigns(:request_change_set)).to be_a AbsenceRequestChangeSet end it "can not edit an approved request" do - absence_request = FactoryBot.create(:absence_request, creator:, action: "approve") + absence_request = create(:absence_request, creator:, action: "approve") get :edit, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) expect(assigns(:request)).to eq(absence_request) end it "can not edit a denied request" do - absence_request = FactoryBot.create(:absence_request, creator:, action: "deny") + absence_request = create(:absence_request, creator:, action: "deny") get :edit, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) expect(assigns(:request)).to eq(absence_request) end it "can not edit a recorded request" do - absence_request = FactoryBot.create(:absence_request, creator:, action: "record") + absence_request = create(:absence_request, creator:, action: "record") get :edit, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) expect(assigns(:request)).to eq(absence_request) end it "can not edit a canceled request" do - absence_request = FactoryBot.create(:absence_request, creator:, action: "cancel") + absence_request = create(:absence_request, creator:, action: "cancel") get :edit, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) expect(assigns(:request)).to eq(absence_request) end it "can not edit a request created by another user" do - absence_request = FactoryBot.create(:absence_request) + absence_request = create(:absence_request) get :edit, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) expect(assigns(:request)).to eq(absence_request) @@ -142,16 +142,16 @@ describe "GET #review" do it "returns a success response" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) get :review, params: { id: absence_request.to_param }, session: valid_session expect(response).to be_successful expect(assigns(:request_change_set)).to be_a AbsenceRequestChangeSet end it "Does not allow review after approved" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) absence_request.approve!(agent: creator) get :review, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) @@ -160,15 +160,15 @@ end it "does not allow the creator to review" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) get :review, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) expect(assigns(:request)).to eq(absence_request) end it "Does not allow review after denied" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile, action: "deny") + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile, action: "deny") get :review, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_request) expect(assigns(:request)).to eq(absence_request) @@ -177,8 +177,8 @@ describe "Put #decide" do it "approves and does not add a note if none is submitted" do - staff_profile = FactoryBot.create :staff_profile, :with_department, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, :with_department, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: absence_request.to_param, absence_request: notes, approve: "" }, session: valid_session absence_request.reload @@ -188,7 +188,7 @@ end it "does not allow the creator to approve" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: absence_request.to_param, absence_request: notes, approve: "" }, session: valid_session expect(response).to redirect_to(absence_request) @@ -197,8 +197,8 @@ context "approve with invalid params" do it "returns a success response (i.e. to display the 'review' template)" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) put :decide, params: { id: absence_request.to_param, absence_request: invalid_attributes, approve: "" }, session: valid_session expect(response).to be_successful @@ -207,8 +207,8 @@ end it "returns a success response" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: absence_request.to_param, absence_request: notes, deny: "" }, session: valid_session absence_request.reload @@ -217,7 +217,7 @@ end it "does not allow the creator to deny" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: absence_request.to_param, absence_request: notes, deny: "" }, session: valid_session expect(response).to redirect_to(absence_request) @@ -226,8 +226,8 @@ context "deny with invalid params" do it "returns a success response (i.e. to display the 'review' template)" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) put :decide, params: { id: absence_request.to_param, absence_request: invalid_attributes, deny: "" }, session: valid_session expect(response).to be_successful @@ -237,7 +237,7 @@ end it "cancel by the creator with notes returns a success response" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: absence_request.to_param, absence_request: notes, cancel: "" }, session: valid_session absence_request.reload @@ -246,7 +246,7 @@ end it "cancel and approved request by the creator returns a success response" do - absence_request = FactoryBot.create(:absence_request, creator:, action: :approve) + absence_request = create(:absence_request, creator:, action: :approve) put :decide, params: { id: absence_request.to_param, cancel: "" }, session: valid_session absence_request.reload expect(absence_request.notes.count).to eq 0 @@ -254,7 +254,7 @@ end it "cancel by the creator returns a success response" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) put :decide, params: { id: absence_request.to_param, cancel: "" }, session: valid_session absence_request.reload expect(absence_request.notes.count).to eq 0 @@ -262,8 +262,8 @@ end it "does not allow the supervisor to cancel" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - absence_request = FactoryBot.create(:absence_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: absence_request.to_param, absence_request: notes, cancel: "" }, session: valid_session expect(response).to redirect_to(absence_request) @@ -272,7 +272,7 @@ context "cancel with invalid params" do it "returns a success response (i.e. to display the 'review' template)" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) put :decide, params: { id: absence_request.to_param, absence_request: invalid_attributes, cancel: "" }, session: valid_session expect(response).to be_successful @@ -281,43 +281,43 @@ end it "allows the creator to record an approved request" do - absence_request = FactoryBot.create(:absence_request, creator:, action: :approve) + absence_request = create(:absence_request, creator:, action: :approve) put :decide, params: { id: absence_request.to_param, record: "" }, session: valid_session absence_request.reload expect(absence_request).to be_recorded end it "allows the supervisor to record an approved request" do - employee = FactoryBot.create(:staff_profile, supervisor: creator) - absence_request = FactoryBot.create(:absence_request, creator: employee, action: :approve) + employee = create(:staff_profile, supervisor: creator) + absence_request = create(:absence_request, creator: employee, action: :approve) put :decide, params: { id: absence_request.to_param, record: "" }, session: valid_session absence_request.reload expect(absence_request).to be_recorded end it "does not allow the creator to record an pending request" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) put :decide, params: { id: absence_request.to_param, record: "" }, session: valid_session absence_request.reload expect(absence_request).to be_pending end it "does not allow the creator to record an canceled request" do - absence_request = FactoryBot.create(:absence_request, creator:, action: :cancel) + absence_request = create(:absence_request, creator:, action: :cancel) put :decide, params: { id: absence_request.to_param, record: "" }, session: valid_session absence_request.reload expect(absence_request).to be_canceled end it "does not allow a random person to record an approved request" do - absence_request = FactoryBot.create(:absence_request, action: :approve) + absence_request = create(:absence_request, action: :approve) put :decide, params: { id: absence_request.to_param, record: "" }, session: valid_session absence_request.reload expect(absence_request).to be_approved end it "comments and returns a success with notes response" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: absence_request.to_param, absence_request: notes, comment: "" }, session: valid_session absence_request.reload @@ -327,7 +327,7 @@ end it "comments require notes" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) put :decide, params: { id: absence_request.to_param, absence_request: { abc: "123" }, comment: "" }, session: valid_session expect(assigns(:request_change_set).errors.messages).to eq(notes: ["are required to comment on a request"]) @@ -405,7 +405,7 @@ describe "PUT #update" do let(:valid_attributes) { { absence_type: "sick" } } - let(:absence_request) { FactoryBot.create(:absence_request, creator:) } + let(:absence_request) { create(:absence_request, creator:) } context "with valid nested attributes" do let(:nested_attributes) do @@ -429,7 +429,7 @@ end it "adds a nested note to note array which already had a note" do - absence_request = FactoryBot.create(:absence_request, :with_note) + absence_request = create(:absence_request, :with_note) put :update, params: { id: absence_request.to_param, absence_request: nested_attributes }, session: valid_session absence_request.reload @@ -479,7 +479,7 @@ end it "redirects to the absence request" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) expect do put :update, params: { id: absence_request.to_param, absence_request: empty_note_attribute }, session: valid_session @@ -501,14 +501,14 @@ describe "DELETE #destroy" do it "destroys the requested absence_request" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) expect do delete :destroy, params: { id: absence_request.to_param }, session: valid_session end.to change(AbsenceRequest, :count).by(-1) end it "redirects to the absence_requests list" do - absence_request = FactoryBot.create(:absence_request, creator:) + absence_request = create(:absence_request, creator:) delete :destroy, params: { id: absence_request.to_param }, session: valid_session expect(response).to redirect_to(absence_requests_url) end diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 871fb49b..e893e711 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -16,9 +16,9 @@ describe "#current_delegate" do it "returns a good delegate" do controller = described_class.new - current_user = FactoryBot.create :staff_profile - delegate_staff_profile = FactoryBot.create :staff_profile - delegate = FactoryBot.create :delegate, delegator: delegate_staff_profile, delegate: current_user + current_user = create(:staff_profile) + delegate_staff_profile = create(:staff_profile) + delegate = create(:delegate, delegator: delegate_staff_profile, delegate: current_user) allow(controller).to receive(:session).and_return(approvals_delegate: delegate.id) allow(controller).to receive(:current_user).and_return(current_user.user) expect(controller.current_delegate).to eq(delegate) @@ -32,10 +32,10 @@ it "returns nil for a delegate that does not include the current_user" do controller = described_class.new - current_user = FactoryBot.create :staff_profile - staff_profile = FactoryBot.create :staff_profile - delegate_staff_profile = FactoryBot.create :staff_profile - delegate = FactoryBot.create :delegate, delegator: delegate_staff_profile, delegate: staff_profile + current_user = create(:staff_profile) + staff_profile = create(:staff_profile) + delegate_staff_profile = create(:staff_profile) + delegate = create(:delegate, delegator: delegate_staff_profile, delegate: staff_profile) allow(controller).to receive(:session).and_return(approvals_delegate: delegate.id) allow(controller).to receive(:current_user).and_return(current_user) expect(controller.current_delegate).to be_nil diff --git a/spec/controllers/delegates_controller_spec.rb b/spec/controllers/delegates_controller_spec.rb index fc8dde4f..c96b7adb 100644 --- a/spec/controllers/delegates_controller_spec.rb +++ b/spec/controllers/delegates_controller_spec.rb @@ -3,15 +3,15 @@ require "rails_helper" RSpec.describe DelegatesController, type: :controller do - let(:delegate) { FactoryBot.create :staff_profile } + let(:delegate) { create(:staff_profile) } let(:valid_attributes) { { delegate_id: delegate.id } } let(:invalid_attributes) { { delegate_id: "blah" } } let(:valid_session) { {} } - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, user: } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, user:) } before do staff_profile @@ -20,11 +20,11 @@ describe "GET #index" do it "returns a success response" do - sally_smith = FactoryBot.create :staff_profile, given_name: "Sally", surname: "Smith" - jane_doe = FactoryBot.create :staff_profile, given_name: "Jane", surname: "Doe" - delegate = FactoryBot.create :delegate, delegator: staff_profile, delegate: sally_smith - delegate2 = FactoryBot.create :delegate, delegator: staff_profile, delegate: jane_doe - FactoryBot.create :delegate + sally_smith = create(:staff_profile, given_name: "Sally", surname: "Smith") + jane_doe = create(:staff_profile, given_name: "Jane", surname: "Doe") + delegate = create(:delegate, delegator: staff_profile, delegate: sally_smith) + delegate2 = create(:delegate, delegator: staff_profile, delegate: jane_doe) + create(:delegate) get :index, params: {}, session: valid_session expect(response).to be_successful expect(assigns[:delegates]).to eq [delegate2, delegate] @@ -33,7 +33,7 @@ describe "GET #assume" do it "returns a success response" do - delegate = FactoryBot.create :delegate, delegate: staff_profile + delegate = create(:delegate, delegate: staff_profile) get :assume, params: { id: delegate.to_param }, session: valid_session expect(response).to redirect_to(my_requests_path) expect(session["approvals_delegate"]).to eq delegate.id.to_s @@ -51,7 +51,7 @@ context "assume another's delegate" do it "returns a redirect response" do - delegate = FactoryBot.create :delegate + delegate = create(:delegate) get :assume, params: { id: delegate.to_param }, session: valid_session expect(response).to redirect_to(my_requests_path) expect(response.headers["APPROVALS-DELEGATE"]).not_to eq delegate.to_s @@ -61,8 +61,8 @@ context "when you are being delegate" do it "does not allow you to assume a delegation" do - delegate = FactoryBot.create :delegate, delegate: staff_profile - delegate2 = FactoryBot.create :delegate, delegate: delegate.delegator + delegate = create(:delegate, delegate: staff_profile) + delegate2 = create(:delegate, delegate: delegate.delegator) valid_session["approvals_delegate"] = delegate.id.to_s get :assume, params: { id: delegate2.to_param }, session: valid_session expect(response).to redirect_to(my_requests_path) @@ -74,7 +74,7 @@ describe "GET #cancel_delegation" do it "returns a success response" do - delegate = FactoryBot.create :delegate, delegate: staff_profile + delegate = create(:delegate, delegate: staff_profile) valid_session["approvals_delegate"] = delegate.id.to_s get :cancel, session: valid_session expect(response).to redirect_to(my_requests_path) @@ -85,11 +85,11 @@ describe "GET #to_assume" do it "returns a success response" do - sally_smith = FactoryBot.create :staff_profile, given_name: "Sally", surname: "Smith" - jane_doe = FactoryBot.create :staff_profile, given_name: "Jane", surname: "Doe" - delegate = FactoryBot.create :delegate, delegate: staff_profile, delegator: sally_smith - delegate2 = FactoryBot.create :delegate, delegate: staff_profile, delegator: jane_doe - FactoryBot.create :delegate + sally_smith = create(:staff_profile, given_name: "Sally", surname: "Smith") + jane_doe = create(:staff_profile, given_name: "Jane", surname: "Doe") + delegate = create(:delegate, delegate: staff_profile, delegator: sally_smith) + delegate2 = create(:delegate, delegate: staff_profile, delegator: jane_doe) + create(:delegate) get :to_assume, params: {}, session: valid_session expect(response).to be_successful expect(assigns[:delegators]).to eq [delegate2, delegate] @@ -119,7 +119,7 @@ context "when you are being delegate" do it "does not allow you to create a delegation" do - delegate = FactoryBot.create :delegate, delegate: staff_profile + delegate = create(:delegate, delegate: staff_profile) valid_session["approvals_delegate"] = delegate.id.to_s post :create, params: { delegate: valid_attributes }, session: valid_session expect(response).to redirect_to(my_requests_path) @@ -131,14 +131,14 @@ describe "DELETE #destroy" do it "destroys the requested delegate" do - delegate = FactoryBot.create :delegate, delegator: staff_profile + delegate = create(:delegate, delegator: staff_profile) expect do delete :destroy, params: { id: delegate.to_param }, session: valid_session end.to change(Delegate, :count).by(-1) end it "redirects to the delegates list" do - delegate = FactoryBot.create :delegate, delegator: staff_profile + delegate = create(:delegate, delegator: staff_profile) delete :destroy, params: { id: delegate.to_param }, session: valid_session expect(response).to redirect_to(delegates_url) end @@ -149,8 +149,8 @@ end it "does not allow you to assume a delegation" do - delegate = FactoryBot.create :delegate, delegate: staff_profile - delegate2 = FactoryBot.create :delegate, delegate: delegate.delegator + delegate = create(:delegate, delegate: staff_profile) + delegate2 = create(:delegate, delegate: delegate.delegator) valid_session["approvals_delegate"] = delegate.id.to_s expect do delete :destroy, params: { id: delegate2.to_param }, session: valid_session diff --git a/spec/controllers/omniauth_callbacks_controller_spec.rb b/spec/controllers/omniauth_callbacks_controller_spec.rb index eee002f4..f93e1789 100644 --- a/spec/controllers/omniauth_callbacks_controller_spec.rb +++ b/spec/controllers/omniauth_callbacks_controller_spec.rb @@ -7,7 +7,7 @@ describe "logging in" do it "valid cas login redirects to home page" do - allow(User).to receive(:from_cas) { FactoryBot.create(:user) } + allow(User).to receive(:from_cas) { create(:user) } get :cas expect(response).to redirect_to(my_requests_path) expect(flash[:success]).to eq("Successfully authenticated from from Princeton Central Authentication Service account.") diff --git a/spec/controllers/requests_controller_spec.rb b/spec/controllers/requests_controller_spec.rb index 92398d4b..c86e2107 100644 --- a/spec/controllers/requests_controller_spec.rb +++ b/spec/controllers/requests_controller_spec.rb @@ -8,13 +8,13 @@ # AbsenceRequestsController. Be sure to keep this updated too. let(:valid_session) { {} } - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, :with_department, user: } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, :with_department, user:) } - let(:other_absence) { FactoryBot.create(:absence_request) } - let(:other_travel) { FactoryBot.create(:travel_request) } - let(:my_absence) { FactoryBot.create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } - let(:my_travel) { FactoryBot.create(:travel_request, creator: staff_profile) } + let(:other_absence) { create(:absence_request) } + let(:other_travel) { create(:travel_request) } + let(:my_absence) { create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } + let(:my_travel) { create(:travel_request, creator: staff_profile) } before do sign_in user @@ -55,7 +55,7 @@ end it "accepts limit by status" do - approved_absence = FactoryBot.create(:absence_request, action: :approve, creator: staff_profile) + approved_absence = create(:absence_request, action: :approve, creator: staff_profile) get :my_requests, params: { filters: { status: "approved" } }, session: valid_session expect(assigns(:requests).map(&:id)).to contain_exactly(approved_absence.id) end @@ -66,7 +66,7 @@ end it "accepts limit by request type sick" do - my_sick_absence = FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick") + my_sick_absence = create(:absence_request, creator: staff_profile, absence_type: "sick") get :my_requests, params: { filters: { request_type: "sick" } }, session: valid_session expect(assigns(:requests).map(&:id)).to contain_exactly(my_sick_absence.id) end @@ -77,25 +77,25 @@ end it "accepts limit by request type business" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, travel_category: "business") + my_business_travel = create(:travel_request, creator: staff_profile, travel_category: "business") get :my_requests, params: { filters: { request_type: "business" } }, session: valid_session expect(assigns(:requests).map(&:id)).to contain_exactly(my_business_travel.id) end it "accepts limit by status and request type" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", - travel_category: "business") - FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", - travel_category: "professional_development") + my_business_travel = create(:travel_request, creator: staff_profile, action: "approve", + travel_category: "business") + create(:travel_request, creator: staff_profile, action: "approve", + travel_category: "professional_development") get :my_requests, params: { filters: { request_type: "business", status: "approved" } }, session: valid_session expect(assigns(:requests).map(&:id)).to contain_exactly(my_business_travel.id) end end describe "GET #my_approval_requests" do - let(:profile) { FactoryBot.create :staff_profile, supervisor: staff_profile } - let(:approval_absence) { FactoryBot.create(:absence_request, creator: profile, start_date: Time.zone.tomorrow) } - let(:approval_travel) { FactoryBot.create(:travel_request, creator: profile, start_date: Time.zone.now) } + let(:profile) { create(:staff_profile, supervisor: staff_profile) } + let(:approval_absence) { create(:absence_request, creator: profile, start_date: Time.zone.tomorrow) } + let(:approval_travel) { create(:travel_request, creator: profile, start_date: Time.zone.now) } before do # create all the requests @@ -125,12 +125,12 @@ it "runs reasonably fast" do 30.times do - FactoryBot.create(:absence_request, creator: profile, start_date: Time.zone.tomorrow) - FactoryBot.create(:travel_request, creator: profile) + create(:absence_request, creator: profile, start_date: Time.zone.tomorrow) + create(:travel_request, creator: profile) end 100.times do - FactoryBot.create(:absence_request, start_date: Time.zone.tomorrow) - FactoryBot.create(:travel_request) + create(:absence_request, start_date: Time.zone.tomorrow) + create(:travel_request) end start_time = Time.zone.now 10.times do @@ -154,10 +154,10 @@ end context "shows when changes are requested by the current supervisor" do - let(:profile1) { FactoryBot.create :staff_profile, supervisor: profile2 } - let(:profile2) { FactoryBot.create :staff_profile, supervisor: staff_profile } - let(:approval_absence) { FactoryBot.create(:absence_request, creator: profile1, start_date: Time.zone.tomorrow) } - let(:approval_travel) { FactoryBot.create(:travel_request, creator: profile1, start_date: Time.zone.now) } + let(:profile1) { create(:staff_profile, supervisor: profile2) } + let(:profile2) { create(:staff_profile, supervisor: staff_profile) } + let(:approval_absence) { create(:absence_request, creator: profile1, start_date: Time.zone.tomorrow) } + let(:approval_travel) { create(:travel_request, creator: profile1, start_date: Time.zone.now) } before do approval_absence.approve(agent: profile2) @@ -177,10 +177,10 @@ end describe "GET #reports" do - let(:supervisor) { FactoryBot.create :staff_profile, user: } - let(:staff_profile) { FactoryBot.create :staff_profile, supervisor:, biweekly: true } + let(:supervisor) { create(:staff_profile, user:) } + let(:staff_profile) { create(:staff_profile, supervisor:, biweekly: true) } let(:supervisor_absence) do - FactoryBot.create(:absence_request, creator: supervisor, start_date: Time.zone.tomorrow) + create(:absence_request, creator: supervisor, start_date: Time.zone.tomorrow) end before do @@ -205,10 +205,10 @@ end it "filters based on supervisor" do - sub_staff = FactoryBot.create :staff_profile, supervisor: staff_profile, department: supervisor.department - sub_absence = FactoryBot.create(:absence_request, creator: sub_staff) - sub_travel = FactoryBot.create(:travel_request, creator: sub_staff) - get :reports, params: { filters: { supervisor: staff_profile.id } }, session: valid_session + sub_staff = create(:staff_profile, supervisor: staff_profile, department: supervisor.department) + sub_absence = create(:absence_request, creator: sub_staff) + sub_travel = create(:travel_request, creator: sub_staff) + get :reports, params: { filters: { supervisor: staff_profile.id } }, session: valid_session expect(response).to be_successful expect(assigns(:requests).map(&:id)).to contain_exactly(*[my_travel, my_absence, sub_absence, sub_travel].map(&:id)) @@ -222,19 +222,19 @@ # r1: created yesterday, modified tomorrow, start date today let(:r1) do Timecop.freeze(yesterday) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: today) + create(:travel_request, creator: staff_profile, start_date: today) end end # r2: created today, modified yesterday, start date tomorrow let(:r2) do Timecop.freeze(today) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: tomorrow) + create(:travel_request, creator: staff_profile, start_date: tomorrow) end end # r3: created tomorrow, modified today, start date yesterday let(:r3) do Timecop.freeze(tomorrow) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: yesterday) + create(:travel_request, creator: staff_profile, start_date: yesterday) end end @@ -295,12 +295,12 @@ describe "GET #my_requests with searching" do it "retrieves a result" do - absence_request = FactoryBot.create(:absence_request, creator: staff_profile, action: :approve) - absence_request2 = FactoryBot.create(:absence_request, creator: staff_profile, action: :deny) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request2) - FactoryBot.create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) + absence_request = create(:absence_request, creator: staff_profile, action: :approve) + absence_request2 = create(:absence_request, creator: staff_profile, action: :deny) + travel_request = create(:travel_request, creator: staff_profile) + create(:note, content: "elephants love balloons", request: absence_request) + create(:note, content: "elephants love balloons", request: absence_request2) + create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) get :my_requests, params: { query: "balloons", filters: { status: :approved } }, session: valid_session expect(assigns(:requests).count).to eq 1 @@ -309,13 +309,13 @@ describe "GET #my_approval_requests with searching" do it "retrieves a result" do - profile = FactoryBot.create :staff_profile, supervisor: staff_profile, given_name: "Haley" - absence_request = FactoryBot.create(:absence_request, creator: profile) - absence_request2 = FactoryBot.create(:absence_request, creator: profile) - travel_request = FactoryBot.create(:travel_request, creator: profile) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request) - FactoryBot.create(:note, content: "elephants love pink balloons", request: absence_request2) - FactoryBot.create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) + profile = create(:staff_profile, supervisor: staff_profile, given_name: "Haley") + absence_request = create(:absence_request, creator: profile) + absence_request2 = create(:absence_request, creator: profile) + travel_request = create(:travel_request, creator: profile) + create(:note, content: "elephants love balloons", request: absence_request) + create(:note, content: "elephants love pink balloons", request: absence_request2) + create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) get :my_approval_requests, params: { query: "balloons" }, session: valid_session expect(assigns(:requests).count).to eq 2 @@ -327,11 +327,11 @@ context "filter by date range" do # using let! to make sure the requests exist - let!(:r1) { FactoryBot.create(:travel_request, creator:, start_date: today, end_date: today) } - let!(:r2) { FactoryBot.create(:travel_request, creator:, start_date: tomorrow, end_date: tomorrow) } - let!(:r3) { FactoryBot.create(:travel_request, creator:, start_date: yesterday, end_date: yesterday) } - let!(:r4) { FactoryBot.create(:travel_request, creator:, start_date: today, end_date: tomorrow) } - let!(:r5) { FactoryBot.create(:travel_request, creator:, start_date: yesterday, end_date: today) } + let!(:r1) { create(:travel_request, creator:, start_date: today, end_date: today) } + let!(:r2) { create(:travel_request, creator:, start_date: tomorrow, end_date: tomorrow) } + let!(:r3) { create(:travel_request, creator:, start_date: yesterday, end_date: yesterday) } + let!(:r4) { create(:travel_request, creator:, start_date: today, end_date: tomorrow) } + let!(:r5) { create(:travel_request, creator:, start_date: yesterday, end_date: today) } describe "GET #my_requests" do let(:creator) { staff_profile } @@ -374,7 +374,7 @@ describe "GET #my_approval_requests" do let(:creator) { profile } - let(:profile) { FactoryBot.create :staff_profile, supervisor: staff_profile, given_name: "Haley" } + let(:profile) { create(:staff_profile, supervisor: staff_profile, given_name: "Haley") } let(:day_before_yesterday) { Time.zone.yesterday.yesterday } let(:yesterday) { Time.zone.yesterday } let(:today) { Time.zone.today } @@ -415,7 +415,7 @@ describe "GET #reports" do let(:creator) { profile } - let(:profile) { FactoryBot.create :staff_profile, supervisor: staff_profile, given_name: "Haley" } + let(:profile) { create(:staff_profile, supervisor: staff_profile, given_name: "Haley") } let(:day_before_yesterday) { Time.zone.yesterday.yesterday } let(:yesterday) { Time.zone.yesterday } let(:today) { Time.zone.today } diff --git a/spec/controllers/travel_requests_controller_spec.rb b/spec/controllers/travel_requests_controller_spec.rb index d8246f67..9e0f83fe 100644 --- a/spec/controllers/travel_requests_controller_spec.rb +++ b/spec/controllers/travel_requests_controller_spec.rb @@ -26,8 +26,8 @@ # `rails-controller-testing` gem. RSpec.describe TravelRequestsController, type: :controller do - let(:recurring_event) { FactoryBot.create(:recurring_event, name: "Ice Capades") } - let(:creator) { FactoryBot.create(:staff_profile, :with_department, user:) } + let(:recurring_event) { create(:recurring_event, name: "Ice Capades") } + let(:creator) { create(:staff_profile, :with_department, user:) } let(:start_date) { Time.zone.today } let(:end_date) { Time.zone.tomorrow } # This should return the minimal set of attributes required to create a valid @@ -60,7 +60,7 @@ # TravelRequestsController. Be sure to keep this updated too. let(:valid_session) { {} } - let(:user) { FactoryBot.create :user } + let(:user) { create(:user) } before do sign_in user @@ -69,24 +69,24 @@ describe "GET #show" do it "returns a success response for the creator" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) get :show, params: { id: travel_request.to_param }, session: valid_session expect(response).to be_successful assert_equal travel_request, assigns(:request).to_model end it "returns a success response for the creator's supervisor" do - staff_profile = FactoryBot.create(:staff_profile, supervisor: creator) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) get :show, params: { id: travel_request.to_param }, session: valid_session expect(response).to be_successful assert_equal travel_request, assigns(:request).to_model end it "returns a success response for the creator's supervisor's supervisor" do - staff_supervisor = FactoryBot.create(:staff_profile, supervisor: creator) - staff_profile = FactoryBot.create(:staff_profile, supervisor: staff_supervisor) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_supervisor = create(:staff_profile, supervisor: creator) + staff_profile = create(:staff_profile, supervisor: staff_supervisor) + travel_request = create(:travel_request, creator: staff_profile) get :show, params: { id: travel_request.to_param }, session: valid_session expect(response).to be_successful assert_equal travel_request, assigns(:request).to_model @@ -94,8 +94,8 @@ context "when logged in as a department assistant" do before do - staff_profile = FactoryBot.create :staff_profile, :with_department - @travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, :with_department) + @travel_request = create(:travel_request, creator: staff_profile) admin_assistant = staff_profile.department.admin_assistants.first sign_in admin_assistant.user end @@ -108,7 +108,7 @@ end it "can not show a request created by another user" do - travel_request = FactoryBot.create(:travel_request) + travel_request = create(:travel_request) get :show, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(my_requests_path) end @@ -126,7 +126,7 @@ describe "GET #edit" do it "returns a success response" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to be_successful expect(assigns(:request_change_set)).to be_a(TravelRequestChangeSet) @@ -134,7 +134,7 @@ end it "can edit a changes_requested request" do - travel_request = FactoryBot.create(:travel_request, creator:, action: "change_request") + travel_request = create(:travel_request, creator:, action: "change_request") get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to be_successful expect(assigns(:request_change_set)).to be_a(TravelRequestChangeSet) @@ -142,7 +142,7 @@ end it "can edit a fix_requested_changes pending request" do - travel_request = FactoryBot.create(:travel_request, creator:, action: "fix_requested_changes") + travel_request = create(:travel_request, creator:, action: "fix_requested_changes") get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to be_successful expect(assigns(:request_change_set)).to be_a(TravelRequestChangeSet) @@ -150,14 +150,14 @@ end it "can not edit an approved request" do - travel_request = FactoryBot.create(:travel_request, creator:, action: "approve") + travel_request = create(:travel_request, creator:, action: "approve") get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) end it "can not edit an partially approved request" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) travel_request.approve(agent: travel_request.creator.supervisor) get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) @@ -165,21 +165,21 @@ end it "can not edit a denied request" do - travel_request = FactoryBot.create(:travel_request, creator:, action: "deny") + travel_request = create(:travel_request, creator:, action: "deny") get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) end it "can not edit a canceled request" do - travel_request = FactoryBot.create(:travel_request, creator:, action: "cancel") + travel_request = create(:travel_request, creator:, action: "cancel") get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) end it "can not edit a request by another person" do - travel_request = FactoryBot.create(:travel_request) + travel_request = create(:travel_request) get :edit, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) @@ -188,23 +188,23 @@ describe "GET #review" do it "returns a success response" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) get :review, params: { id: travel_request.to_param }, session: valid_session expect(response).to be_successful expect(assigns(:request_change_set)).to be_a TravelRequestChangeSet end it "does not allow the creator to review" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) get :review, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) end it "Does not allow review after approved" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator, department: creator.department - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator, department: creator.department) + travel_request = create(:travel_request, creator: staff_profile) travel_request.approve!(agent: creator) get :review, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) @@ -213,8 +213,8 @@ end it "Does allow review after request changes have been fixed" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator, department: creator.department - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator, department: creator.department) + travel_request = create(:travel_request, creator: staff_profile) travel_request.change_request!(agent: creator) travel_request.fix_requested_changes!(agent: staff_profile) get :review, params: { id: travel_request.to_param }, session: valid_session @@ -223,24 +223,24 @@ end it "Does not allow review after denied" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator, department: creator.department - travel_request = FactoryBot.create(:travel_request, creator: staff_profile, action: "deny") + staff_profile = create(:staff_profile, supervisor: creator, department: creator.department) + travel_request = create(:travel_request, creator: staff_profile, action: "deny") get :review, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) end it "Does not allow review after cancel" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator, department: creator.department - travel_request = FactoryBot.create(:travel_request, creator: staff_profile, action: "cancel") + staff_profile = create(:staff_profile, supervisor: creator, department: creator.department) + travel_request = create(:travel_request, creator: staff_profile, action: "cancel") get :review, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) end it "Does not allow review after change_request" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator, department: creator.department - travel_request = FactoryBot.create(:travel_request, creator: staff_profile, action: "change_request") + staff_profile = create(:staff_profile, supervisor: creator, department: creator.department) + travel_request = create(:travel_request, creator: staff_profile, action: "change_request") get :review, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to eq(travel_request) @@ -274,9 +274,9 @@ context "with delegate" do it "creates a note to say who really created the request" do - delegate_profile = FactoryBot.create :staff_profile, given_name: "Sally", surname: "Smith", - supervisor: creator.supervisor - delegate = FactoryBot.create :delegate, delegate: creator, delegator: delegate_profile + delegate_profile = create(:staff_profile, given_name: "Sally", surname: "Smith", + supervisor: creator.supervisor) + delegate = create(:delegate, delegate: creator, delegator: delegate_profile) valid_session["approvals_delegate"] = delegate.id.to_s expect do post :create, @@ -344,7 +344,7 @@ describe "PUT #update" do context "with valid nested attributes" do - let(:recurring_event) { FactoryBot.create :recurring_event, name: "Conference" } + let(:recurring_event) { create(:recurring_event, name: "Conference") } let(:nested_attributes) do { notes: [{ creator_id: creator.id, content: "Important message" }], @@ -354,7 +354,7 @@ end it "updates the requested travel_request" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) put :update, params: { id: travel_request.to_param, travel_request: nested_attributes }, session: valid_session travel_request.reload expect(travel_request.notes.last.content).to eq "Important message" @@ -366,8 +366,8 @@ end context "with estimate that will be updated" do - let(:recurring_event) { FactoryBot.create :recurring_event, name: "Conference" } - let(:travel_request) { FactoryBot.create(:travel_request, :with_note_and_estimate) } + let(:recurring_event) { create(:recurring_event, name: "Conference") } + let(:travel_request) { create(:travel_request, :with_note_and_estimate) } let(:nested_attributes) do { notes: [{ creator_id: creator.id, content: "Important message" }], @@ -390,7 +390,7 @@ end it "redirects to the travel_request" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) put :update, params: { id: travel_request.to_param, travel_request: nested_attributes }, session: valid_session expect(response).to redirect_to(travel_request) expect(assigns(:request)).to be_a(TravelRequest) @@ -398,7 +398,7 @@ # rubocop:disable RSpec/AnyInstance context "invalid save to database" do - let(:travel_request) { FactoryBot.create(:travel_request, creator:) } + let(:travel_request) { create(:travel_request, creator:) } before do travel_request @@ -425,7 +425,7 @@ context "Already in the approval process" do it "does not allow updates to the attributes" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) travel_request.approve(agent: travel_request.creator.supervisor) put :update, params: { id: travel_request.to_param, travel_request: nested_attributes }, session: valid_session @@ -436,7 +436,7 @@ context "Changes requested by supervisor" do it "updates the attributes and sets the status back to pending" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) travel_request.change_request!(agent: travel_request.creator.supervisor) expect do put :update, params: { id: travel_request.to_param, travel_request: nested_attributes }, @@ -462,7 +462,7 @@ end it "returns a success response (i.e. to display the 'edit' template)" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) expect do put :update, params: { id: travel_request.to_param, travel_request: invalid_nested_attributes }, session: valid_session @@ -479,7 +479,7 @@ end it "returns a success response (i.e. to display the 'edit' template)" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) put :update, params: { id: travel_request.to_param, travel_request: invalid_nested_attributes }, session: valid_session expect(assigns(:request_change_set).event_requests.last.recurring_event_id).to eq recurring_event.id.to_s @@ -489,8 +489,8 @@ describe "Put #decide" do it "does not fully approve for a supervisor and adds a note" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, approve: "" }, session: valid_session travel_request.reload @@ -502,10 +502,10 @@ end it "fully approves for a department head and adds a note" do - staff_profile = FactoryBot.create :staff_profile, :with_department, supervisor: creator + staff_profile = create(:staff_profile, :with_department, supervisor: creator) staff_profile.department.head = creator staff_profile.department.save - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + travel_request = create(:travel_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }], travel_category: "business" } put :decide, params: { id: travel_request.to_param, travel_request: notes, approve: "" }, session: valid_session travel_request.reload @@ -514,10 +514,10 @@ end it "requires a travel category for a department head to fully approve" do - staff_profile = FactoryBot.create :staff_profile, :with_department, supervisor: creator + staff_profile = create(:staff_profile, :with_department, supervisor: creator) staff_profile.department.head = creator staff_profile.department.save - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + travel_request = create(:travel_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, approve: "" }, session: valid_session expect(assigns(:request_change_set).errors.messages).to eq(travel_category: ["is required to approve."]) @@ -526,7 +526,7 @@ end it "does not allow the creator to approve" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, approve: "" }, session: valid_session travel_request.reload @@ -537,8 +537,8 @@ context "approve with invalid params" do it "returns a success response (i.e. to display the 'review' template)" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) put :decide, params: { id: travel_request.to_param, travel_request: invalid_attributes, approve: "" }, session: valid_session expect(response).to be_successful @@ -551,8 +551,8 @@ end it "denies and returns a success response" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, deny: "" }, session: valid_session travel_request.reload @@ -561,7 +561,7 @@ end it "does not allow the creator to deny" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) notes = { notes: [{ content: "Important message" }] } travel_request.reload put :decide, params: { id: travel_request.to_param, travel_request: notes, deny: "" }, session: valid_session @@ -572,8 +572,8 @@ context "deny with invalid params" do it "returns a success response (i.e. to display the 'review' template)" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) put :decide, params: { id: travel_request.to_param, travel_request: invalid_attributes, deny: "" }, session: valid_session expect(response).to be_successful @@ -587,8 +587,8 @@ end it "requests changes and returns a success response" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, change_request: "" }, session: valid_session @@ -598,7 +598,7 @@ end it "does not allow the creator to change_request" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, change_request: "" }, session: valid_session @@ -610,8 +610,8 @@ context "with invalid params" do it "returns a success response (i.e. to display the 'review' template)" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) put :decide, params: { id: travel_request.to_param, travel_request: invalid_attributes, change_request: "" }, session: valid_session expect(response).to be_successful @@ -625,7 +625,7 @@ end it "cancels and returns a success with notes response" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, cancel: "" }, session: valid_session expect(response).to redirect_to(travel_request) @@ -633,7 +633,7 @@ end it "cancels and returns a success response" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) put :decide, params: { id: travel_request.to_param, cancel: "" }, session: valid_session travel_request.reload expect(travel_request.notes.count).to eq 0 @@ -641,7 +641,7 @@ end it "cancels an approved request and returns a success response" do - travel_request = FactoryBot.create(:travel_request, creator:, action: :approve) + travel_request = create(:travel_request, creator:, action: :approve) put :decide, params: { id: travel_request.to_param, cancel: "" }, session: valid_session travel_request.reload expect(travel_request.notes.count).to eq 0 @@ -649,7 +649,7 @@ end it "does not cancel a canceled request" do - travel_request = FactoryBot.create(:travel_request, creator:, action: :cancel) + travel_request = create(:travel_request, creator:, action: :cancel) put :decide, params: { id: travel_request.to_param, cancel: "" }, session: valid_session travel_request.reload expect(travel_request.notes.count).to eq 0 @@ -657,8 +657,8 @@ end it "does not allow others to cancel" do - staff_profile = FactoryBot.create :staff_profile, supervisor: creator - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, supervisor: creator) + travel_request = create(:travel_request, creator: staff_profile) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, cancel: "" }, session: valid_session travel_request.reload @@ -667,7 +667,7 @@ end it "comments and returns a success with notes response" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) notes = { notes: [{ content: "Important message" }] } put :decide, params: { id: travel_request.to_param, travel_request: notes, comment: "" }, session: valid_session travel_request.reload @@ -677,7 +677,7 @@ end it "comments require notes" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) put :decide, params: { id: travel_request.to_param, travel_request: { abc: "123" }, comment: "" }, session: valid_session expect(assigns(:request_change_set).errors.messages).to eq(notes: ["are required to comment on a request"]) @@ -686,14 +686,14 @@ describe "DELETE #destroy" do it "destroys the requested travel_request" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) expect do delete :destroy, params: { id: travel_request.to_param }, session: valid_session end.to change(TravelRequest, :count).by(-1) end it "redirects to the travel_requests list" do - travel_request = FactoryBot.create(:travel_request, creator:) + travel_request = create(:travel_request, creator:) delete :destroy, params: { id: travel_request.to_param }, session: valid_session expect(response).to redirect_to(travel_requests_url) end diff --git a/spec/decorators/absence_request_decorator_spec.rb b/spec/decorators/absence_request_decorator_spec.rb index eea50157..6f482932 100644 --- a/spec/decorators/absence_request_decorator_spec.rb +++ b/spec/decorators/absence_request_decorator_spec.rb @@ -4,7 +4,7 @@ RSpec.describe AbsenceRequestDecorator, type: :model do subject(:absence_request_decorator) { described_class.new(absence_request) } - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :vacation) } + let(:absence_request) { create(:absence_request, absence_type: :vacation) } describe "attributes relevant to AbsenceRequest" do it { is_expected.to respond_to :absence_type } @@ -29,7 +29,7 @@ end context "when absence_type is sick" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :sick) } + let(:absence_request) { create(:absence_request, absence_type: :sick) } it "returns sick icon" do expect(absence_request_decorator.absence_type_icon).to eq "lux-icon-hospital" @@ -37,7 +37,7 @@ end context "when absence_type is personal" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :personal) } + let(:absence_request) { create(:absence_request, absence_type: :personal) } it "returns personal icon" do expect(absence_request_decorator.absence_type_icon).to eq "lux-icon-relax" @@ -45,7 +45,7 @@ end context "when absence_type is research_days" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :research_days) } + let(:absence_request) { create(:absence_request, absence_type: :research_days) } it "returns research_days icon" do expect(absence_request_decorator.absence_type_icon).to eq "lux-icon-research" @@ -53,7 +53,7 @@ end context "when absence_type is consulting" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :consulting) } + let(:absence_request) { create(:absence_request, absence_type: :consulting) } it "returns consulting icon" do expect(absence_request_decorator.absence_type_icon).to eq "lux-icon-consulting" @@ -61,7 +61,7 @@ end context "when absence_type is jury_duty" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :jury_duty) } + let(:absence_request) { create(:absence_request, absence_type: :jury_duty) } it "returns jury_duty icon" do expect(absence_request_decorator.absence_type_icon).to eq "lux-icon-scales" @@ -69,7 +69,7 @@ end context "when absence_type is death_in_family" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :death_in_family) } + let(:absence_request) { create(:absence_request, absence_type: :death_in_family) } it "returns death_in_family icon" do expect(absence_request_decorator.absence_type_icon).to eq "lux-icon-flower" @@ -85,7 +85,7 @@ end context "when absence_type is sick" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :sick) } + let(:absence_request) { create(:absence_request, absence_type: :sick) } it "returns appropriate title" do expect(absence_request_decorator.title).to eq "Sick Leave" @@ -93,7 +93,7 @@ end context "when absence_type is personal days" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: "personal") } + let(:absence_request) { create(:absence_request, absence_type: "personal") } it "returns appropriate title" do expect(absence_request_decorator.title).to eq "Personal Days" @@ -101,7 +101,7 @@ end context "when absence_type is research days" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :research_days) } + let(:absence_request) { create(:absence_request, absence_type: :research_days) } it "returns appropriate title" do expect(absence_request_decorator.title).to eq "Research Days" @@ -109,7 +109,7 @@ end context "when absence_type is consulting" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :consulting) } + let(:absence_request) { create(:absence_request, absence_type: :consulting) } it "returns appropriate title" do expect(absence_request_decorator.title).to eq "Consulting Leave" @@ -117,7 +117,7 @@ end context "when absence_type is jury duty" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :jury_duty) } + let(:absence_request) { create(:absence_request, absence_type: :jury_duty) } it "returns appropriate title" do expect(absence_request_decorator.title).to eq "Jury Duty Leave" @@ -125,7 +125,7 @@ end context "when absence type is death in family" do - let(:absence_request) { FactoryBot.create(:absence_request, absence_type: :death_in_family) } + let(:absence_request) { create(:absence_request, absence_type: :death_in_family) } it "returns appropriate title" do expect(absence_request_decorator.title).to eq "Death In The Family Leave" @@ -134,7 +134,7 @@ end describe "#formatted_start_date" do - let(:absence_request) { FactoryBot.create(:absence_request, start_date: Time.zone.parse("2019-07-04 12:12")) } + let(:absence_request) { create(:absence_request, start_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated start date" do expect(absence_request_decorator.formatted_start_date).to eq "07/04/2019" @@ -142,7 +142,7 @@ end describe "#formatted_full_start_date" do - let(:absence_request) { FactoryBot.create(:absence_request, start_date: Time.zone.parse("2019-07-04 12:12")) } + let(:absence_request) { create(:absence_request, start_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated start date" do expect(absence_request_decorator.formatted_full_start_date).to eq "July 4, 2019" @@ -150,7 +150,7 @@ end describe "#formatted_end_date" do - let(:absence_request) { FactoryBot.create(:absence_request, end_date: Time.zone.parse("2019-07-04 12:12")) } + let(:absence_request) { create(:absence_request, end_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated end date" do expect(absence_request_decorator.formatted_end_date).to eq "07/04/2019" @@ -158,7 +158,7 @@ end describe "#formatted_full_end_date" do - let(:absence_request) { FactoryBot.create(:absence_request, end_date: Time.zone.parse("2019-07-04 12:12")) } + let(:absence_request) { create(:absence_request, end_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated end date" do expect(absence_request_decorator.formatted_full_end_date).to eq "July 4, 2019" @@ -166,14 +166,14 @@ end describe "#status_icon" do - let(:absence_request) { FactoryBot.create(:absence_request) } + let(:absence_request) { create(:absence_request) } it "returns the correct lux icon" do expect(absence_request_decorator.status_icon).to eq "clock" end context "when absence has been apporved" do - let(:absence_request) { FactoryBot.create(:absence_request, action: :approve) } + let(:absence_request) { create(:absence_request, action: :approve) } it "returns the correct lux icon" do expect(absence_request_decorator.status_icon).to eq "approved" @@ -181,7 +181,7 @@ end context "when absence has been denied" do - let(:absence_request) { FactoryBot.create(:absence_request, action: :deny) } + let(:absence_request) { create(:absence_request, action: :deny) } it "returns the correct lux icon" do expect(absence_request_decorator.status_icon).to eq "denied" @@ -189,7 +189,7 @@ end context "when absence has been canceled" do - let(:absence_request) { FactoryBot.create(:absence_request, action: :cancel) } + let(:absence_request) { create(:absence_request, action: :cancel) } it "returns the correct lux icon" do expect(absence_request_decorator.status_icon).to eq "alert" @@ -197,7 +197,7 @@ end context "when absence has been recorded" do - let(:absence_request) { FactoryBot.create(:absence_request, action: :record) } + let(:absence_request) { create(:absence_request, action: :record) } it "returns the correct lux icon" do expect(absence_request_decorator.status_icon).to eq "reported" @@ -206,9 +206,9 @@ end describe "#latest_status" do - let(:creator) { FactoryBot.create(:staff_profile, :with_supervisor) } + let(:creator) { create(:staff_profile, :with_supervisor) } let(:supervisor) { creator.supervisor } - let(:absence_request) { FactoryBot.create(:absence_request, creator:) } + let(:absence_request) { create(:absence_request, creator:) } let(:today) { Time.zone.now } it "returns the last created status and date" do @@ -221,20 +221,20 @@ describe "#notes_and_changes" do let(:department_head) do - FactoryBot.create(:staff_profile, :as_department_head, given_name: "Department", surname: "Head") + create(:staff_profile, :as_department_head, given_name: "Department", surname: "Head") end let(:supervisor) do - FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Supervisor", department: department_head.department, - supervisor: department_head) + create(:staff_profile, given_name: "Sally", surname: "Supervisor", department: department_head.department, + supervisor: department_head) end let(:staff) do - FactoryBot.create(:staff_profile, given_name: "Staff", surname: "Person", department: department_head.department, - supervisor:) + create(:staff_profile, given_name: "Staff", surname: "Person", department: department_head.department, + supervisor:) end let(:absence_request) do - request = FactoryBot.create(:absence_request, creator: staff) - request.notes << FactoryBot.build(:note, content: "Please approve", creator: staff) - request.notes << FactoryBot.build(:note, content: "looks good", creator: supervisor) + request = create(:absence_request, creator: staff) + request.notes << build(:note, content: "Please approve", creator: staff) + request.notes << build(:note, content: "looks good", creator: supervisor) request.approve(agent: supervisor) request end diff --git a/spec/decorators/estimate_decorator_spec.rb b/spec/decorators/estimate_decorator_spec.rb index 1942ba17..483d2660 100644 --- a/spec/decorators/estimate_decorator_spec.rb +++ b/spec/decorators/estimate_decorator_spec.rb @@ -4,8 +4,8 @@ RSpec.describe EstimateDecorator, type: :model do subject(:estimate_decorator) { described_class.new(estimate) } - let(:estimate) { FactoryBot.create :estimate, request: } - let(:request) { FactoryBot.create :travel_request } + let(:estimate) { create(:estimate, request:) } + let(:request) { create(:travel_request) } describe "attributes relevant to Estimate" do it { is_expected.to respond_to :cost_type } @@ -15,7 +15,7 @@ end context "with a nil cost_type" do - let(:estimate) { FactoryBot.create(:estimate, cost_type: nil, request:) } + let(:estimate) { create(:estimate, cost_type: nil, request:) } it "raises an expected error" do expect { estimate_decorator.data }.to raise_error(NoMethodError, "undefined method `to_sym' for nil:NilClass") diff --git a/spec/decorators/report_list_decorator_spec.rb b/spec/decorators/report_list_decorator_spec.rb index 2a31b7a1..b479d7b8 100644 --- a/spec/decorators/report_list_decorator_spec.rb +++ b/spec/decorators/report_list_decorator_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe ReportListDecorator, type: :model do subject(:report_list_decorator) do - described_class.new([FactoryBot.create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) + described_class.new([create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) end let(:params_hash) { {} } @@ -202,7 +202,7 @@ describe "#department_filter_urls" do subject(:report_list_decorator) do - described_class.new([FactoryBot.create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) + described_class.new([create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) end let(:status_filter) { "" } @@ -239,12 +239,12 @@ describe "#supervisor_filter_urls" do subject(:report_list_decorator) do - described_class.new([FactoryBot.create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) + described_class.new([create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) end - let(:supervisor) { FactoryBot.create :staff_profile, :with_department } - let(:mid_level) { FactoryBot.create :staff_profile, supervisor: } - let(:mid_level2) { FactoryBot.create :staff_profile, supervisor: } + let(:supervisor) { create(:staff_profile, :with_department) } + let(:mid_level) { create(:staff_profile, supervisor:) } + let(:mid_level2) { create(:staff_profile, supervisor:) } let(:status_filter) { "" } let(:filters) do @@ -256,10 +256,10 @@ end before do - FactoryBot.create :staff_profile, supervisor: mid_level - FactoryBot.create :staff_profile, supervisor: mid_level - FactoryBot.create :staff_profile, supervisor: mid_level2 - FactoryBot.create :staff_profile, supervisor: mid_level2 + create(:staff_profile, supervisor: mid_level) + create(:staff_profile, supervisor: mid_level) + create(:staff_profile, supervisor: mid_level2) + create(:staff_profile, supervisor: mid_level2) end it "returns a list of supervisor filter urls" do @@ -318,7 +318,7 @@ end context "department filter applied" do - let(:department) { FactoryBot.create :department } + let(:department) { create(:department) } let(:params_hash) { { "filters" => { "department" => department.number } } } it "returns a link to clear the approved status filter" do @@ -327,7 +327,7 @@ end context "supervisor filter applied" do - let(:supervisor) { FactoryBot.create :staff_profile, :with_department } + let(:supervisor) { create(:staff_profile, :with_department) } let(:params_hash) { { "filters" => { "supervisor" => supervisor.id } } } it "returns a link to clear the approved status filter" do @@ -384,7 +384,7 @@ describe "current_department_filter_label" do subject(:report_list_decorator) do - described_class.new([FactoryBot.create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) + described_class.new([create(:absence_request)], params_hash:, params_manager_class: ReportsParamsManager) end it "returns default when no filter is applied" do @@ -393,7 +393,7 @@ context "a department filter is applied" do let(:params_hash) { { "filters" => { "department" => department.number } } } - let(:department) { FactoryBot.create :department } + let(:department) { create(:department) } it "returns the department name" do expect(report_list_decorator.current_department_filter_label).to eq("Department: #{department.name}") @@ -475,8 +475,8 @@ described_class.new([absence_request.request, travel_request.request], params_hash:) end - let(:absence_request) { AbsenceRequestDecorator.new(FactoryBot.create(:absence_request, hours_requested: 7.25)) } - let(:travel_request) { TravelRequestDecorator.new(FactoryBot.create(:travel_request)) } + let(:absence_request) { AbsenceRequestDecorator.new(create(:absence_request, hours_requested: 7.25)) } + let(:travel_request) { TravelRequestDecorator.new(create(:travel_request)) } it "is a json array for an absence and travel request" do RSpec::Support::ObjectFormatter.default_instance.max_formatted_output_length = nil diff --git a/spec/decorators/request_list_decorator_spec.rb b/spec/decorators/request_list_decorator_spec.rb index e7251b13..fbe5c3bd 100644 --- a/spec/decorators/request_list_decorator_spec.rb +++ b/spec/decorators/request_list_decorator_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe RequestListDecorator, type: :model do subject(:request_list_decorator) do - described_class.new([FactoryBot.create(:absence_request)], params_hash:) + described_class.new([create(:absence_request)], params_hash:) end let(:params_hash) { {} } diff --git a/spec/decorators/travel_request_decorator_spec.rb b/spec/decorators/travel_request_decorator_spec.rb index be0673ea..e3b88924 100644 --- a/spec/decorators/travel_request_decorator_spec.rb +++ b/spec/decorators/travel_request_decorator_spec.rb @@ -5,7 +5,7 @@ RSpec.describe TravelRequestDecorator, type: :model do subject(:travel_request_decorator) { described_class.new(travel_request) } - let(:travel_request) { FactoryBot.create(:travel_request) } + let(:travel_request) { create(:travel_request) } describe "attributes relevant to TravelRequest" do it { is_expected.to respond_to :end_date } @@ -32,7 +32,7 @@ end context "when travel_category is Business" do - let(:travel_request) { FactoryBot.create(:travel_request, travel_category: :business) } + let(:travel_request) { create(:travel_request, travel_category: :business) } it "returns the correct lux icon" do expect(travel_request_decorator.travel_category_icon).to eq "lux-icon-globe" @@ -40,7 +40,7 @@ end context "when travel_category is professional development" do - let(:travel_request) { FactoryBot.create(:travel_request, travel_category: :professional_development) } + let(:travel_request) { create(:travel_request, travel_category: :professional_development) } it "returns the correct lux icon" do expect(travel_request_decorator.travel_category_icon).to eq "lux-icon-globe" @@ -49,7 +49,7 @@ end describe "#formatted_start_date" do - let(:travel_request) { FactoryBot.create(:travel_request, start_date: Time.zone.parse("2019-07-04 12:12")) } + let(:travel_request) { create(:travel_request, start_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated start date" do expect(travel_request_decorator.formatted_start_date).to eq "07/04/2019" @@ -67,7 +67,7 @@ end describe "#formatted_full_start_date" do - let(:travel_request) { FactoryBot.create(:travel_request, start_date: Time.zone.parse("2019-07-04 12:12")) } + let(:travel_request) { create(:travel_request, start_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated start date" do expect(travel_request_decorator.formatted_full_start_date).to eq "July 4, 2019" @@ -75,7 +75,7 @@ end describe "#formatted_end_date" do - let(:travel_request) { FactoryBot.create(:travel_request, end_date: Time.zone.parse("2019-07-04 12:12")) } + let(:travel_request) { create(:travel_request, end_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated end date" do expect(travel_request_decorator.formatted_end_date).to eq "07/04/2019" @@ -93,7 +93,7 @@ end describe "#formatted_full_end_date" do - let(:travel_request) { FactoryBot.create(:travel_request, end_date: Time.zone.parse("2019-07-04 12:12")) } + let(:travel_request) { create(:travel_request, end_date: Time.zone.parse("2019-07-04 12:12")) } it "returns a formated end date" do expect(travel_request_decorator.formatted_full_end_date).to eq "July 4, 2019" @@ -101,14 +101,14 @@ end describe "#status_icon" do - let(:travel_request) { FactoryBot.create(:travel_request) } + let(:travel_request) { create(:travel_request) } it "returns the correct lux icon" do expect(travel_request_decorator.status_icon).to eq "clock" end context "when travel has been approved" do - let(:travel_request) { FactoryBot.create(:travel_request, action: :approve) } + let(:travel_request) { create(:travel_request, action: :approve) } it "returns the correct lux icon" do expect(travel_request_decorator.status_icon).to eq "approved" @@ -116,7 +116,7 @@ end context "when travel has been denied" do - let(:travel_request) { FactoryBot.create(:travel_request, action: :deny) } + let(:travel_request) { create(:travel_request, action: :deny) } it "returns the correct lux icon" do expect(travel_request_decorator.status_icon).to eq "denied" @@ -124,7 +124,7 @@ end context "when travel has been changes_requested" do - let(:travel_request) { FactoryBot.create(:travel_request, action: :change_request) } + let(:travel_request) { create(:travel_request, action: :change_request) } it "returns the correct lux icon" do expect(travel_request_decorator.status_icon).to eq "refresh" @@ -132,7 +132,7 @@ end context "when travel has been canceled" do - let(:travel_request) { FactoryBot.create(:travel_request, action: :cancel) } + let(:travel_request) { create(:travel_request, action: :cancel) } it "returns the correct lux icon" do expect(travel_request_decorator.status_icon).to eq "alert" @@ -141,7 +141,7 @@ end describe "#latest_status" do - let(:travel_request) { FactoryBot.create(:travel_request) } + let(:travel_request) { create(:travel_request) } let(:today) { Time.zone.now } it "returns the status and the createddate" do @@ -150,7 +150,7 @@ end context "it has been approved and then canceled" do - let(:travel_request) { FactoryBot.create(:travel_request, action: :approve) } + let(:travel_request) { create(:travel_request, action: :approve) } it "returns the last created status and date" do travel_request.cancel!(agent: travel_request.creator) @@ -160,8 +160,8 @@ end context "approved but waiting on further review" do - let(:creator) { FactoryBot.create :staff_profile, :with_supervisor } - let(:travel_request) { FactoryBot.create(:travel_request, creator:) } + let(:creator) { create(:staff_profile, :with_supervisor) } + let(:travel_request) { create(:travel_request, creator:) } it "returns pending futher review" do travel_request.approve!(agent: travel_request.creator.supervisor) @@ -177,7 +177,7 @@ end context "with estimate" do - let(:travel_request) { FactoryBot.create(:travel_request, :with_note_and_estimate) } + let(:travel_request) { create(:travel_request, :with_note_and_estimate) } it "returns json data" do expect(travel_request_decorator.estimates_json).to eq( @@ -190,24 +190,24 @@ describe "#notes_and_changes" do let(:department_head) do - FactoryBot.create(:staff_profile, :as_department_head, given_name: "Department", surname: "Head") + create(:staff_profile, :as_department_head, given_name: "Department", surname: "Head") end let(:admin_assistant) do - FactoryBot.create(:staff_profile, given_name: "Admin", surname: "Assistant", department: department_head.department) + create(:staff_profile, given_name: "Admin", surname: "Assistant", department: department_head.department) end let(:supervisor) do - FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Supervisor", department: department_head.department, - supervisor: department_head) + create(:staff_profile, given_name: "Sally", surname: "Supervisor", department: department_head.department, + supervisor: department_head) end let(:staff) do - FactoryBot.create(:staff_profile, given_name: "Staff", surname: "Person", department: department_head.department, - supervisor:) + create(:staff_profile, given_name: "Staff", surname: "Person", department: department_head.department, + supervisor:) end let(:travel_request) do - request = FactoryBot.create(:travel_request, creator: staff) - request.notes << FactoryBot.build(:note, content: "Please approve", creator: staff) + request = create(:travel_request, creator: staff) + request.notes << build(:note, content: "Please approve", creator: staff) request.approve(agent: supervisor) - request.notes << FactoryBot.build(:note, content: "looks good", creator: supervisor) + request.notes << build(:note, content: "looks good", creator: supervisor) department_head.current_delegate = admin_assistant request.approve(agent: department_head) request @@ -230,12 +230,12 @@ context "when changes requested" do let(:travel_request) do - request = FactoryBot.create(:travel_request, creator: staff) - request.notes << FactoryBot.build(:note, content: "Please approve", creator: staff) + request = create(:travel_request, creator: staff) + request.notes << build(:note, content: "Please approve", creator: staff) request.approve(agent: supervisor) - request.notes << FactoryBot.build(:note, content: "looks good", creator: supervisor) + request.notes << build(:note, content: "looks good", creator: supervisor) request.change_request(agent: department_head) - request.notes << FactoryBot.build(:note, content: "change stuff", creator: department_head) + request.notes << build(:note, content: "change stuff", creator: department_head) request.fix_requested_changes(agent: staff) request end @@ -262,14 +262,14 @@ context "when delegate created" do let(:travel_request) do - request = FactoryBot.create(:travel_request, creator: staff) - request.notes << FactoryBot.build(:note, content: "This request was created by #{supervisor.full_name}", - creator: supervisor) - request.notes << FactoryBot.build(:note, content: "Please approve", creator: staff) + request = create(:travel_request, creator: staff) + request.notes << build(:note, content: "This request was created by #{supervisor.full_name}", + creator: supervisor) + request.notes << build(:note, content: "Please approve", creator: staff) request.approve(agent: supervisor) - request.notes << FactoryBot.build(:note, content: "looks good", creator: supervisor) + request.notes << build(:note, content: "looks good", creator: supervisor) request.change_request(agent: department_head) - request.notes << FactoryBot.build(:note, content: "change stuff", creator: department_head) + request.notes << build(:note, content: "change stuff", creator: department_head) request.fix_requested_changes(agent: staff) request end @@ -296,11 +296,11 @@ context "when without a note" do let(:travel_request) do - request = FactoryBot.create(:travel_request, creator: staff) + request = create(:travel_request, creator: staff) request.approve(agent: supervisor) - request.notes << FactoryBot.build(:note, content: "looks good", creator: supervisor) + request.notes << build(:note, content: "looks good", creator: supervisor) request.change_request(agent: department_head) - request.notes << FactoryBot.build(:note, content: "change stuff", creator: department_head) + request.notes << build(:note, content: "change stuff", creator: department_head) request.fix_requested_changes(agent: staff) request end @@ -325,13 +325,13 @@ end describe "#event_attendees" do - let(:staff_profile) { FactoryBot.create(:staff_profile, :with_department, given_name: "Jane") } - let(:staff_profile2) { FactoryBot.create(:staff_profile, :with_department, given_name: "Joe") } + let(:staff_profile) { create(:staff_profile, :with_department, given_name: "Jane") } + let(:staff_profile2) { create(:staff_profile, :with_department, given_name: "Joe") } let(:travel_request) do - FactoryBot.create(:travel_request, creator: staff_profile) + create(:travel_request, creator: staff_profile) end let(:travel_request2) do - FactoryBot.create(:travel_request, event_requests: travel_request.event_requests, creator: staff_profile2) + create(:travel_request, event_requests: travel_request.event_requests, creator: staff_profile2) end it "returns others who want to attend the same event" do @@ -345,16 +345,16 @@ end describe "#absent_staff" do - let(:staff_profile) { FactoryBot.create(:staff_profile, :with_department, given_name: "Jane") } + let(:staff_profile) { create(:staff_profile, :with_department, given_name: "Jane") } let(:staff_profile2) do - FactoryBot.create(:staff_profile, supervisor: staff_profile.supervisor, department: staff_profile.department, - given_name: "Joe") + create(:staff_profile, supervisor: staff_profile.supervisor, department: staff_profile.department, + given_name: "Joe") end let(:travel_request) do - FactoryBot.create(:travel_request, creator: staff_profile) + create(:travel_request, creator: staff_profile) end let(:absence_request) do - FactoryBot.create(:absence_request, creator: staff_profile2) + create(:absence_request, creator: staff_profile2) end it "returns others who will be absent during the event time frame" do @@ -369,15 +369,15 @@ describe "#forward_statement" do it "returns a forward statement with out admin" do - staff_profile = FactoryBot.create(:staff_profile) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile) + travel_request = create(:travel_request, creator: staff_profile) travel_request_decorator = described_class.new(travel_request) expect(travel_request_decorator.forward_statement).to eq("The approval has been forwarded to your supervisor for their information.") end it "returns a forward statement with admin" do - staff_profile = FactoryBot.create(:staff_profile, :with_department) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) + staff_profile = create(:staff_profile, :with_department) + travel_request = create(:travel_request, creator: staff_profile) travel_request_decorator = described_class.new(travel_request) expect(travel_request_decorator.forward_statement).to eq("The approval has been forwarded to your supervisor and administrative assistant for their information.") end diff --git a/spec/features/decide_travel_request_spec.rb b/spec/features/decide_travel_request_spec.rb index 1d83d5f9..2ca172e3 100644 --- a/spec/features/decide_travel_request_spec.rb +++ b/spec/features/decide_travel_request_spec.rb @@ -3,27 +3,27 @@ require "rails_helper" RSpec.describe "Review Travel Request", type: :feature, js: true do - let(:user) { FactoryBot.create :user } + let(:user) { create(:user) } let(:department_head) do - profile = FactoryBot.create :staff_profile, user: user, given_name: "Sally", surname: "Smith" - FactoryBot.create :department, head: profile + profile = create(:staff_profile, user: user, given_name: "Sally", surname: "Smith") + create(:department, head: profile) profile end let(:staff_profile) do - FactoryBot.create :staff_profile, department: department_head.department, given_name: "John", surname: "Doe", - supervisor: department_head + create(:staff_profile, department: department_head.department, given_name: "John", surname: "Doe", + supervisor: department_head) end let(:event_with_target_name) do - FactoryBot.build( + build( :event_request, - recurring_event: FactoryBot.build(:recurring_event, name: "Different test name") + recurring_event: build(:recurring_event, name: "Different test name") ) end let(:travel_request_with_target_event_name) do - FactoryBot.create(:travel_request, event_requests: [event_with_target_name]) + create(:travel_request, event_requests: [event_with_target_name]) end - let(:travel_request) { FactoryBot.create :travel_request, creator: staff_profile } + let(:travel_request) { create(:travel_request, creator: staff_profile) } before do sign_in user diff --git a/spec/features/delegate_spec.rb b/spec/features/delegate_spec.rb index b275f875..2a846ecb 100644 --- a/spec/features/delegate_spec.rb +++ b/spec/features/delegate_spec.rb @@ -3,16 +3,16 @@ require "rails_helper" RSpec.describe "Delegate", type: :feature, js: true do - let(:user) { FactoryBot.create :user } + let(:user) { create(:user) } let(:staff_profile) do - FactoryBot.create :staff_profile, :with_department, :with_supervisor, given_name: "Sally", user: + create(:staff_profile, :with_department, :with_supervisor, given_name: "Sally", user:) end - let(:delegate_user) { FactoryBot.create :user } + let(:delegate_user) { create(:user) } let(:delegate_staff_profile) do - FactoryBot.create :staff_profile, :with_department, :with_supervisor, given_name: "Joe", surname: "Schmo", - user: delegate_user + create(:staff_profile, :with_department, :with_supervisor, given_name: "Joe", surname: "Schmo", + user: delegate_user) end - let(:delegate) { FactoryBot.create :delegate, delegator: delegate_staff_profile, delegate: staff_profile } + let(:delegate) { create(:delegate, delegator: delegate_staff_profile, delegate: staff_profile) } before do sign_in user @@ -20,12 +20,12 @@ end it "I can see my requests and my delegates" do - FactoryBot.create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), - end_date: Date.parse("2019-10-13")) - FactoryBot.create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-10-12"), - end_date: Date.parse("2019-10-13")) - FactoryBot.create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-09-12"), - end_date: Date.parse("2019-09-13")) + create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), + end_date: Date.parse("2019-10-13")) + create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-10-12"), + end_date: Date.parse("2019-10-13")) + create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-09-12"), + end_date: Date.parse("2019-09-13")) visit "/my_requests" assert_selector ".my-request .lux-card", count: 1 @@ -58,12 +58,12 @@ it "I can see my requests and my delegates with pending for absence" do pending "See: https://github.com/pulibrary/approvals/issues/1116" - FactoryBot.create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), - end_date: Date.parse("2019-10-13")) - FactoryBot.create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-10-12"), - end_date: Date.parse("2019-10-13")) - FactoryBot.create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-09-12"), - end_date: Date.parse("2019-09-13")) + create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), + end_date: Date.parse("2019-10-13")) + create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-10-12"), + end_date: Date.parse("2019-10-13")) + create(:absence_request, creator: delegate_staff_profile, start_date: Date.parse("2019-09-12"), + end_date: Date.parse("2019-09-13")) visit "/my_requests" assert_selector ".my-request .lux-card", count: 1 diff --git a/spec/features/my_approval_requests_spec.rb b/spec/features/my_approval_requests_spec.rb index a4d1c1a1..9fc4c7d4 100644 --- a/spec/features/my_approval_requests_spec.rb +++ b/spec/features/my_approval_requests_spec.rb @@ -3,12 +3,12 @@ require "rails_helper" RSpec.describe "My Approval Requests", type: :feature, js: true do - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, :with_department, :with_supervisor, user: } - let(:employee_user) { FactoryBot.create :user, uid: "jdoe" } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, :with_department, :with_supervisor, user:) } + let(:employee_user) { create(:user, uid: "jdoe") } let(:employee) do - FactoryBot.create :staff_profile, supervisor: staff_profile, department: staff_profile.department, given_name: "Jane", - surname: "Doe", user: employee_user + create(:staff_profile, supervisor: staff_profile, department: staff_profile.department, given_name: "Jane", + surname: "Doe", user: employee_user) end before do @@ -21,19 +21,19 @@ end it "I can filter my requests" do - FactoryBot.create(:absence_request, creator: employee, start_date: Date.parse("2019-10-21"), - end_date: Date.parse("2019-10-23")) + create(:absence_request, creator: employee, start_date: Date.parse("2019-10-21"), + end_date: Date.parse("2019-10-23")) # sick_leave = FactoryBot.create(:absence_request, creator: employee, absence_type: "sick", start_date: Date.parse("2019-10-21"), end_date: Date.parse("2019-10-23")) - FactoryBot.create(:absence_request, creator: employee, absence_type: "sick", start_date: Date.parse("2019-10-21"), - end_date: Date.parse("2019-10-23")) - recurring_event = FactoryBot.create(:recurring_event, name: "Awesome Event", - description: "The most awesome event!!!") - event_request = FactoryBot.build(:event_request, recurring_event:, - start_date: Date.parse("2019-10-21"), end_date: Date.parse("2019-10-23")) - FactoryBot.create(:travel_request, creator: employee, - start_date: Date.parse("2019-10-21"), - end_date: Date.parse("2019-10-23"), - event_requests: [event_request]) + create(:absence_request, creator: employee, absence_type: "sick", start_date: Date.parse("2019-10-21"), + end_date: Date.parse("2019-10-23")) + recurring_event = create(:recurring_event, name: "Awesome Event", + description: "The most awesome event!!!") + event_request = build(:event_request, recurring_event:, + start_date: Date.parse("2019-10-21"), end_date: Date.parse("2019-10-23")) + create(:travel_request, creator: employee, + start_date: Date.parse("2019-10-21"), + end_date: Date.parse("2019-10-23"), + event_requests: [event_request]) visit "/my_approval_requests" assert_selector ".my-request .lux-card", count: Request.count @@ -56,12 +56,12 @@ end it "I can search my requests" do - absence_request = FactoryBot.create(:absence_request, creator: employee) - absence_request2 = FactoryBot.create(:absence_request, creator: employee) - travel_request = FactoryBot.create(:travel_request, creator: employee) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request) - FactoryBot.create(:note, content: "flamingoes are pink because of shrimp", request: absence_request2) - FactoryBot.create(:note, content: "elephants love balloons", request: travel_request) + absence_request = create(:absence_request, creator: employee) + absence_request2 = create(:absence_request, creator: employee) + travel_request = create(:travel_request, creator: employee) + create(:note, content: "elephants love balloons", request: absence_request) + create(:note, content: "flamingoes are pink because of shrimp", request: absence_request2) + create(:note, content: "elephants love balloons", request: travel_request) visit "/my_approval_requests" # filter with out query diff --git a/spec/features/my_requests_spec.rb b/spec/features/my_requests_spec.rb index 8ecdeb0b..4694f6a4 100644 --- a/spec/features/my_requests_spec.rb +++ b/spec/features/my_requests_spec.rb @@ -3,8 +3,8 @@ require "rails_helper" RSpec.describe "My Requests", type: :feature, js: true do - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, :with_department, :with_supervisor, user: } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, :with_department, :with_supervisor, user:) } before do sign_in user @@ -14,31 +14,31 @@ xit "I can filter my requests" do Timecop.freeze(Time.utc(2022)) - FactoryBot.create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), - end_date: Date.parse("2019-10-13")) - FactoryBot.create(:absence_request, creator: staff_profile, action: "approve", - start_date: Date.parse("2019-10-13"), end_date: Date.parse("2019-10-14")) - FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick", - start_date: Date.parse("2019-10-14"), end_date: Date.parse("2019-10-15")) - FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick", action: "approve", - start_date: Date.parse("2019-10-15"), end_date: Date.parse("2019-10-16")) - recurring_event = FactoryBot.create(:recurring_event, name: "Awesome Event", - description: "The most awesome event!!!") - event_request = FactoryBot.build(:event_request, recurring_event:, - start_date: Date.parse("2019-10-21"), end_date: Date.parse("2019-10-23")) - FactoryBot.create(:travel_request, creator: staff_profile, start_date: Date.parse("2019-10-21"), - end_date: Date.parse("2019-10-23"), event_requests: [event_request]) - recurring_event2 = FactoryBot.create(:recurring_event, name: "Best Event Ever", - description: "The best event we could ever go to!!!") - event_request2 = FactoryBot.build(:event_request, recurring_event: recurring_event2, - start_date: Date.parse("2020-10-21"), end_date: Date.parse("2020-10-23")) - FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", start_date: Date.parse("2020-10-20"), - end_date: Date.parse("2012-10-23"), event_requests: [event_request2]) - recurring_event3 = FactoryBot.create(:recurring_event, name: "Wow", description: "Wow you must go!!!") - event_request3 = FactoryBot.build(:event_request, recurring_event: recurring_event3, - start_date: Date.parse("2020-05-21"), end_date: Date.parse("2020-05-23")) - FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", - travel_category: "professional_development", start_date: Date.parse("2020-05-21"), end_date: Date.parse("2020-05-23"), event_requests: [event_request3]) + create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), + end_date: Date.parse("2019-10-13")) + create(:absence_request, creator: staff_profile, action: "approve", + start_date: Date.parse("2019-10-13"), end_date: Date.parse("2019-10-14")) + create(:absence_request, creator: staff_profile, absence_type: "sick", + start_date: Date.parse("2019-10-14"), end_date: Date.parse("2019-10-15")) + create(:absence_request, creator: staff_profile, absence_type: "sick", action: "approve", + start_date: Date.parse("2019-10-15"), end_date: Date.parse("2019-10-16")) + recurring_event = create(:recurring_event, name: "Awesome Event", + description: "The most awesome event!!!") + event_request = build(:event_request, recurring_event:, + start_date: Date.parse("2019-10-21"), end_date: Date.parse("2019-10-23")) + create(:travel_request, creator: staff_profile, start_date: Date.parse("2019-10-21"), + end_date: Date.parse("2019-10-23"), event_requests: [event_request]) + recurring_event2 = create(:recurring_event, name: "Best Event Ever", + description: "The best event we could ever go to!!!") + event_request2 = build(:event_request, recurring_event: recurring_event2, + start_date: Date.parse("2020-10-21"), end_date: Date.parse("2020-10-23")) + create(:travel_request, creator: staff_profile, action: "approve", start_date: Date.parse("2020-10-20"), + end_date: Date.parse("2012-10-23"), event_requests: [event_request2]) + recurring_event3 = create(:recurring_event, name: "Wow", description: "Wow you must go!!!") + event_request3 = build(:event_request, recurring_event: recurring_event3, + start_date: Date.parse("2020-05-21"), end_date: Date.parse("2020-05-23")) + create(:travel_request, creator: staff_profile, action: "approve", + travel_category: "professional_development", start_date: Date.parse("2020-05-21"), end_date: Date.parse("2020-05-23"), event_requests: [event_request3]) visit "/my_requests" assert_selector ".my-request .lux-card", count: Request.count @@ -66,9 +66,9 @@ # Re-enable this test after https://github.com/pulibrary/lux-design-system/issues/348 is completed and added to Approvals xit "I can sort my requests" do - yesterday_request = FactoryBot.create(:absence_request, creator: staff_profile, start_date: Time.zone.yesterday) - today_request = FactoryBot.create(:travel_request, creator: staff_profile, start_date: Time.zone.today) - tomorrow_request = FactoryBot.create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) + yesterday_request = create(:absence_request, creator: staff_profile, start_date: Time.zone.yesterday) + today_request = create(:travel_request, creator: staff_profile, start_date: Time.zone.today) + tomorrow_request = create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) visit "/my_requests" @@ -96,12 +96,12 @@ end it "I can search my requests" do - absence_request = FactoryBot.create(:absence_request, creator: staff_profile, action: :approve) - absence_request2 = FactoryBot.create(:absence_request, creator: staff_profile, action: :deny) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile, action: :approve) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request2) - FactoryBot.create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) + absence_request = create(:absence_request, creator: staff_profile, action: :approve) + absence_request2 = create(:absence_request, creator: staff_profile, action: :deny) + travel_request = create(:travel_request, creator: staff_profile, action: :approve) + create(:note, content: "elephants love balloons", request: absence_request) + create(:note, content: "elephants love balloons", request: absence_request2) + create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) visit "/my_requests" # filter with no search query diff --git a/spec/features/new_absence_request_spec.rb b/spec/features/new_absence_request_spec.rb index cd422ddf..ea75ff84 100644 --- a/spec/features/new_absence_request_spec.rb +++ b/spec/features/new_absence_request_spec.rb @@ -3,10 +3,10 @@ require "rails_helper" RSpec.describe "New Absence Request", type: :feature, js: true do - let(:user) { FactoryBot.create :user } + let(:user) { create(:user) } let(:staff_profile) do - FactoryBot.create :staff_profile, :with_department, user:, given_name: "Sally", surname: "Smith", - vacation_balance: 90.1, personal_balance: 16.0, sick_balance: 100.0 + create(:staff_profile, :with_department, user:, given_name: "Sally", surname: "Smith", + vacation_balance: 90.1, personal_balance: 16.0, sick_balance: 100.0) end before do diff --git a/spec/features/new_travel_request_spec.rb b/spec/features/new_travel_request_spec.rb index 30da08c0..5a2aff1d 100644 --- a/spec/features/new_travel_request_spec.rb +++ b/spec/features/new_travel_request_spec.rb @@ -3,10 +3,10 @@ require "rails_helper" RSpec.describe "New Travel Request", type: :feature, js: true do - let(:user) { FactoryBot.create :user } + let(:user) { create(:user) } let(:staff_profile) do - FactoryBot.create :staff_profile, :with_department, user:, given_name: "Sally", surname: "Smith", - vacation_balance: 90.1, personal_balance: 16.0, sick_balance: 100.0 + create(:staff_profile, :with_department, user:, given_name: "Sally", surname: "Smith", + vacation_balance: 90.1, personal_balance: 16.0, sick_balance: 100.0) end before do @@ -15,8 +15,8 @@ end context "with other created events" do - let(:travel_request_1) { FactoryBot.create(:travel_request) } - let(:travel_request_2) { FactoryBot.create(:travel_request) } + let(:travel_request_1) { create(:travel_request) } + let(:travel_request_2) { create(:travel_request) } before do travel_request_1 diff --git a/spec/features/report_spec.rb b/spec/features/report_spec.rb index 485ff421..d871f9f7 100644 --- a/spec/features/report_spec.rb +++ b/spec/features/report_spec.rb @@ -3,10 +3,10 @@ require "rails_helper" RSpec.describe "My Requests", type: :feature, js: true do - let(:user) { FactoryBot.create :user } - let(:department) { FactoryBot.create :department, :with_head, name: "ITIMS" } + let(:user) { create(:user) } + let(:department) { create(:department, :with_head, name: "ITIMS") } let(:staff_profile) do - FactoryBot.create :staff_profile, :with_supervisor, department:, user:, given_name: "Pat", surname: "Doe" + create(:staff_profile, :with_supervisor, department:, user:, given_name: "Pat", surname: "Doe") end before do @@ -21,36 +21,36 @@ xit "I can filter reports" do Timecop.freeze(Time.utc(2019, "oct", 20)) - direct_report = FactoryBot.create :staff_profile, supervisor: staff_profile, department: staff_profile.department, - given_name: "Sally", surname: "Smith" - FactoryBot.create(:absence_request, creator: staff_profile.supervisor, start_date: Date.parse("2019-10-12"), - end_date: Date.parse("2019-10-13")) - FactoryBot.create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), - end_date: Date.parse("2019-10-13"), hours_requested: 10.3) - FactoryBot.create(:absence_request, creator: direct_report, action: "approve", - start_date: Date.parse("2019-10-13"), end_date: Date.parse("2019-10-14"), hours_requested: 15.5) - FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick", - start_date: Date.parse("2019-10-14"), end_date: Date.parse("2019-10-15"), hours_requested: 10) - FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick", action: "approve", start_date: Date.parse("2019-10-15"), - end_date: Date.parse("2019-10-16"), hours_requested: 17.3) - recurring_event = FactoryBot.create(:recurring_event, name: "Awesome Event", - description: "The most awesome event!!!") - event_request = FactoryBot.build(:event_request, recurring_event:, - start_date: Date.parse("2019-10-21"), end_date: Date.parse("2019-10-23")) - FactoryBot.create(:travel_request, creator: staff_profile, start_date: Date.parse("2019-10-21"), - end_date: Date.parse("2019-10-23"), event_requests: [event_request]) - recurring_event2 = FactoryBot.create(:recurring_event, name: "Best Event Ever", - description: "The best event we could ever go to!!!") - event_request2 = FactoryBot.build(:event_request, recurring_event: recurring_event2, - start_date: Date.parse("2020-10-21"), end_date: Date.parse("2020-10-23")) - FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", start_date: Date.parse("2020-10-20"), - end_date: Date.parse("2020-10-23"), event_requests: [event_request2]) - recurring_event3 = FactoryBot.create(:recurring_event, name: "Wow", description: "Wow you must go!!!") - event_request3 = FactoryBot.build(:event_request, recurring_event: recurring_event3, - start_date: Date.parse("2020-05-21"), end_date: Date.parse("2020-05-23")) - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_profile, action: "approve", - travel_category: "professional_development", start_date: Date.parse("2020-05-21"), - end_date: Date.parse("2020-05-23"), event_requests: [event_request3]) + direct_report = create(:staff_profile, supervisor: staff_profile, department: staff_profile.department, + given_name: "Sally", surname: "Smith") + create(:absence_request, creator: staff_profile.supervisor, start_date: Date.parse("2019-10-12"), + end_date: Date.parse("2019-10-13")) + create(:absence_request, creator: staff_profile, start_date: Date.parse("2019-10-12"), + end_date: Date.parse("2019-10-13"), hours_requested: 10.3) + create(:absence_request, creator: direct_report, action: "approve", + start_date: Date.parse("2019-10-13"), end_date: Date.parse("2019-10-14"), hours_requested: 15.5) + create(:absence_request, creator: staff_profile, absence_type: "sick", + start_date: Date.parse("2019-10-14"), end_date: Date.parse("2019-10-15"), hours_requested: 10) + create(:absence_request, creator: staff_profile, absence_type: "sick", action: "approve", start_date: Date.parse("2019-10-15"), + end_date: Date.parse("2019-10-16"), hours_requested: 17.3) + recurring_event = create(:recurring_event, name: "Awesome Event", + description: "The most awesome event!!!") + event_request = build(:event_request, recurring_event:, + start_date: Date.parse("2019-10-21"), end_date: Date.parse("2019-10-23")) + create(:travel_request, creator: staff_profile, start_date: Date.parse("2019-10-21"), + end_date: Date.parse("2019-10-23"), event_requests: [event_request]) + recurring_event2 = create(:recurring_event, name: "Best Event Ever", + description: "The best event we could ever go to!!!") + event_request2 = build(:event_request, recurring_event: recurring_event2, + start_date: Date.parse("2020-10-21"), end_date: Date.parse("2020-10-23")) + create(:travel_request, creator: staff_profile, action: "approve", start_date: Date.parse("2020-10-20"), + end_date: Date.parse("2020-10-23"), event_requests: [event_request2]) + recurring_event3 = create(:recurring_event, name: "Wow", description: "Wow you must go!!!") + event_request3 = build(:event_request, recurring_event: recurring_event3, + start_date: Date.parse("2020-05-21"), end_date: Date.parse("2020-05-23")) + create(:travel_request, :with_note_and_estimate, creator: staff_profile, action: "approve", + travel_category: "professional_development", start_date: Date.parse("2020-05-21"), + end_date: Date.parse("2020-05-23"), event_requests: [event_request3]) visit "/" diff --git a/spec/mailers/approve_request_mailer_spec.rb b/spec/mailers/approve_request_mailer_spec.rb index c1828fec..738a321d 100644 --- a/spec/mailers/approve_request_mailer_spec.rb +++ b/spec/mailers/approve_request_mailer_spec.rb @@ -4,24 +4,24 @@ RSpec.describe ApproveMailer, type: :mailer do let(:supervisor) do - aa = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith") - head = FactoryBot.create(:staff_profile, given_name: "Department", surname: "Head") - department = FactoryBot.create(:department, head:, admin_assistants: [aa]) - FactoryBot.create :staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head + aa = create(:staff_profile, given_name: "Sally", surname: "Smith") + head = create(:staff_profile, given_name: "Department", surname: "Head") + department = create(:department, head:, admin_assistants: [aa]) + create(:staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head) end - let(:user) { FactoryBot.create :user, uid: "jd4" } + let(:user) { create(:user, uid: "jd4") } let(:creator) do - FactoryBot.create :staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, - department: supervisor.department + create(:staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, + department: supervisor.department) end let(:travel_request) do - FactoryBot.create :travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31"), - travel_category: "professional_development" + create(:travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31"), + travel_category: "professional_development") end let(:absence_request) do - FactoryBot.create :absence_request, creator:, start_date: Date.parse("2019/12/30"), - end_date: Date.parse("2019/12/31") + create(:absence_request, creator:, start_date: Date.parse("2019/12/30"), + end_date: Date.parse("2019/12/31")) end let(:today_formatted) { Time.zone.now.strftime(Rails.configuration.short_date_format) } diff --git a/spec/mailers/cancel_mailer_spec.rb b/spec/mailers/cancel_mailer_spec.rb index 07f93592..7765eaf0 100644 --- a/spec/mailers/cancel_mailer_spec.rb +++ b/spec/mailers/cancel_mailer_spec.rb @@ -4,23 +4,23 @@ RSpec.describe CancelMailer, type: :mailer do let(:supervisor) do - aa = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith") - head = FactoryBot.create(:staff_profile, given_name: "Department", surname: "Head") - department = FactoryBot.create(:department, head:, admin_assistants: [aa]) - FactoryBot.create :staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head + aa = create(:staff_profile, given_name: "Sally", surname: "Smith") + head = create(:staff_profile, given_name: "Department", surname: "Head") + department = create(:department, head:, admin_assistants: [aa]) + create(:staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head) end - let(:user) { FactoryBot.create :user, uid: "jd4" } + let(:user) { create(:user, uid: "jd4") } let(:creator) do - FactoryBot.create :staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, - department: supervisor.department + create(:staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, + department: supervisor.department) end let(:travel_request) do - FactoryBot.create :travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31") + create(:travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31")) end let(:absence_request) do - FactoryBot.create :absence_request, creator:, start_date: Date.parse("2019/12/30"), - end_date: Date.parse("2019/12/31") + create(:absence_request, creator:, start_date: Date.parse("2019/12/30"), + end_date: Date.parse("2019/12/31")) end let(:today_formatted) { Time.zone.now.strftime(Rails.configuration.short_date_format) } diff --git a/spec/mailers/change_request_mailer_spec.rb b/spec/mailers/change_request_mailer_spec.rb index dbd2a386..8a14bb60 100644 --- a/spec/mailers/change_request_mailer_spec.rb +++ b/spec/mailers/change_request_mailer_spec.rb @@ -4,19 +4,19 @@ RSpec.describe ChangeRequestMailer, type: :mailer do let(:supervisor) do - aa = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith") - head = FactoryBot.create(:staff_profile, given_name: "Department", surname: "Head") - department = FactoryBot.create(:department, head:, admin_assistants: [aa]) - FactoryBot.create :staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head + aa = create(:staff_profile, given_name: "Sally", surname: "Smith") + head = create(:staff_profile, given_name: "Department", surname: "Head") + department = create(:department, head:, admin_assistants: [aa]) + create(:staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head) end - let(:user) { FactoryBot.create :user, uid: "jd4" } + let(:user) { create(:user, uid: "jd4") } let(:creator) do - FactoryBot.create :staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, - department: supervisor.department + create(:staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, + department: supervisor.department) end let(:travel_request) do - FactoryBot.create :travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31") + create(:travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31")) end let(:today_formatted) { Time.zone.now.strftime(Rails.configuration.short_date_format) } diff --git a/spec/mailers/create_request_spec.rb b/spec/mailers/create_request_spec.rb index e675a7d7..4b6405fe 100644 --- a/spec/mailers/create_request_spec.rb +++ b/spec/mailers/create_request_spec.rb @@ -4,19 +4,19 @@ RSpec.describe CreateMailer, type: :mailer do let(:supervisor) do - aa = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith") - head = FactoryBot.create(:staff_profile, given_name: "Department", surname: "Head") - department = FactoryBot.create(:department, head:, admin_assistants: [aa]) - FactoryBot.create :staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head + aa = create(:staff_profile, given_name: "Sally", surname: "Smith") + head = create(:staff_profile, given_name: "Department", surname: "Head") + department = create(:department, head:, admin_assistants: [aa]) + create(:staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head) end - let(:user) { FactoryBot.create :user, uid: "jd4" } + let(:user) { create(:user, uid: "jd4") } let(:creator) do - FactoryBot.create :staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, - department: supervisor.department + create(:staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, + department: supervisor.department) end let(:travel_request) do - FactoryBot.create :travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31") + create(:travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31")) end let(:today_formatted) { Time.zone.now.strftime(Rails.configuration.short_date_format) } diff --git a/spec/mailers/deny_request_mailer_spec.rb b/spec/mailers/deny_request_mailer_spec.rb index 64f6d5e6..675bfe6c 100644 --- a/spec/mailers/deny_request_mailer_spec.rb +++ b/spec/mailers/deny_request_mailer_spec.rb @@ -4,23 +4,23 @@ RSpec.describe DenyMailer, type: :mailer do let(:supervisor) do - aa = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith") - head = FactoryBot.create(:staff_profile, given_name: "Department", surname: "Head") - department = FactoryBot.create(:department, head:, admin_assistants: [aa]) - FactoryBot.create :staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head + aa = create(:staff_profile, given_name: "Sally", surname: "Smith") + head = create(:staff_profile, given_name: "Department", surname: "Head") + department = create(:department, head:, admin_assistants: [aa]) + create(:staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head) end - let(:user) { FactoryBot.create :user, uid: "jd4" } + let(:user) { create(:user, uid: "jd4") } let(:creator) do - FactoryBot.create :staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, - department: supervisor.department + create(:staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, + department: supervisor.department) end let(:travel_request) do - FactoryBot.create :travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31") + create(:travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31")) end let(:absence_request) do - FactoryBot.create :absence_request, creator:, start_date: Date.parse("2019/12/30"), - end_date: Date.parse("2019/12/31") + create(:absence_request, creator:, start_date: Date.parse("2019/12/30"), + end_date: Date.parse("2019/12/31")) end let(:today_formatted) { Time.zone.now.strftime(Rails.configuration.short_date_format) } diff --git a/spec/mailers/fix_requested_changes_mailer_spec.rb b/spec/mailers/fix_requested_changes_mailer_spec.rb index ec43b498..aba923d6 100644 --- a/spec/mailers/fix_requested_changes_mailer_spec.rb +++ b/spec/mailers/fix_requested_changes_mailer_spec.rb @@ -4,19 +4,19 @@ RSpec.describe FixRequestedChangesMailer, type: :mailer do let(:supervisor) do - aa = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith") - head = FactoryBot.create(:staff_profile, given_name: "Department", surname: "Head") - department = FactoryBot.create(:department, head:, admin_assistants: [aa]) - FactoryBot.create :staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head + aa = create(:staff_profile, given_name: "Sally", surname: "Smith") + head = create(:staff_profile, given_name: "Department", surname: "Head") + department = create(:department, head:, admin_assistants: [aa]) + create(:staff_profile, department:, given_name: "Jane", surname: "Smith", supervisor: head) end - let(:user) { FactoryBot.create :user, uid: "jd4" } + let(:user) { create(:user, uid: "jd4") } let(:creator) do - FactoryBot.create :staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, - department: supervisor.department + create(:staff_profile, user:, given_name: "Joe", surname: "Doe", supervisor:, + department: supervisor.department) end let(:travel_request) do - FactoryBot.create :travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31") + create(:travel_request, creator:, start_date: Date.parse("2019/12/30"), end_date: Date.parse("2019/12/31")) end let(:today_formatted) { Time.zone.now.strftime(Rails.configuration.short_date_format) } diff --git a/spec/models/absence_request_spec.rb b/spec/models/absence_request_spec.rb index 2eeb4857..131595b0 100644 --- a/spec/models/absence_request_spec.rb +++ b/spec/models/absence_request_spec.rb @@ -5,9 +5,9 @@ RSpec.describe AbsenceRequest, type: :model do subject(:absence_request) { described_class.new creator: } - let(:creator_user) { FactoryBot.create :user, uid: "ssmith" } - let(:creator) { FactoryBot.create :staff_profile, given_name: "Sally", surname: "Smith", user: creator_user } - let(:user) { FactoryBot.create :staff_profile, :with_department } + let(:creator_user) { create(:user, uid: "ssmith") } + let(:creator) { create(:staff_profile, given_name: "Sally", surname: "Smith", user: creator_user) } + let(:user) { create(:staff_profile, :with_department) } describe "attributes relevant to absence requests" do it { is_expected.to respond_to :absence_type } @@ -39,8 +39,8 @@ end context "A saved absence request" do - let(:creator) { FactoryBot.create :staff_profile, :with_department } - let(:absence_request) { FactoryBot.create :absence_request, creator: } + let(:creator) { create(:staff_profile, :with_department) } + let(:absence_request) { create(:absence_request, creator:) } let(:supervisor) { creator.supervisor } let(:department_head) { creator.department.head } diff --git a/spec/models/delegate_spec.rb b/spec/models/delegate_spec.rb index b4b3e661..d5587a62 100644 --- a/spec/models/delegate_spec.rb +++ b/spec/models/delegate_spec.rb @@ -14,8 +14,8 @@ describe "Delegate creation" do it "Cannot create duplicate Delegates" do - delegator = FactoryBot.create(:staff_profile) - delegate = FactoryBot.create(:staff_profile) + delegator = create(:staff_profile) + delegate = create(:staff_profile) expect do described_class.create!(delegate:, delegator:) diff --git a/spec/models/department_spec.rb b/spec/models/department_spec.rb index b8b4020f..04a48fcb 100644 --- a/spec/models/department_spec.rb +++ b/spec/models/department_spec.rb @@ -16,8 +16,8 @@ describe "#destory" do it "destroys dependants" do - department = FactoryBot.create(:department) - aa = FactoryBot.create(:staff_profile) + department = create(:department) + aa = create(:staff_profile) department.admin_assistants << aa department.save expect { department.destroy }.to change(AdminAssistantsDepartment, :count).by(-1) diff --git a/spec/models/event_request_spec.rb b/spec/models/event_request_spec.rb index cd4dfaed..d140277c 100644 --- a/spec/models/event_request_spec.rb +++ b/spec/models/event_request_spec.rb @@ -16,8 +16,8 @@ describe "before_save callback" do it "updates the event title of a travel request" do - recurring_event = FactoryBot.create(:recurring_event, name: "Ice Capades") - creator = FactoryBot.create(:staff_profile) + recurring_event = create(:recurring_event, name: "Ice Capades") + creator = create(:staff_profile) event_requests_attributes = [ recurring_event_id: recurring_event.id, location: "Beijing", diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index 0853e422..064989bb 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -13,12 +13,12 @@ describe "#all" do it "is ordered by created_by" do - absence_request = FactoryBot.create :absence_request - note1 = FactoryBot.create :note, request: absence_request - travel_request = FactoryBot.create :travel_request - note2 = FactoryBot.create :note, request: travel_request - note3 = FactoryBot.create :note, request: travel_request - note4 = FactoryBot.create :note, request: absence_request + absence_request = create(:absence_request) + note1 = create(:note, request: absence_request) + travel_request = create(:travel_request) + note2 = create(:note, request: travel_request) + note3 = create(:note, request: travel_request) + note4 = create(:note, request: absence_request) expect(described_class.all).to eq([note1, note2, note3, note4]) expect(absence_request.notes).to eq([note1, note4]) expect(travel_request.notes).to eq([note2, note3]) diff --git a/spec/models/recurring_event_spec.rb b/spec/models/recurring_event_spec.rb index cc0c7404..8c807a22 100644 --- a/spec/models/recurring_event_spec.rb +++ b/spec/models/recurring_event_spec.rb @@ -15,9 +15,9 @@ describe "#destory" do it "destroys dependants" do - recurring_event = FactoryBot.create(:recurring_event, name: "Ice Capades") - travel_request = FactoryBot.create(:travel_request, action: :approve) - FactoryBot.create :event_request, recurring_event: recurring_event, request: travel_request + recurring_event = create(:recurring_event, name: "Ice Capades") + travel_request = create(:travel_request, action: :approve) + create(:event_request, recurring_event: recurring_event, request: travel_request) expect { recurring_event.destroy }.to change(EventRequest, :count).by(-1) end end diff --git a/spec/models/request_spec.rb b/spec/models/request_spec.rb index afe6be1b..03d86c58 100644 --- a/spec/models/request_spec.rb +++ b/spec/models/request_spec.rb @@ -16,7 +16,7 @@ describe "#id" do it "id is greater than ten thousand" do - expect(FactoryBot.create(:absence_request).id).to be >= 10_000 + expect(create(:absence_request).id).to be >= 10_000 end end @@ -25,9 +25,9 @@ # so test here on the model. Maybe replace with other controller tests # when we work that ticket. describe "status enum" do - let(:staff_profile) { FactoryBot.create(:staff_profile, :with_department) } - let(:travel_request) { FactoryBot.build(:travel_request, creator: staff_profile) } - let(:absence_request) { FactoryBot.build(:absence_request, creator: staff_profile) } + let(:staff_profile) { create(:staff_profile, :with_department) } + let(:travel_request) { build(:travel_request, creator: staff_profile) } + let(:absence_request) { build(:absence_request, creator: staff_profile) } it "set expected values" do expect(travel_request.pending?).to be true @@ -60,10 +60,10 @@ describe "#destory" do it "destroys dependant notes and estimates" do - travel_request = FactoryBot.create(:travel_request, action: :approve) - FactoryBot.create(:note, content: "Flamingoes are pink, because they eat lots of shrimp.", - request: travel_request) - FactoryBot.create(:estimate, request: travel_request) + travel_request = create(:travel_request, action: :approve) + create(:note, content: "Flamingoes are pink, because they eat lots of shrimp.", + request: travel_request) + create(:estimate, request: travel_request) expect { travel_request.destroy }.to( change(Note, :count).by(-1).and( change(Estimate, :count).by(-1) @@ -77,17 +77,17 @@ end describe "#where_contains_text" do - let(:absence_request) { FactoryBot.create(:absence_request, action: :approve) } - let(:absence_request2) { FactoryBot.create(:absence_request, action: :deny) } - let(:travel_request) { FactoryBot.create(:travel_request, action: :approve) } - let(:travel_request2) { FactoryBot.create(:travel_request) } + let(:absence_request) { create(:absence_request, action: :approve) } + let(:absence_request2) { create(:absence_request, action: :deny) } + let(:travel_request) { create(:travel_request, action: :approve) } + let(:travel_request2) { create(:travel_request) } before do - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request) - FactoryBot.create(:note, content: "Elephants love balloons", request: absence_request2) - FactoryBot.create(:note, content: "Flamingoes are pink, because they eat lots of shrimp.", - request: travel_request) - FactoryBot.create(:note, content: "Bears can't fly", request: travel_request) + create(:note, content: "elephants love balloons", request: absence_request) + create(:note, content: "Elephants love balloons", request: absence_request2) + create(:note, content: "Flamingoes are pink, because they eat lots of shrimp.", + request: travel_request) + create(:note, content: "Bears can't fly", request: travel_request) travel_request2 # no note just create it end diff --git a/spec/models/staff_profile_spec.rb b/spec/models/staff_profile_spec.rb index f60e5cc1..7f334815 100644 --- a/spec/models/staff_profile_spec.rb +++ b/spec/models/staff_profile_spec.rb @@ -24,7 +24,7 @@ describe "#find_by_uid" do it "returns the staff_profile" do - profile = FactoryBot.create(:staff_profile) + profile = create(:staff_profile) expect(described_class.find_by(uid: profile.user.uid)).to eq(profile) end @@ -39,7 +39,7 @@ end context "when it is a department head" do - subject(:staff_profile) { FactoryBot.create :staff_profile, :as_department_head } + subject(:staff_profile) { create(:staff_profile, :as_department_head) } it "returns true for a department head" do expect(staff_profile.department_head?).to be_truthy @@ -54,7 +54,7 @@ context "when it is a supervisor" do it "returns true for a department head" do - FactoryBot.create :staff_profile, supervisor: staff_profile + create(:staff_profile, supervisor: staff_profile) expect(staff_profile.supervisor?).to be_truthy end end @@ -62,15 +62,15 @@ describe "#full_name" do it "returns the staff_profile" do - profile = FactoryBot.create(:staff_profile, given_name: "Jane", surname: "Doe") + profile = create(:staff_profile, given_name: "Jane", surname: "Doe") expect(profile.full_name).to eq("Jane Doe") end end describe "#delegate" do it "sets the delegate" do - profile = FactoryBot.create(:staff_profile, given_name: "Jane", surname: "Doe") - profile2 = FactoryBot.create :staff_profile, supervisor: staff_profile + profile = create(:staff_profile, given_name: "Jane", surname: "Doe") + profile2 = create(:staff_profile, supervisor: staff_profile) profile.current_delegate = profile2 expect(profile.current_delegate).to eq(profile2) end @@ -78,38 +78,38 @@ describe "#admin_assistant" do it "returns based on location" do - aa = FactoryBot.create(:staff_profile, given_name: "Doug", surname: "Doe") - aa2 = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith") - location = FactoryBot.create(:location, admin_assistant: aa) - department = FactoryBot.create(:department, admin_assistants: [aa2]) - profile = FactoryBot.create(:staff_profile, location:, department:) + aa = create(:staff_profile, given_name: "Doug", surname: "Doe") + aa2 = create(:staff_profile, given_name: "Sally", surname: "Smith") + location = create(:location, admin_assistant: aa) + department = create(:department, admin_assistants: [aa2]) + profile = create(:staff_profile, location:, department:) expect(profile.admin_assistants).to eq([aa]) end it "returns based on department" do - aa = FactoryBot.create(:staff_profile, given_name: "Doug", surname: "Doe") - location = FactoryBot.create(:location) - department = FactoryBot.create(:department, admin_assistants: [aa]) - profile = FactoryBot.create(:staff_profile, location:, department:) + aa = create(:staff_profile, given_name: "Doug", surname: "Doe") + location = create(:location) + department = create(:department, admin_assistants: [aa]) + profile = create(:staff_profile, location:, department:) expect(profile.admin_assistants).to eq([aa]) end it "returns all department members" do - aa = FactoryBot.create(:staff_profile, given_name: "Doug", surname: "Doe") - department1 = FactoryBot.create(:department, admin_assistants: [aa]) - department2 = FactoryBot.create(:department, admin_assistants: []) - profile1 = FactoryBot.create(:staff_profile, given_name: "Sally", surname: "Smith", department: department1) - FactoryBot.create(:staff_profile, given_name: "Jane", surname: "Smith", department: department2) + aa = create(:staff_profile, given_name: "Doug", surname: "Doe") + department1 = create(:department, admin_assistants: [aa]) + department2 = create(:department, admin_assistants: []) + profile1 = create(:staff_profile, given_name: "Sally", surname: "Smith", department: department1) + create(:staff_profile, given_name: "Jane", surname: "Smith", department: department2) expect(aa.list_supervised(list: [])).to include(aa, profile1) end end describe "#staff_list_json" do it "handles staff names with apostrophes" do - profile = FactoryBot.create(:staff_profile, given_name: "Georgia", - surname: "O'Keeffe", - id: 100, - user: FactoryBot.create(:user, uid: "uid123")) + profile = create(:staff_profile, given_name: "Georgia", + surname: "O'Keeffe", + id: 100, + user: create(:user, uid: "uid123")) profile.staff_list_json expect(profile.staff_list_json).to eq("[{ id: '100', label: 'O\\'Keeffe, Georgia (uid123)' }]") end diff --git a/spec/models/state_change_spec.rb b/spec/models/state_change_spec.rb index 26053fd2..1e1c3f56 100644 --- a/spec/models/state_change_spec.rb +++ b/spec/models/state_change_spec.rb @@ -17,14 +17,14 @@ describe "#title" do it "returns the title for a canceled request" do - agent = FactoryBot.create :staff_profile, surname: "Doe", given_name: "Jane" - state_change = FactoryBot.create :state_change, action: "canceled", agent: agent + agent = create(:staff_profile, surname: "Doe", given_name: "Jane") + state_change = create(:state_change, action: "canceled", agent: agent) expect(state_change.title).to start_with("Canceled by Jane Doe") end it "returns the title for a fixed request" do - agent = FactoryBot.create :staff_profile, :with_department, surname: "Doe", given_name: "Jane" - request = FactoryBot.create :travel_request, creator: agent, action: "fix_requested_changes" + agent = create(:staff_profile, :with_department, surname: "Doe", given_name: "Jane") + request = create(:travel_request, creator: agent, action: "fix_requested_changes") state_change = request.state_changes.last expect(state_change.title).to start_with("Updated by Jane Doe") end diff --git a/spec/models/travel_request_spec.rb b/spec/models/travel_request_spec.rb index dbc78849..4e8a1632 100644 --- a/spec/models/travel_request_spec.rb +++ b/spec/models/travel_request_spec.rb @@ -31,12 +31,12 @@ end context "A saved travel request" do - let(:user) { FactoryBot.create :staff_profile, :with_department } + let(:user) { create(:staff_profile, :with_department) } let(:supervisor) { user.supervisor } let(:department_head) { user.department.head } context "with one estimate" do - let(:travel_request) { FactoryBot.create :travel_request, :with_note_and_estimate, creator: user } + let(:travel_request) { create(:travel_request, :with_note_and_estimate, creator: user) } it "gives a total estimate" do expect(travel_request.estimated_total).to eq(150) @@ -45,11 +45,11 @@ context "with multiple estimates" do let(:travel_request) do - FactoryBot.create( + create( :travel_request, :with_note_and_estimate, creator: user, - estimates: [FactoryBot.build(:estimate), FactoryBot.build(:estimate)] + estimates: [build(:estimate), build(:estimate)] ) end @@ -60,8 +60,8 @@ end context "A saved absence request" do - let(:user) { FactoryBot.create :staff_profile, :with_department } - let(:travel_request) { FactoryBot.create :travel_request, creator: user } + let(:user) { create(:staff_profile, :with_department) } + let(:travel_request) { create(:travel_request, creator: user) } let(:supervisor) { user.supervisor } let(:department_head) { user.department.head } @@ -211,7 +211,7 @@ end describe "#update_recurring_events!" do - let(:recurring_event) { FactoryBot.create(:recurring_event, name: "Max's test event") } + let(:recurring_event) { create(:recurring_event, name: "Max's test event") } it "can update the associated recurring event" do expect do @@ -227,14 +227,14 @@ end context "with two travel requests" do - let(:target_recurring_event) { FactoryBot.build(:recurring_event, name: "Target event name") } - let(:event_with_target_name) { FactoryBot.build(:event_request, recurring_event: target_recurring_event) } - let(:travel_request_unchanged) { FactoryBot.create(:travel_request, event_requests: [event_with_target_name]) } + let(:target_recurring_event) { build(:recurring_event, name: "Target event name") } + let(:event_with_target_name) { build(:event_request, recurring_event: target_recurring_event) } + let(:travel_request_unchanged) { create(:travel_request, event_requests: [event_with_target_name]) } - let(:unwanted_recurring_event) { FactoryBot.build(:recurring_event, name: "Unwanted event name") } - let(:event_with_unwanted_name) { FactoryBot.build(:event_request, recurring_event: unwanted_recurring_event) } + let(:unwanted_recurring_event) { build(:recurring_event, name: "Unwanted event name") } + let(:event_with_unwanted_name) { build(:event_request, recurring_event: unwanted_recurring_event) } let(:travel_request_unwanted_name) do - FactoryBot.create(:travel_request, event_requests: [event_with_unwanted_name]) + create(:travel_request, event_requests: [event_with_unwanted_name]) end before do @@ -281,10 +281,10 @@ context "with three travel requests" do let(:second_event_with_unwanted_name) do - FactoryBot.build(:event_request, recurring_event: unwanted_recurring_event) + build(:event_request, recurring_event: unwanted_recurring_event) end let(:second_travel_request_with_unwanted_name) do - FactoryBot.create(:travel_request, event_requests: [second_event_with_unwanted_name]) + create(:travel_request, event_requests: [second_event_with_unwanted_name]) end before do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index e54c595d..20d21c2f 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -6,7 +6,7 @@ let(:access_token) { OmniAuth::AuthHash.new(provider: "cas", uid: "who") } before do - FactoryBot.create(:user, uid: "who", provider: "cas") + create(:user, uid: "who", provider: "cas") end describe "relationships" do diff --git a/spec/requests/delegates_spec.rb b/spec/requests/delegates_spec.rb index e3a3efd1..24132b17 100644 --- a/spec/requests/delegates_spec.rb +++ b/spec/requests/delegates_spec.rb @@ -4,8 +4,8 @@ RSpec.describe "Delegates", type: :request do context "Signed in user" do - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, user: } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, user:) } before do staff_profile diff --git a/spec/requests/home_page_spec.rb b/spec/requests/home_page_spec.rb index 1000f9de..6fc4a2be 100644 --- a/spec/requests/home_page_spec.rb +++ b/spec/requests/home_page_spec.rb @@ -5,8 +5,8 @@ RSpec.describe "Home Page", type: :request do describe "GET /" do context "Signed in user" do - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, user: } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, user:) } before do staff_profile @@ -14,8 +14,8 @@ end it "works! (now write some real specs)" do - FactoryBot.create(:absence_request) - FactoryBot.create(:travel_request) + create(:absence_request) + create(:travel_request) get root_path expect(response).to be_redirect diff --git a/spec/requests/my_requests_spec.rb b/spec/requests/my_requests_spec.rb index 5edac249..b12469bc 100644 --- a/spec/requests/my_requests_spec.rb +++ b/spec/requests/my_requests_spec.rb @@ -5,8 +5,8 @@ RSpec.describe "My Requests", type: :request do describe "GET /my_requests" do context "Signed in user" do - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, user: } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, user:) } before do staff_profile @@ -14,8 +14,8 @@ end it "works! (now write some real specs)" do - FactoryBot.create(:absence_request) - FactoryBot.create(:travel_request) + create(:absence_request) + create(:travel_request) get my_requests_path expect(response).to have_http_status(:ok) diff --git a/spec/requests/travel_requests_spec.rb b/spec/requests/travel_requests_spec.rb index 50776875..205c8999 100644 --- a/spec/requests/travel_requests_spec.rb +++ b/spec/requests/travel_requests_spec.rb @@ -3,19 +3,19 @@ require "rails_helper" RSpec.describe TravelRequestsController, type: :request do - let(:user) { FactoryBot.create :user } + let(:user) { create(:user) } let(:department_head) do - profile = FactoryBot.create :staff_profile, user: user, given_name: "Sally", surname: "Smith" - FactoryBot.create :department, head: profile + profile = create(:staff_profile, user: user, given_name: "Sally", surname: "Smith") + create(:department, head: profile) profile end let(:staff_profile) do - FactoryBot.create :staff_profile, department: department_head.department, given_name: "John", surname: "Doe", - supervisor: department_head + create(:staff_profile, department: department_head.department, given_name: "John", surname: "Doe", + supervisor: department_head) end - let(:travel_request) { FactoryBot.create :travel_request, creator: staff_profile } - let(:target_event) { FactoryBot.create(:recurring_event, name: "Max's test event") } + let(:travel_request) { create(:travel_request, creator: staff_profile) } + let(:target_event) { create(:recurring_event, name: "Max's test event") } before do sign_in user diff --git a/spec/services/absent_staff_spec.rb b/spec/services/absent_staff_spec.rb index 02bb22d3..7b8a63e9 100644 --- a/spec/services/absent_staff_spec.rb +++ b/spec/services/absent_staff_spec.rb @@ -3,41 +3,41 @@ require "rails_helper" RSpec.describe AbsentStaff, type: :model do - let(:supervisor) { FactoryBot.create :staff_profile, given_name: "Goose" } - let(:jack) { FactoryBot.create :staff_profile, given_name: "Jack", supervisor: } - let(:jill) { FactoryBot.create :staff_profile, given_name: "Jill", supervisor: } - let(:mary) { FactoryBot.create :staff_profile, given_name: "Mary", supervisor: jill } - let(:peter) { FactoryBot.create :staff_profile, given_name: "Peter", supervisor: } - let(:piper) { FactoryBot.create :staff_profile, given_name: "Piper", supervisor: peter } + let(:supervisor) { create(:staff_profile, given_name: "Goose") } + let(:jack) { create(:staff_profile, given_name: "Jack", supervisor:) } + let(:jill) { create(:staff_profile, given_name: "Jill", supervisor:) } + let(:mary) { create(:staff_profile, given_name: "Mary", supervisor: jill) } + let(:peter) { create(:staff_profile, given_name: "Peter", supervisor:) } + let(:piper) { create(:staff_profile, given_name: "Piper", supervisor: peter) } let(:mary_sick_2020) do start_date = 1.year.from_now end_date = start_date + 2.days - FactoryBot.create :absence_request, creator: mary, start_date:, end_date: + create(:absence_request, creator: mary, start_date:, end_date:) end let(:peter_sick_2020) do start_date = 1.year.from_now end_date = start_date + 2.days - FactoryBot.create :absence_request, creator: peter, start_date:, end_date: + create(:absence_request, creator: peter, start_date:, end_date:) end let(:mary_sick_2019) do start_date = Time.zone.now end_date = start_date + 2.days - FactoryBot.create :absence_request, creator: mary, start_date:, end_date: + create(:absence_request, creator: mary, start_date:, end_date:) end let(:jack_vacation_2019) do start_date = 2.days.from_now end_date = start_date + 4.days - FactoryBot.create :absence_request, creator: jack, start_date:, end_date: + create(:absence_request, creator: jack, start_date:, end_date:) end let(:jill_vacation_2019) do start_date = 3.days.ago end_date = start_date + 4.days - FactoryBot.create :absence_request, creator: jill, start_date:, end_date: + create(:absence_request, creator: jill, start_date:, end_date:) end let(:piper_vacation_2019) do start_date = 3.days.ago end_date = start_date + 4.days - FactoryBot.create :absence_request, creator: piper, start_date:, end_date: + create(:absence_request, creator: piper, start_date:, end_date:) end before do diff --git a/spec/services/approval_requests_list_spec.rb b/spec/services/approval_requests_list_spec.rb index da818952..c280d409 100644 --- a/spec/services/approval_requests_list_spec.rb +++ b/spec/services/approval_requests_list_spec.rb @@ -3,14 +3,14 @@ require "rails_helper" RSpec.describe ApprovalRequestList, type: :model do - let(:user) { FactoryBot.create :user, uid: "abc123" } - let(:staff_profile) { FactoryBot.create :staff_profile, :with_department, user: } - let(:user_two) { FactoryBot.create :user, uid: "abc12345" } - let(:staff_profile_two) { FactoryBot.create :staff_profile, :with_department, user: user_two } - let(:other_absence) { FactoryBot.create(:absence_request) } - let(:other_travel) { FactoryBot.create(:travel_request) } - let(:my_absence) { FactoryBot.create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } - let(:my_travel) { FactoryBot.create(:travel_request, creator: staff_profile) } + let(:user) { create(:user, uid: "abc123") } + let(:staff_profile) { create(:staff_profile, :with_department, user:) } + let(:user_two) { create(:user, uid: "abc12345") } + let(:staff_profile_two) { create(:staff_profile, :with_department, user: user_two) } + let(:other_absence) { create(:absence_request) } + let(:other_travel) { create(:travel_request) } + let(:my_absence) { create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } + let(:my_travel) { create(:travel_request, creator: staff_profile) } describe "#list_requests" do before do @@ -24,12 +24,12 @@ end it "does not list requests when the approver is not a supervisor of the request creator" do - supervisor = FactoryBot.create :staff_profile, :with_department + supervisor = create(:staff_profile, :with_department) supervisor.supervisor = nil supervisor.save - department_one = FactoryBot.create :department, :with_head, admin_assistants: [staff_profile_two] - staff_profile = FactoryBot.create :staff_profile, supervisor: supervisor, department: department_one - other_travel_two = FactoryBot.create(:travel_request, creator: staff_profile) + department_one = create(:department, :with_head, admin_assistants: [staff_profile_two]) + staff_profile = create(:staff_profile, supervisor: supervisor, department: department_one) + other_travel_two = create(:travel_request, creator: staff_profile) expect { other_travel_two.approve(agent: department_one.head) }.not_to raise_error # expect(other_travel_two).not_to be_approved # See issue: https://github.com/pulibrary/approvals/issues/808 end @@ -90,7 +90,7 @@ end it "accepts limit by status" do - requested_changes_travel = FactoryBot.create(:travel_request, action: :change_request, creator: staff_profile) + requested_changes_travel = create(:travel_request, action: :change_request, creator: staff_profile) list = described_class.list_requests(approver: staff_profile.supervisor, request_filters: { status: "changes_requested" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(requested_changes_travel.id) @@ -103,7 +103,7 @@ end it "accepts limit by request type sick" do - my_sick_absence = FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick") + my_sick_absence = create(:absence_request, creator: staff_profile, absence_type: "sick") list = described_class.list_requests(approver: staff_profile.supervisor, request_filters: { "request_type" => "sick" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_sick_absence.id) @@ -116,26 +116,26 @@ end it "accepts limit by request type business" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, travel_category: "business") + my_business_travel = create(:travel_request, creator: staff_profile, travel_category: "business") list = described_class.list_requests(approver: staff_profile.supervisor, request_filters: { "request_type" => "business" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_business_travel.id) end it "accepts limit by status and request type" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, action: "fix_requested_changes", - travel_category: "business") - FactoryBot.create(:travel_request, creator: staff_profile, action: "fix_requested_changes", - travel_category: "professional_development") + my_business_travel = create(:travel_request, creator: staff_profile, action: "fix_requested_changes", + travel_category: "business") + create(:travel_request, creator: staff_profile, action: "fix_requested_changes", + travel_category: "professional_development") list = described_class.list_requests(approver: staff_profile.supervisor, request_filters: { "request_type" => "business", "status" => "pending" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_business_travel.id) end context "with changes requested" do - let(:profile1) { FactoryBot.create :staff_profile, supervisor: profile2 } - let(:profile2) { FactoryBot.create :staff_profile, supervisor: staff_profile } - let(:my_travel) { FactoryBot.create(:travel_request, creator: profile1) } + let(:profile1) { create(:staff_profile, supervisor: profile2) } + let(:profile2) { create(:staff_profile, supervisor: staff_profile) } + let(:my_travel) { create(:travel_request, creator: profile1) } before do my_travel.approve(agent: profile2) @@ -162,19 +162,19 @@ # r1: created yesterday, modified tomorrow, start date today let(:r1) do Timecop.freeze(yesterday) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: today) + create(:travel_request, creator: staff_profile, start_date: today) end end # r2: created today, modified yesterday, start date tomorrow let(:r2) do Timecop.freeze(today) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: tomorrow) + create(:travel_request, creator: staff_profile, start_date: tomorrow) end end # r3: created tomorrow, modified today, start date yesterday let(:r3) do Timecop.freeze(tomorrow) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: yesterday) + create(:travel_request, creator: staff_profile, start_date: yesterday) end end @@ -239,12 +239,12 @@ describe "GET #my_requests with searching" do it "retrieves a result" do - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) - absence_request2 = FactoryBot.create(:absence_request, creator: staff_profile, action: :deny) - travel_request2 = FactoryBot.create(:travel_request, creator: staff_profile) - FactoryBot.create(:note, content: "elephants love balloons", request: travel_request) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request2) - FactoryBot.create(:note, content: "flamingoes are pink because of shrimp", request: travel_request2) + travel_request = create(:travel_request, creator: staff_profile) + absence_request2 = create(:absence_request, creator: staff_profile, action: :deny) + travel_request2 = create(:travel_request, creator: staff_profile) + create(:note, content: "elephants love balloons", request: travel_request) + create(:note, content: "elephants love balloons", request: absence_request2) + create(:note, content: "flamingoes are pink because of shrimp", request: travel_request2) list = described_class.list_requests(approver: staff_profile.supervisor, request_filters: { "status" => "pending" }, search_query: "balloons", order: nil) @@ -252,9 +252,9 @@ end it "retrieves a result by netid" do - FactoryBot.create(:travel_request, creator: staff_profile) - FactoryBot.create(:absence_request, creator: staff_profile, action: :deny) - FactoryBot.create(:travel_request, creator: staff_profile) + create(:travel_request, creator: staff_profile) + create(:absence_request, creator: staff_profile, action: :deny) + create(:travel_request, creator: staff_profile) list = described_class.list_requests(approver: staff_profile.supervisor, request_filters: { "status" => "pending" }, search_query: "abc123", order: nil) diff --git a/spec/services/balance_report_processor_spec.rb b/spec/services/balance_report_processor_spec.rb index 5a98f147..adfe56ad 100644 --- a/spec/services/balance_report_processor_spec.rb +++ b/spec/services/balance_report_processor_spec.rb @@ -12,12 +12,12 @@ describe "#process" do it "Adds balances to staff profiles" do - user = FactoryBot.create :user, uid: "testi" - user2 = FactoryBot.create :user, uid: "test2" - user3 = FactoryBot.create :user, uid: "test3" - staff_profile = FactoryBot.create :staff_profile, user: user - staff_profile2 = FactoryBot.create :staff_profile, user: user2 - staff_profile3 = FactoryBot.create :staff_profile, user: user3 + user = create(:user, uid: "testi") + user2 = create(:user, uid: "test2") + user3 = create(:user, uid: "test3") + staff_profile = create(:staff_profile, user: user) + staff_profile2 = create(:staff_profile, user: user2) + staff_profile3 = create(:staff_profile, user: user3) errors = described_class.process(data: "#{heading_line}\n#{user_line}\n#{user2_line}\n#{user3_line}") staff_profile.reload staff_profile2.reload @@ -42,8 +42,8 @@ context "missing staff profile" do it "Adds balances to existing staff profiles and returns errors" do - user = FactoryBot.create :user, uid: "testi" - staff_profile = FactoryBot.create :staff_profile, user: user + user = create(:user, uid: "testi") + staff_profile = create(:staff_profile, user: user) errors = described_class.process(data: "#{heading_line}\n#{user_line}\n#{user2_line}") expect(errors[:unknown]).to eq(["test2"]) staff_profile.reload diff --git a/spec/services/default_aas_as_delegate_spec.rb b/spec/services/default_aas_as_delegate_spec.rb index ec874dd0..3d3e1db3 100644 --- a/spec/services/default_aas_as_delegate_spec.rb +++ b/spec/services/default_aas_as_delegate_spec.rb @@ -5,8 +5,8 @@ RSpec.describe DefaultAasAsDelegate, type: :model do describe "#run" do it "assigns a delegate to every person who has an AA" do - staff_profile = FactoryBot.create :staff_profile - staff_profile2 = FactoryBot.create :staff_profile, :with_department + staff_profile = create(:staff_profile) + staff_profile2 = create(:staff_profile, :with_department) expect { described_class.run }.to change(Delegate, :count).by(3) expect(Delegate.where(delegator: staff_profile).count).to eq(0) expect(Delegate.where(delegator: staff_profile2).count).to eq(1) diff --git a/spec/services/event_attendees_spec.rb b/spec/services/event_attendees_spec.rb index 15132683..0bfaf165 100644 --- a/spec/services/event_attendees_spec.rb +++ b/spec/services/event_attendees_spec.rb @@ -3,55 +3,55 @@ require "rails_helper" RSpec.describe EventAttendees, type: :model do - let(:jack) { FactoryBot.create :staff_profile, given_name: "Jack" } - let(:jill) { FactoryBot.create :staff_profile, given_name: "Jill" } - let(:mary) { FactoryBot.create :staff_profile, given_name: "Mary" } - let(:peter) { FactoryBot.create :staff_profile, given_name: "Peter" } - let(:hill) { FactoryBot.create :recurring_event } - let(:peppers) { FactoryBot.create :recurring_event } - let(:garden) { FactoryBot.create :recurring_event } + let(:jack) { create(:staff_profile, given_name: "Jack") } + let(:jill) { create(:staff_profile, given_name: "Jill") } + let(:mary) { create(:staff_profile, given_name: "Mary") } + let(:peter) { create(:staff_profile, given_name: "Peter") } + let(:hill) { create(:recurring_event) } + let(:peppers) { create(:recurring_event) } + let(:garden) { create(:recurring_event) } let(:mary_garden_2020) do start_date = 1.year.from_now end_date = start_date + 2.days - event_request = FactoryBot.build :event_request, recurring_event: garden, start_date: start_date, end_date: end_date - FactoryBot.create :travel_request, creator: mary, event_requests: [event_request], start_date: start_date - 1.day, - end_date: + event_request = build(:event_request, recurring_event: garden, start_date: start_date, end_date: end_date) + create(:travel_request, creator: mary, event_requests: [event_request], start_date: start_date - 1.day, + end_date:) end let(:mary_garden_2019) do start_date = Time.zone.now end_date = start_date + 3.days - event_request = FactoryBot.build :event_request, recurring_event: garden, start_date: start_date, end_date: end_date - FactoryBot.create :travel_request, creator: mary, event_requests: [event_request], start_date: start_date - 1.day, - end_date: + event_request = build(:event_request, recurring_event: garden, start_date: start_date, end_date: end_date) + create(:travel_request, creator: mary, event_requests: [event_request], start_date: start_date - 1.day, + end_date:) end let(:jill_garden_2018) do start_date = 1.year.ago end_date = start_date + 2.days - event_request = FactoryBot.build :event_request, recurring_event: garden, start_date: start_date, end_date: end_date - FactoryBot.create :travel_request, creator: jill, event_requests: [event_request], start_date: start_date - 1.day, - end_date: + event_request = build(:event_request, recurring_event: garden, start_date: start_date, end_date: end_date) + create(:travel_request, creator: jill, event_requests: [event_request], start_date: start_date - 1.day, + end_date:) end let(:peter_peppers_2019) do start_date = Time.zone.now end_date = start_date + 5.days - event_request = FactoryBot.build :event_request, recurring_event: peppers, start_date: start_date, - end_date: end_date - FactoryBot.create :travel_request, creator: peter, event_requests: [event_request], start_date: start_date - 1.day, - end_date: + event_request = build(:event_request, recurring_event: peppers, start_date: start_date, + end_date: end_date) + create(:travel_request, creator: peter, event_requests: [event_request], start_date: start_date - 1.day, + end_date:) end let(:jack_hill_2019) do start_date = Time.zone.now end_date = start_date + 5.days - event_request = FactoryBot.build :event_request, recurring_event: hill, start_date: start_date, end_date: end_date - FactoryBot.create :travel_request, creator: jack, event_requests: [event_request], start_date: start_date - 1.day, - end_date: + event_request = build(:event_request, recurring_event: hill, start_date: start_date, end_date: end_date) + create(:travel_request, creator: jack, event_requests: [event_request], start_date: start_date - 1.day, + end_date:) end let(:jill_hill_2019) do start_date = Time.zone.now end_date = start_date + 5.days - event_request = FactoryBot.build :event_request, recurring_event: hill, start_date: start_date, end_date: end_date - FactoryBot.create :travel_request, creator: jill, event_requests: [event_request], start_date: start_date - 1.day, - end_date: + event_request = build(:event_request, recurring_event: hill, start_date: start_date, end_date: end_date) + create(:travel_request, creator: jill, event_requests: [event_request], start_date: start_date - 1.day, + end_date:) end before do diff --git a/spec/services/home_url_spec.rb b/spec/services/home_url_spec.rb index 70c10756..9ce39e50 100644 --- a/spec/services/home_url_spec.rb +++ b/spec/services/home_url_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe HomeURL, type: :model do - let(:jack) { FactoryBot.create :user } + let(:jack) { create(:user) } describe "#for" do it "returns root path for empty current_user" do diff --git a/spec/services/location_loader_spec.rb b/spec/services/location_loader_spec.rb index 55d271ec..55318119 100644 --- a/spec/services/location_loader_spec.rb +++ b/spec/services/location_loader_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe LocationLoader, type: :model do - let(:staff_profile) { FactoryBot.create :staff_profile } + let(:staff_profile) { create(:staff_profile) } let(:user) { staff_profile.user } describe "#list" do diff --git a/spec/services/mail_for_action_spec.rb b/spec/services/mail_for_action_spec.rb index 8fa0cdad..017cea11 100644 --- a/spec/services/mail_for_action_spec.rb +++ b/spec/services/mail_for_action_spec.rb @@ -3,9 +3,9 @@ require "rails_helper" RSpec.describe MailForAction, type: :model do - let(:supervisor) { FactoryBot.create :staff_profile, :with_department, given_name: "Jane", surname: "Smith" } - let(:creator) { FactoryBot.create :staff_profile, supervisor:, department: supervisor.department } - let(:request) { FactoryBot.create :travel_request, creator: } + let(:supervisor) { create(:staff_profile, :with_department, given_name: "Jane", surname: "Smith") } + let(:creator) { create(:staff_profile, supervisor:, department: supervisor.department) } + let(:request) { create(:travel_request, creator:) } describe "send" do it "sends email for the create action" do diff --git a/spec/services/random_direct_reports_generator_spec.rb b/spec/services/random_direct_reports_generator_spec.rb index 5264982a..d0e711ed 100644 --- a/spec/services/random_direct_reports_generator_spec.rb +++ b/spec/services/random_direct_reports_generator_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe RandomDirectReportsGenerator, type: :model do - let(:supervisor) { FactoryBot.create :staff_profile } + let(:supervisor) { create(:staff_profile) } before do supervisor # call this here so we do not create the supervisor as part of the test diff --git a/spec/services/random_request_generator_spec.rb b/spec/services/random_request_generator_spec.rb index 30642ff5..4a85237e 100644 --- a/spec/services/random_request_generator_spec.rb +++ b/spec/services/random_request_generator_spec.rb @@ -3,10 +3,10 @@ require "rails_helper" RSpec.describe RandomRequestGenerator, type: :model do - let(:creator) { FactoryBot.create :staff_profile, :with_supervisor, :with_department } + let(:creator) { create(:staff_profile, :with_supervisor, :with_department) } before do - FactoryBot.create :recurring_event + create(:recurring_event) end context "Pending request" do diff --git a/spec/services/recurring_event_loader_spec.rb b/spec/services/recurring_event_loader_spec.rb index be2259ef..8a469e26 100644 --- a/spec/services/recurring_event_loader_spec.rb +++ b/spec/services/recurring_event_loader_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe RecurringEventLoader, type: :model do - let(:staff_profile) { FactoryBot.create :staff_profile } + let(:staff_profile) { create(:staff_profile) } let(:user) { staff_profile.user } describe "#list" do diff --git a/spec/services/report_requests_list_spec.rb b/spec/services/report_requests_list_spec.rb index 15c9d65b..3fb4413f 100644 --- a/spec/services/report_requests_list_spec.rb +++ b/spec/services/report_requests_list_spec.rb @@ -3,15 +3,15 @@ require "rails_helper" RSpec.describe ReportRequestList, type: :model do - let(:user) { FactoryBot.create :user } - let(:supervisor) { FactoryBot.create :staff_profile, :with_department, user: } - let(:staff_profile) { FactoryBot.create :staff_profile, supervisor:, department: supervisor.department } + let(:user) { create(:user) } + let(:supervisor) { create(:staff_profile, :with_department, user:) } + let(:staff_profile) { create(:staff_profile, supervisor:, department: supervisor.department) } - let(:supervisor_absence) { FactoryBot.create(:absence_request, creator: supervisor, start_date: Time.zone.tomorrow) } - let(:other_absence) { FactoryBot.create(:absence_request) } - let(:other_travel) { FactoryBot.create(:travel_request) } - let(:my_absence) { FactoryBot.create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } - let(:my_travel) { FactoryBot.create(:travel_request, creator: staff_profile) } + let(:supervisor_absence) { create(:absence_request, creator: supervisor, start_date: Time.zone.tomorrow) } + let(:other_absence) { create(:absence_request) } + let(:other_travel) { create(:travel_request) } + let(:my_absence) { create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } + let(:my_travel) { create(:travel_request, creator: staff_profile) } describe "GET #list_requests" do before do @@ -41,10 +41,10 @@ end it "goes n levels deep" do - profile = FactoryBot.create :staff_profile, supervisor: staff_profile, department: supervisor.department - deep_travel = FactoryBot.create(:travel_request, creator: profile) - profile2 = FactoryBot.create :staff_profile, supervisor: profile, department: supervisor.department - deeper_travel = FactoryBot.create(:travel_request, creator: profile2) + profile = create(:staff_profile, supervisor: staff_profile, department: supervisor.department) + deep_travel = create(:travel_request, creator: profile) + profile2 = create(:staff_profile, supervisor: profile, department: supervisor.department) + deeper_travel = create(:travel_request, creator: profile2) list = described_class.list_requests(current_staff_profile: supervisor, request_filters: nil, search_query: nil, order: nil) expect(list.first).to be_a TravelRequest @@ -54,7 +54,7 @@ end it "accepts limit by status" do - approved_absence = FactoryBot.create(:absence_request, action: :approve, creator: staff_profile) + approved_absence = create(:absence_request, action: :approve, creator: staff_profile) list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { status: "approved" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(approved_absence.id) @@ -67,7 +67,7 @@ end it "accepts limit by request type sick" do - my_sick_absence = FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick") + my_sick_absence = create(:absence_request, creator: staff_profile, absence_type: "sick") list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { "request_type" => "sick" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_sick_absence.id) @@ -80,17 +80,17 @@ end it "accepts limit by request type business" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, travel_category: "business") + my_business_travel = create(:travel_request, creator: staff_profile, travel_category: "business") list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { "request_type" => "business" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_business_travel.id) end it "accepts limit by status and request type" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", - travel_category: "business") - FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", - travel_category: "professional_development") + my_business_travel = create(:travel_request, creator: staff_profile, action: "approve", + travel_category: "business") + create(:travel_request, creator: staff_profile, action: "approve", + travel_category: "professional_development") list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { "request_type" => "business", "status" => "approved" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_business_travel.id) @@ -103,10 +103,10 @@ end it "accepts limit by employee type" do - biweekly_profile = FactoryBot.create :staff_profile, supervisor: supervisor, department: supervisor.department, - biweekly: true - bi_weekly_absence = FactoryBot.create(:absence_request, creator: biweekly_profile) - bi_weekly_travel = FactoryBot.create(:travel_request, creator: biweekly_profile) + biweekly_profile = create(:staff_profile, supervisor: supervisor, department: supervisor.department, + biweekly: true) + bi_weekly_absence = create(:absence_request, creator: biweekly_profile) + bi_weekly_travel = create(:travel_request, creator: biweekly_profile) list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { "employee_type" => "biweekly" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(*[bi_weekly_absence, bi_weekly_travel].map(&:id)) @@ -116,18 +116,18 @@ end it "accepts limit by supervisor" do - sub_staff = FactoryBot.create :staff_profile, supervisor: staff_profile, department: supervisor.department - sub_absence = FactoryBot.create(:absence_request, creator: sub_staff) - sub_travel = FactoryBot.create(:travel_request, creator: sub_staff) + sub_staff = create(:staff_profile, supervisor: staff_profile, department: supervisor.department) + sub_absence = create(:absence_request, creator: sub_staff) + sub_travel = create(:travel_request, creator: sub_staff) list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { "supervisor" => staff_profile }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(*[my_absence, my_travel, sub_absence, sub_travel].map(&:id)) end it "accepts limit by supervisor and does not filter if the supervisor is not part of the logged in user's reporting chain" do - sub_staff = FactoryBot.create :staff_profile, supervisor: staff_profile, department: supervisor.department - sub_absence = FactoryBot.create(:absence_request, creator: sub_staff) - sub_travel = FactoryBot.create(:travel_request, creator: sub_staff) + sub_staff = create(:staff_profile, supervisor: staff_profile, department: supervisor.department) + sub_absence = create(:absence_request, creator: sub_staff) + sub_travel = create(:travel_request, creator: sub_staff) list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { "supervisor" => other_absence.creator }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(*[my_absence, my_travel, sub_absence, sub_travel, @@ -142,19 +142,19 @@ # r1: created yesterday, modified tomorrow, start date today let(:r1) do Timecop.freeze(yesterday) do - FactoryBot.create(:absence_request, creator: staff_profile, start_date: today) + create(:absence_request, creator: staff_profile, start_date: today) end end # r2: created today, modified yesterday, start date tomorrow let(:r2) do Timecop.freeze(today) do - FactoryBot.create(:absence_request, creator: staff_profile, start_date: tomorrow) + create(:absence_request, creator: staff_profile, start_date: tomorrow) end end # r3: created tomorrow, modified today, start date yesterday let(:r3) do Timecop.freeze(tomorrow) do - FactoryBot.create(:absence_request, creator: staff_profile, start_date: yesterday) + create(:absence_request, creator: staff_profile, start_date: yesterday) end end @@ -222,12 +222,12 @@ describe "GET #my_requests with searching" do it "retrieves a result" do - absence_request = FactoryBot.create(:absence_request, creator: staff_profile, action: :approve) - absence_request2 = FactoryBot.create(:absence_request, creator: staff_profile, action: :deny) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request2) - FactoryBot.create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) + absence_request = create(:absence_request, creator: staff_profile, action: :approve) + absence_request2 = create(:absence_request, creator: staff_profile, action: :deny) + travel_request = create(:travel_request, creator: staff_profile) + create(:note, content: "elephants love balloons", request: absence_request) + create(:note, content: "elephants love balloons", request: absence_request2) + create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) list = described_class.list_requests(current_staff_profile: supervisor, request_filters: { "status" => "approved" }, search_query: "balloons", order: nil) diff --git a/spec/services/request_report_spec.rb b/spec/services/request_report_spec.rb index 0848cdee..591fc995 100644 --- a/spec/services/request_report_spec.rb +++ b/spec/services/request_report_spec.rb @@ -6,10 +6,10 @@ let(:report) do described_class.new(start_date: "06/01/2022", end_date: "12/31/2022", file_path:, approved_only: true) end - let(:staff_member) { FactoryBot.create(:staff_profile, :with_department) } + let(:staff_member) { create(:staff_profile, :with_department) } let(:request_one) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-10-12", end_date: "2022-10-14") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-10-12", end_date: "2022-10-14") end let(:file_path) { Rails.root.join("tmp", "approved_request_report_test.csv") } let(:department_head) { staff_member.department.head } @@ -45,20 +45,20 @@ describe "#in_report_period?" do let(:just_right_request) { request_one } let(:end_in_reporting_period) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-5-28", end_date: "2022-06-03") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-5-28", end_date: "2022-06-03") end let(:beginning_in_reporting_period) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-12-28", end_date: "2023-01-03") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-12-28", end_date: "2023-01-03") end let(:too_early_request) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-04-08", end_date: "2022-04-11") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-04-08", end_date: "2022-04-11") end let(:too_late_request) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2023-04-08", end_date: "2023-04-11") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2023-04-08", end_date: "2023-04-11") end it "returns true if any request dates are within reporting period" do @@ -101,8 +101,8 @@ context "with two approved requests" do let(:request_two) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-10-12", end_date: "2022-10-14") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-10-12", end_date: "2022-10-14") end before do @@ -118,8 +118,8 @@ context "with one approved and one not-approved request" do let(:request_two) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-10-12", end_date: "2022-10-14") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-10-12", end_date: "2022-10-14") end before do @@ -151,8 +151,8 @@ context "with one approved and one denied request" do let(:request_two) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-10-12", end_date: "2022-10-14") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-10-12", end_date: "2022-10-14") end before do @@ -184,12 +184,12 @@ context "with one request in reporting period and others not" do let(:too_early_request) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2022-04-08", end_date: "2022-04-11") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2022-04-08", end_date: "2022-04-11") end let(:too_late_request) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: "2023-04-08", end_date: "2023-04-11") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: "2023-04-08", end_date: "2023-04-11") end before do @@ -206,8 +206,8 @@ context "with a request without a start date" do let(:request_two) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - start_date: nil, end_date: "2022-10-14") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + start_date: nil, end_date: "2022-10-14") end before do @@ -234,9 +234,9 @@ end let(:request_one) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - virtual_event: true, - start_date: "2022-10-12", end_date: "2022-10-14") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + virtual_event: true, + start_date: "2022-10-12", end_date: "2022-10-14") end it "adds Virtual to the event format column" do @@ -251,9 +251,9 @@ end let(:request_one) do - FactoryBot.create(:travel_request, :with_note_and_estimate, creator: staff_member, - virtual_event: false, - start_date: "2022-10-12", end_date: "2022-10-14") + create(:travel_request, :with_note_and_estimate, creator: staff_member, + virtual_event: false, + start_date: "2022-10-12", end_date: "2022-10-14") end it "adds Virtual to the event format column" do diff --git a/spec/services/requests_list_spec.rb b/spec/services/requests_list_spec.rb index 16435ceb..c7e9c89c 100644 --- a/spec/services/requests_list_spec.rb +++ b/spec/services/requests_list_spec.rb @@ -3,13 +3,13 @@ require "rails_helper" RSpec.describe RequestList, type: :model do - let(:user) { FactoryBot.create :user } - let(:staff_profile) { FactoryBot.create :staff_profile, :with_department, user: } + let(:user) { create(:user) } + let(:staff_profile) { create(:staff_profile, :with_department, user:) } - let(:other_absence) { FactoryBot.create(:absence_request) } - let(:other_travel) { FactoryBot.create(:travel_request) } - let(:my_absence) { FactoryBot.create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } - let(:my_travel) { FactoryBot.create(:travel_request, creator: staff_profile) } + let(:other_absence) { create(:absence_request) } + let(:other_travel) { create(:travel_request) } + let(:my_absence) { create(:absence_request, creator: staff_profile, start_date: Time.zone.tomorrow) } + let(:my_travel) { create(:travel_request, creator: staff_profile) } describe "GET #my_requests" do before do @@ -28,7 +28,7 @@ end it "accepts limit by status" do - approved_absence = FactoryBot.create(:absence_request, action: :approve, creator: staff_profile) + approved_absence = create(:absence_request, action: :approve, creator: staff_profile) list = described_class.list_requests(creator: staff_profile, request_filters: { status: "approved" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(approved_absence.id) @@ -41,7 +41,7 @@ end it "accepts limit by request type sick" do - my_sick_absence = FactoryBot.create(:absence_request, creator: staff_profile, absence_type: "sick") + my_sick_absence = create(:absence_request, creator: staff_profile, absence_type: "sick") list = described_class.list_requests(creator: staff_profile, request_filters: { "request_type" => "sick" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_sick_absence.id) @@ -54,17 +54,17 @@ end it "accepts limit by request type business" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, travel_category: "business") + my_business_travel = create(:travel_request, creator: staff_profile, travel_category: "business") list = described_class.list_requests(creator: staff_profile, request_filters: { "request_type" => "business" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_business_travel.id) end it "accepts limit by status and request type" do - my_business_travel = FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", - travel_category: "business") - FactoryBot.create(:travel_request, creator: staff_profile, action: "approve", - travel_category: "professional_development") + my_business_travel = create(:travel_request, creator: staff_profile, action: "approve", + travel_category: "business") + create(:travel_request, creator: staff_profile, action: "approve", + travel_category: "professional_development") list = described_class.list_requests(creator: staff_profile, request_filters: { "request_type" => "business", "status" => "approved" }, search_query: nil, order: nil) expect(list.map(&:id)).to contain_exactly(my_business_travel.id) @@ -78,19 +78,19 @@ # r1: created yesterday, modified tomorrow, start date today let(:r1) do Timecop.freeze(yesterday) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: today) + create(:travel_request, creator: staff_profile, start_date: today) end end # r2: created today, modified yesterday, start date tomorrow let(:r2) do Timecop.freeze(today) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: tomorrow) + create(:travel_request, creator: staff_profile, start_date: tomorrow) end end # r3: created tomorrow, modified today, start date yesterday let(:r3) do Timecop.freeze(tomorrow) do - FactoryBot.create(:travel_request, creator: staff_profile, start_date: yesterday) + create(:travel_request, creator: staff_profile, start_date: yesterday) end end @@ -157,12 +157,12 @@ describe "GET #my_requests with searching" do it "retrieves a result" do - absence_request = FactoryBot.create(:absence_request, creator: staff_profile, action: :approve) - absence_request2 = FactoryBot.create(:absence_request, creator: staff_profile, action: :deny) - travel_request = FactoryBot.create(:travel_request, creator: staff_profile) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request) - FactoryBot.create(:note, content: "elephants love balloons", request: absence_request2) - FactoryBot.create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) + absence_request = create(:absence_request, creator: staff_profile, action: :approve) + absence_request2 = create(:absence_request, creator: staff_profile, action: :deny) + travel_request = create(:travel_request, creator: staff_profile) + create(:note, content: "elephants love balloons", request: absence_request) + create(:note, content: "elephants love balloons", request: absence_request2) + create(:note, content: "flamingoes are pink because of shrimp", request: travel_request) list = described_class.list_requests(creator: staff_profile, request_filters: { "status" => "approved" }, search_query: "balloons", order: nil) diff --git a/spec/services/staff_report_processor_spec.rb b/spec/services/staff_report_processor_spec.rb index 1d5aa66e..008eb044 100644 --- a/spec/services/staff_report_processor_spec.rb +++ b/spec/services/staff_report_processor_spec.rb @@ -74,10 +74,10 @@ def find_by_netid(net_id) end it "updates a user if their information changes" do - user = FactoryBot.create(:user, uid: "testi") - staff_profile = FactoryBot.create :staff_profile, user: user - ajarvis_user = FactoryBot.create(:user, uid: "ajarvis") - FactoryBot.create :staff_profile, user: ajarvis_user + user = create(:user, uid: "testi") + staff_profile = create(:staff_profile, user: user) + ajarvis_user = create(:user, uid: "ajarvis") + create(:staff_profile, user: ajarvis_user) expect do described_class.process(data: "#{heading_line}\n#{user_line}\n#{manager_line}\n#{dean_line}", ldap_service_class: FakeLdapClass, department_config:) @@ -133,8 +133,8 @@ def find_by_netid(net_id) before do assistants.each do |uid| - user = FactoryBot.create(:user, uid:) - FactoryBot.create(:staff_profile, user:) + user = create(:user, uid:) + create(:staff_profile, user:) end end diff --git a/spec/system/delegate_spec.rb b/spec/system/delegate_spec.rb index 68b795ae..a92a201e 100644 --- a/spec/system/delegate_spec.rb +++ b/spec/system/delegate_spec.rb @@ -4,9 +4,9 @@ RSpec.describe "Delegate", type: :system do it "displays an error when creating a duplicate delegate" do - delegator_user = FactoryBot.create :user - FactoryBot.create(:staff_profile, user: delegator_user) - delegate_profile = FactoryBot.create(:staff_profile) + delegator_user = create(:user) + create(:staff_profile, user: delegator_user) + delegate_profile = create(:staff_profile) login_as(delegator_user) visit "/delegates" diff --git a/spec/views/absence_requests/edit.html.erb_spec.rb b/spec/views/absence_requests/edit.html.erb_spec.rb index 39f113bf..d6d62a6f 100644 --- a/spec/views/absence_requests/edit.html.erb_spec.rb +++ b/spec/views/absence_requests/edit.html.erb_spec.rb @@ -4,7 +4,7 @@ RSpec.describe "absence_requests/edit", type: :view do let(:absence_request) do - FactoryBot.create(:absence_request, absence_type: "vacation") + create(:absence_request, absence_type: "vacation") end before do diff --git a/spec/views/absence_requests/new.html.erb_spec.rb b/spec/views/absence_requests/new.html.erb_spec.rb index b11eb6da..857aa089 100644 --- a/spec/views/absence_requests/new.html.erb_spec.rb +++ b/spec/views/absence_requests/new.html.erb_spec.rb @@ -4,7 +4,7 @@ RSpec.describe "absence_requests/new", type: :view do let(:absence_request) do - FactoryBot.build(:absence_request, absence_type: "vacation") + build(:absence_request, absence_type: "vacation") end before do diff --git a/spec/views/absence_requests/show.html.erb_spec.rb b/spec/views/absence_requests/show.html.erb_spec.rb index de49db8c..613a9649 100644 --- a/spec/views/absence_requests/show.html.erb_spec.rb +++ b/spec/views/absence_requests/show.html.erb_spec.rb @@ -3,9 +3,9 @@ require "rails_helper" RSpec.describe "absence_requests/show", type: :view do - let(:creator) { FactoryBot.create(:staff_profile, :with_supervisor, given_name: "Sally", surname: "Smith") } + let(:creator) { create(:staff_profile, :with_supervisor, given_name: "Sally", surname: "Smith") } let(:absence_request) do - AbsenceRequestDecorator.new(FactoryBot.create(:absence_request, :with_note, creator:)) + AbsenceRequestDecorator.new(create(:absence_request, :with_note, creator:)) end before do diff --git a/spec/views/delegates/index.html.erb_spec.rb b/spec/views/delegates/index.html.erb_spec.rb index c049497d..9572f19e 100644 --- a/spec/views/delegates/index.html.erb_spec.rb +++ b/spec/views/delegates/index.html.erb_spec.rb @@ -3,12 +3,12 @@ require "rails_helper" RSpec.describe "delegates/index", type: :view do - let(:delegate1) { FactoryBot.create(:delegate) } - let(:delegate2) { FactoryBot.create(:delegate) } + let(:delegate1) { create(:delegate) } + let(:delegate2) { create(:delegate) } before do assign(:delegates, [delegate1, delegate2]) - assign(:delegate, FactoryBot.build(:delegate)) + assign(:delegate, build(:delegate)) end it "renders new delegate form" do diff --git a/spec/views/delegates/to_assume.html.erb_spec.rb b/spec/views/delegates/to_assume.html.erb_spec.rb index ade8ac08..67527724 100644 --- a/spec/views/delegates/to_assume.html.erb_spec.rb +++ b/spec/views/delegates/to_assume.html.erb_spec.rb @@ -3,8 +3,8 @@ require "rails_helper" RSpec.describe "delegates/to_assume", type: :view do - let(:delegate1) { FactoryBot.create(:delegate) } - let(:delegate2) { FactoryBot.create(:delegate) } + let(:delegate1) { create(:delegate) } + let(:delegate2) { create(:delegate) } before do assign(:delegators, [delegate1, delegate2]) diff --git a/spec/views/travel_requests/_review_detail.html.erb_spec.rb b/spec/views/travel_requests/_review_detail.html.erb_spec.rb index 70bfe5a0..e00e74ad 100644 --- a/spec/views/travel_requests/_review_detail.html.erb_spec.rb +++ b/spec/views/travel_requests/_review_detail.html.erb_spec.rb @@ -4,12 +4,12 @@ RSpec.describe "travel_requests/_review_detail", type: :view, js: true do describe "event format badge" do - let(:creator) { FactoryBot.create(:staff_profile, :with_supervisor, given_name: "Sally", surname: "Smith") } + let(:creator) { create(:staff_profile, :with_supervisor, given_name: "Sally", surname: "Smith") } context "when event is virtual" do let(:travel_request) do - TravelRequestDecorator.new(FactoryBot.create(:travel_request, :with_note_and_estimate, creator:, - virtual_event: true)) + TravelRequestDecorator.new(create(:travel_request, :with_note_and_estimate, creator:, + virtual_event: true)) end it "has a green Virtual badge" do @@ -24,7 +24,7 @@ context "when event is in-person" do let(:travel_request) do - TravelRequestDecorator.new(FactoryBot.create(:travel_request, :with_note_and_estimate, creator:)) + TravelRequestDecorator.new(create(:travel_request, :with_note_and_estimate, creator:)) end it "has a blue In-person badge" do @@ -39,7 +39,7 @@ context "when event format is unknown" do let(:travel_request) do - TravelRequestDecorator.new(FactoryBot.create(:travel_request, :with_note_and_estimate, creator:, virtual_event: nil)) + TravelRequestDecorator.new(create(:travel_request, :with_note_and_estimate, creator:, virtual_event: nil)) end it "shows no badge" do diff --git a/spec/views/travel_requests/edit.html.erb_spec.rb b/spec/views/travel_requests/edit.html.erb_spec.rb index 7f558b2b..c77469ca 100644 --- a/spec/views/travel_requests/edit.html.erb_spec.rb +++ b/spec/views/travel_requests/edit.html.erb_spec.rb @@ -4,9 +4,9 @@ RSpec.describe "travel_requests/edit", type: :view do let(:travel_request) do - FactoryBot.create(:travel_request, :with_note_and_estimate, purpose: "my grand purpose", - participation: "presenter", - travel_category: "business") + create(:travel_request, :with_note_and_estimate, purpose: "my grand purpose", + participation: "presenter", + travel_category: "business") end before do diff --git a/spec/views/travel_requests/new.html.erb_spec.rb b/spec/views/travel_requests/new.html.erb_spec.rb index 2f152809..67750acf 100644 --- a/spec/views/travel_requests/new.html.erb_spec.rb +++ b/spec/views/travel_requests/new.html.erb_spec.rb @@ -4,9 +4,9 @@ RSpec.describe "travel_requests/new", type: :view do let(:travel_request) do - FactoryBot.build(:travel_request, purpose: "my grand purpose", - participation: "presenter", - travel_category: "business") + build(:travel_request, purpose: "my grand purpose", + participation: "presenter", + travel_category: "business") end before do diff --git a/spec/views/travel_requests/show.html.erb_spec.rb b/spec/views/travel_requests/show.html.erb_spec.rb index b33d4a5b..ad4eee6c 100644 --- a/spec/views/travel_requests/show.html.erb_spec.rb +++ b/spec/views/travel_requests/show.html.erb_spec.rb @@ -3,9 +3,9 @@ require "rails_helper" RSpec.describe "travel_requests/show", type: :view do - let(:creator) { FactoryBot.create(:staff_profile, :with_supervisor, given_name: "Sally", surname: "Smith") } + let(:creator) { create(:staff_profile, :with_supervisor, given_name: "Sally", surname: "Smith") } let(:travel_request) do - TravelRequestDecorator.new(FactoryBot.create(:travel_request, :with_note_and_estimate, creator:)) + TravelRequestDecorator.new(create(:travel_request, :with_note_and_estimate, creator:)) end before do @@ -37,7 +37,7 @@ it "does not render edit if current profile is not the creator" do without_partial_double_verification do - allow(view).to receive(:current_staff_profile).and_return(FactoryBot.create(:staff_profile)) + allow(view).to receive(:current_staff_profile).and_return(create(:staff_profile)) render end expect(rendered).not_to have_selector("hyperlink[href=\"#{edit_travel_request_path(travel_request.request)}\"]",