Add Account Model specs (#341)
This commit is contained in:
parent
6ca403542d
commit
c758c13ffb
4 changed files with 27 additions and 3 deletions
|
@ -3,7 +3,7 @@
|
||||||
# Table name: accounts
|
# Table name: accounts
|
||||||
#
|
#
|
||||||
# id :integer not null, primary key
|
# id :integer not null, primary key
|
||||||
# name :string
|
# name :string not null
|
||||||
# created_at :datetime not null
|
# created_at :datetime not null
|
||||||
# updated_at :datetime not null
|
# updated_at :datetime not null
|
||||||
#
|
#
|
||||||
|
@ -11,6 +11,8 @@
|
||||||
class Account < ApplicationRecord
|
class Account < ApplicationRecord
|
||||||
include Events::Types
|
include Events::Types
|
||||||
|
|
||||||
|
validates :name, presence: true
|
||||||
|
|
||||||
has_many :users, dependent: :destroy
|
has_many :users, dependent: :destroy
|
||||||
has_many :inboxes, dependent: :destroy
|
has_many :inboxes, dependent: :destroy
|
||||||
has_many :conversations, dependent: :destroy
|
has_many :conversations, dependent: :destroy
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddNotNullConstraintToAccountName < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
change_column_null :accounts, :name, false
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,13 +10,13 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# 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
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
|
||||||
create_table "accounts", id: :serial, force: :cascade do |t|
|
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 "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
end
|
end
|
||||||
|
|
17
spec/models/account_spec.rb
Normal file
17
spec/models/account_spec.rb
Normal file
|
@ -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
|
Loading…
Reference in a new issue