mirror of
https://github.com/astuto/astuto.git
synced 2025-12-16 11:47:56 +01:00
Refactor model tests
This commit is contained in:
@@ -3,9 +3,4 @@ FactoryBot.define do
|
|||||||
sequence(:name) { |n| "Board#{n}" }
|
sequence(:name) { |n| "Board#{n}" }
|
||||||
description { "My fantastic board" }
|
description { "My fantastic board" }
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :noname_board, class: Board do
|
|
||||||
name { "" }
|
|
||||||
description { "This board has no name :O" }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,31 +1,32 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe Board, type: :model do
|
RSpec.describe Board, type: :model do
|
||||||
|
|
||||||
let(:board) { FactoryBot.create(:board) }
|
let(:board) { FactoryBot.create(:board) }
|
||||||
let(:noname_board) { FactoryBot.build(:noname_board) }
|
|
||||||
|
|
||||||
it 'should be valid' do
|
it 'should be valid' do
|
||||||
expect(board).to be_valid
|
expect(board).to be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a non-nil name' do
|
it 'has a non-nil and non-empty name' do
|
||||||
expect(noname_board).to be_invalid
|
nil_name_board = FactoryBot.build(:board, name: nil)
|
||||||
|
empty_name_board = FactoryBot.build(:board, name: "")
|
||||||
|
|
||||||
|
expect(nil_name_board).to be_invalid
|
||||||
|
expect(empty_name_board).to be_invalid
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has an unique name' do
|
it 'has an unique name' do
|
||||||
board
|
board
|
||||||
board2 = Board.new(name: board.name, description: "This board has the same name as board!")
|
board2 = FactoryBot.build(:board, name: board.name)
|
||||||
|
|
||||||
expect(board2).to be_invalid
|
expect(board2).to be_invalid
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a description that can be nil or empty' do
|
it 'has a description that can be nil or empty' do
|
||||||
nildescription_board = Board.new(name: "nil board", description: nil)
|
nil_description_board = FactoryBot.build(:board, description: nil)
|
||||||
emptydescription_board = Board.new(name: "empty board", description: "")
|
empty_description_board = FactoryBot.build(:board, description: "")
|
||||||
|
|
||||||
expect(nildescription_board).to be_valid
|
expect(nil_description_board).to be_valid
|
||||||
expect(emptydescription_board).to be_valid
|
expect(empty_description_board).to be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ RSpec.describe Post, type: :model do
|
|||||||
expect(post).to be_valid
|
expect(post).to be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a non-null and non-empty title' do
|
it 'has a non-nil and non-empty title' do
|
||||||
nil_post = FactoryBot.build(:post, title: nil)
|
nil_post = FactoryBot.build(:post, title: nil)
|
||||||
empty_post = FactoryBot.build(:post, title: "")
|
empty_post = FactoryBot.build(:post, title: "")
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ RSpec.describe PostStatus, type: :model do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'must have a name' do
|
it 'must have a name' do
|
||||||
emptyname = FactoryBot.build(:post_status, name: "")
|
empty_name = FactoryBot.build(:post_status, name: "")
|
||||||
nilname = FactoryBot.build(:post_status, name: nil)
|
nil_name = FactoryBot.build(:post_status, name: nil)
|
||||||
|
|
||||||
expect(emptyname).to be_invalid
|
expect(empty_name).to be_invalid
|
||||||
expect(nilname).to be_invalid
|
expect(nil_name).to be_invalid
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a unique name' do
|
it 'has a unique name' do
|
||||||
@@ -22,18 +22,18 @@ RSpec.describe PostStatus, type: :model do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'has a valid hex color' do
|
it 'has a valid hex color' do
|
||||||
nilcolor = FactoryBot.build(:post_status, color: nil)
|
nil_color = FactoryBot.build(:post_status, color: nil)
|
||||||
emptycolor = FactoryBot.build(:post_status, color: "")
|
empty_color = FactoryBot.build(:post_status, color: "")
|
||||||
invalidcolor = FactoryBot.build(:post_status, color: "ffffff")
|
invalid_color = FactoryBot.build(:post_status, color: "ffffff")
|
||||||
invalidcolor2 = FactoryBot.build(:post_status, color: "#ffff")
|
invalid_color2 = FactoryBot.build(:post_status, color: "#ffff")
|
||||||
validcolor = FactoryBot.build(:post_status, color: "#fff")
|
valid_color = FactoryBot.build(:post_status, color: "#fff")
|
||||||
validcolor2 = FactoryBot.build(:post_status, color: "#ffffff")
|
valid_color2 = FactoryBot.build(:post_status, color: "#ffffff")
|
||||||
|
|
||||||
expect(nilcolor).to be_invalid
|
expect(nil_color).to be_invalid
|
||||||
expect(emptycolor).to be_invalid
|
expect(empty_color).to be_invalid
|
||||||
expect(invalidcolor).to be_invalid
|
expect(invalid_color).to be_invalid
|
||||||
expect(invalidcolor2).to be_invalid
|
expect(invalid_color2).to be_invalid
|
||||||
expect(validcolor).to be_valid
|
expect(valid_color).to be_valid
|
||||||
expect(validcolor2).to be_valid
|
expect(valid_color2).to be_valid
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe User, type: :model do
|
RSpec.describe User, type: :model do
|
||||||
|
|
||||||
let(:user) { FactoryBot.build(:user) }
|
let(:user) { FactoryBot.build(:user) }
|
||||||
let(:nilname_user) { FactoryBot.build(:user, full_name: nil) }
|
|
||||||
let(:emptyname_user) { FactoryBot.build(:user, full_name: "") }
|
|
||||||
let(:short_user) { FactoryBot.build(:user, full_name: "a") }
|
|
||||||
let(:long_user) { FactoryBot.build(:user, full_name: "a" * 33) }
|
|
||||||
|
|
||||||
it 'should be valid' do
|
it 'should be valid' do
|
||||||
expect(user).to be_valid
|
expect(user).to be_valid
|
||||||
@@ -31,26 +26,28 @@ RSpec.describe User, type: :model do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'has a non-nil and non-empty full name' do
|
it 'has a non-nil and non-empty full name' do
|
||||||
expect(nilname_user).to be_invalid
|
nil_name_user = FactoryBot.build(:user, full_name: nil)
|
||||||
expect(emptyname_user).to be_invalid
|
empty_name_user = FactoryBot.build(:user, full_name: "")
|
||||||
|
|
||||||
|
expect(nil_name_user).to be_invalid
|
||||||
|
expect(empty_name_user).to be_invalid
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a full name between 2 and 32 characters' do
|
it 'has a full name between 2 and 32 characters' do
|
||||||
expect(short_user).to be_invalid
|
too_short_user = FactoryBot.build(:user, full_name: "a" * 1)
|
||||||
expect(long_user).to be_invalid
|
short_user = FactoryBot.build(:user, full_name: "a" * 2)
|
||||||
|
long_user = FactoryBot.build(:user, full_name: "a" * 32)
|
||||||
|
too_long_user = FactoryBot.build(:user, full_name: "a" * 33)
|
||||||
short_user.full_name = "a" * 2;
|
|
||||||
long_user.full_name = "a" * 32;
|
|
||||||
|
|
||||||
|
expect(too_short_user).to be_invalid
|
||||||
expect(short_user).to be_valid
|
expect(short_user).to be_valid
|
||||||
expect(long_user).to be_valid
|
expect(long_user).to be_valid
|
||||||
|
expect(too_long_user).to be_invalid
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has an email that must contain a @' do
|
it 'has an email that must contain a @' do
|
||||||
invalid_email_user = User.new(full_name: "Valid name", email: "invalid email", password: "password")
|
invalid_email_user = FactoryBot.build(:user, email: "invalid.email")
|
||||||
|
|
||||||
expect(invalid_email_user).to be_invalid
|
expect(invalid_email_user).to be_invalid
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user