diff --git a/app/models/service.rb b/app/models/service.rb index 6ce392d66c0..d9caef840ac 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -70,6 +70,7 @@ class Service < ApplicationRecord default_value_for :display, false default_value_for :retired, false + default_value_for :initiator, 'user' validates :display, :inclusion => { :in => [true, false] } validates :retired, :inclusion => { :in => [true, false] } diff --git a/db/migrate/20170222214902_add_initiator_to_service.rb b/db/migrate/20170222214902_add_initiator_to_service.rb new file mode 100644 index 00000000000..19a6ac28915 --- /dev/null +++ b/db/migrate/20170222214902_add_initiator_to_service.rb @@ -0,0 +1,14 @@ +class AddInitiatorToService < ActiveRecord::Migration[5.0] + class Service < ActiveRecord::Base; end + + def up + add_column :services, :initiator, :string, :comment => "Entity that initiated the service creation" + say_with_time("Updating existing services to 'user' initiator") do + Service.update_all(:initiator => 'user') + end + end + + def down + remove_column :services, :initiator + end +end diff --git a/db/schema.yml b/db/schema.yml index f8c035b75a0..5379238e440 100644 --- a/db/schema.yml +++ b/db/schema.yml @@ -6435,6 +6435,7 @@ services: - retirement_requester - tenant_id - ancestry +- initiator sessions: - id - session_id diff --git a/spec/migrations/20170222214902_add_initiator_to_service_spec.rb b/spec/migrations/20170222214902_add_initiator_to_service_spec.rb new file mode 100644 index 00000000000..2e4239074ca --- /dev/null +++ b/spec/migrations/20170222214902_add_initiator_to_service_spec.rb @@ -0,0 +1,19 @@ +require_migration + +describe AddInitiatorToService do + let(:service_stub) { migration_stub(:Service) } + let(:default_initiator) { "user" } + + migration_context :up do + it "adds initiator and sets it to user" do + service_stub.create!(:name => 'service1') + service_stub.create!(:name => 'service2') + + migrate + + expect(service_stub.count).to eq(2) + expect(service_stub.find_by(:name => 'service1').initiator).to eq(default_initiator) + expect(service_stub.find_by(:name => 'service2').initiator).to eq(default_initiator) + end + end +end