diff --git a/app/models/account.rb b/app/models/account.rb index e9e214c2f..4eafc7c91 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -3,7 +3,7 @@ # Table name: accounts # # id :integer not null, primary key -# name :string +# name :string not null # created_at :datetime not null # updated_at :datetime not null # @@ -11,6 +11,8 @@ class Account < ApplicationRecord include Events::Types + validates :name, presence: true + has_many :users, dependent: :destroy has_many :inboxes, dependent: :destroy has_many :conversations, dependent: :destroy diff --git a/db/migrate/20191202173004_add_not_null_constraint_to_account_name.rb b/db/migrate/20191202173004_add_not_null_constraint_to_account_name.rb new file mode 100644 index 000000000..4b7110f29 --- /dev/null +++ b/db/migrate/20191202173004_add_not_null_constraint_to_account_name.rb @@ -0,0 +1,5 @@ +class AddNotNullConstraintToAccountName < ActiveRecord::Migration[6.0] + def change + change_column_null :accounts, :name, false + end +end diff --git a/db/schema.rb b/db/schema.rb index c27777a94..b4bf583e3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,13 +10,13 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_11_26_185833) do +ActiveRecord::Schema.define(version: 2019_12_02_173004) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" create_table "accounts", id: :serial, force: :cascade do |t| - t.string "name" + t.string "name", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb new file mode 100644 index 000000000..dddc4d679 --- /dev/null +++ b/spec/models/account_spec.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Account do + it { is_expected.to validate_presence_of(:name) } + + it { is_expected.to have_many(:users).dependent(:destroy) } + it { is_expected.to have_many(:inboxes).dependent(:destroy) } + it { is_expected.to have_many(:conversations).dependent(:destroy) } + it { is_expected.to have_many(:contacts).dependent(:destroy) } + it { is_expected.to have_many(:telegram_bots).dependent(:destroy) } + it { is_expected.to have_many(:canned_responses).dependent(:destroy) } + it { is_expected.to have_many(:facebook_pages).class_name('::Channel::FacebookPage').dependent(:destroy) } + it { is_expected.to have_many(:web_widgets).class_name('::Channel::WebWidget').dependent(:destroy) } + it { is_expected.to have_one(:subscription).dependent(:destroy) } +end