mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-11 10:06:53 +08:00
73 lines
2.2 KiB
Ruby
73 lines
2.2 KiB
Ruby
require 'test_helper'
|
|
require 'helpers/archivable_model_test_helper'
|
|
require 'helpers/searchable_model_test_helper'
|
|
|
|
class ProjectTest < ActiveSupport::TestCase
|
|
include ArchivableModelTestHelper
|
|
include SearchableModelTestHelper
|
|
|
|
def setup
|
|
@project = projects(:test1)
|
|
@project2 = projects(:test2)
|
|
@project3 = projects(:test3)
|
|
end
|
|
|
|
should validate_length_of(:name)
|
|
.is_at_least(Constants::NAME_MIN_LENGTH)
|
|
.is_at_most(Constants::NAME_MAX_LENGTH)
|
|
|
|
test "should have non-blank name" do
|
|
@project.name = ""
|
|
assert @project.invalid?, "Project with blank name returns valid? = true"
|
|
end
|
|
|
|
test "should have organization-wide unique name" do
|
|
@project.name = @project2.name
|
|
assert @project.invalid?, "Project with non-unique organization-wide name returns valid? = true"
|
|
end
|
|
|
|
test "should not have non-organization-wide unique name" do
|
|
@project.name = @project3.name
|
|
assert @project.valid?, "Project with non-unique name in different organizations returns valid? = false"
|
|
end
|
|
|
|
test "should have default visibility & archived" do
|
|
project = Project.new(
|
|
name: "sample project",
|
|
organization_id: organizations(:biosistemika).id)
|
|
assert project.hidden?, "Project by default doesn't have visibility = hidden set"
|
|
assert_not project.archived?, "Project has default archived = true"
|
|
end
|
|
|
|
test "should belong to organization" do
|
|
@project.organization = nil
|
|
assert_not @project.valid?, "Project without organization returns valid? = true"
|
|
@project.organization_id = 12321321
|
|
assert_not @project.valid?, "Project with organization returls valid? = false"
|
|
end
|
|
|
|
test "should have archived set" do
|
|
project = Project.new(
|
|
name: "test project",
|
|
visibility: 1,
|
|
organization_id: organizations(:biosistemika).id
|
|
)
|
|
assert_archived_present(project)
|
|
assert_active_is_inverse_of_archived(project)
|
|
end
|
|
|
|
test "archiving should work" do
|
|
user = users(:steve)
|
|
project = Project.new(
|
|
name: "test project",
|
|
visibility: 1,
|
|
organization_id: organizations(:biosistemika).id,
|
|
)
|
|
project.save
|
|
archive_and_restore_action_test(project, user)
|
|
end
|
|
|
|
test "where_attributes_like should work" do
|
|
attributes_like_test(Project, :name, "star")
|
|
end
|
|
end
|