Introduce the EventType model
This model will be used to define what types of events will happen during a conference.
This commit is contained in:
parent
5c612dfb86
commit
9f0886af1e
|
@ -0,0 +1,7 @@
|
||||||
|
class EventType < ActiveRecord::Base
|
||||||
|
belongs_to :conference
|
||||||
|
translates :name, :description
|
||||||
|
|
||||||
|
validates :name, presence: true, uniqueness: {scope: :conference, message: :must_be_unique_for_the_conference}
|
||||||
|
validates :description, presence: true
|
||||||
|
end
|
|
@ -0,0 +1,15 @@
|
||||||
|
class CreateEventTypes < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
create_table :event_types do |t|
|
||||||
|
t.references :conference, index: true, foreign_key: true
|
||||||
|
|
||||||
|
t.timestamps null: false
|
||||||
|
end
|
||||||
|
EventType.create_translation_table! name: :string, description: :text
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
drop_table :event_types
|
||||||
|
EventType.drop_translation_table!
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :event_type do
|
||||||
|
name { |n| "Track #{n}" }
|
||||||
|
description 'MyText'
|
||||||
|
conference
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,34 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe EventType, type: :model do
|
||||||
|
|
||||||
|
describe 'description' do
|
||||||
|
it 'must be present' do
|
||||||
|
expect(build(:event_type, description: nil)).to have_error_on :description
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'is translatable' do
|
||||||
|
event_type = build(:event_type)
|
||||||
|
expect(event_type).to have_translatable :description
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'name' do
|
||||||
|
it 'must be present' do
|
||||||
|
expect(build(:event_type, name: nil)).to have_error_on :name
|
||||||
|
expect(build(:event_type, name: '')).to have_error_on :name
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'must be unique for a event_type' do
|
||||||
|
conference = create :conference
|
||||||
|
create :event_type, name: 'foo', conference: conference
|
||||||
|
expect(build(:event_type, name: 'foo', conference: conference)).to have_error_on :name
|
||||||
|
expect(build(:event_type, name: 'foo', conference: create(:conference))).to_not have_error_on :name
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'is translatable' do
|
||||||
|
event_type = build(:event_type)
|
||||||
|
expect(event_type).to have_translatable :name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue