f5b632ed89
Reviewed-on: #397 Co-authored-by: miteruzo <miteruzo@naver.com> Co-committed-by: miteruzo <miteruzo@naver.com>
35 行
1.1 KiB
Ruby
35 行
1.1 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe Setting, type: :model do
|
|
it 'accepts the default typed user settings' do
|
|
setting = described_class.new({ user: create(:user) }.merge(described_class.defaults))
|
|
|
|
expect(setting).to be_valid
|
|
end
|
|
|
|
it 'requires one settings row per user' do
|
|
user = create(:user)
|
|
described_class.create!({ user: }.merge(described_class.defaults))
|
|
|
|
duplicate = described_class.new({ user: }.merge(described_class.defaults))
|
|
|
|
expect(duplicate).not_to be_valid
|
|
expect(duplicate.errors[:user_id]).to be_present
|
|
end
|
|
|
|
it 'validates enum-like settings columns' do
|
|
setting = described_class.new(
|
|
{ user: create(:user),
|
|
theme: 'neon',
|
|
auto_fetch_title: 'sometimes',
|
|
auto_fetch_thumbnail: 'sometimes',
|
|
wiki_editor_mode: 'sideways' })
|
|
|
|
expect(setting).not_to be_valid
|
|
expect(setting.errors[:theme]).to be_present
|
|
expect(setting.errors[:auto_fetch_title]).to be_present
|
|
expect(setting.errors[:auto_fetch_thumbnail]).to be_present
|
|
expect(setting.errors[:wiki_editor_mode]).to be_present
|
|
end
|
|
end
|