mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-12-13 23:48:55 +01:00
74 lines
2.3 KiB
Ruby
74 lines
2.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'test_helper'
|
|
|
|
class SpaceTest < ActiveSupport::TestCase
|
|
bio_lab = {
|
|
name: 'Bio-lab',
|
|
description: 'An biological laboratory to experiment bio-technologies',
|
|
default_places: 5
|
|
}
|
|
|
|
test 'create a space' do
|
|
space = Space.create!(bio_lab)
|
|
assert_not_nil space
|
|
subtype = StatisticSubType.find_by(key: space.slug)
|
|
assert_not_nil subtype
|
|
end
|
|
|
|
test 'update a space' do
|
|
new_name = 'Bio-tech lab'
|
|
space = Space.create!(bio_lab)
|
|
space.update(name: new_name)
|
|
subtype = StatisticSubType.find_by(key: space.slug)
|
|
assert_equal new_name, subtype.label
|
|
end
|
|
|
|
test 'delete a space' do
|
|
space = Space.create!(bio_lab)
|
|
slug = space.slug
|
|
space.destroy!
|
|
assert_nil Space.find_by(slug: slug)
|
|
assert_nil StatisticSubType.find_by(key: slug)
|
|
end
|
|
|
|
test "space can be associated with spaces in a tree-like structure" do
|
|
space_1 = Space.create!(name: "space 1", default_places: 2)
|
|
space_1_1 = Space.create!(name: "space 1_1", default_places: 2, parent: space_1)
|
|
space_1_2 = Space.create!(name: "space 1_2", default_places: 2, parent: space_1)
|
|
space_1_2_1 = Space.create!(name: "space 1_2_1", default_places: 2, parent: space_1_2)
|
|
space_other = Space.create!(name: "space other", default_places: 2)
|
|
|
|
assert_equal [space_1_1, space_1_2], space_1.children
|
|
assert_equal [], space_1_1.children
|
|
assert_equal [space_1_2_1], space_1_2.children
|
|
|
|
assert_equal [space_1, space_1_2], space_1_2_1.ancestors
|
|
assert_equal [space_1], space_1_2.ancestors
|
|
assert_equal [space_1], space_1_1.ancestors
|
|
assert_equal [], space_1.ancestors
|
|
|
|
assert_equal [space_1_1, space_1_2, space_1_2_1], space_1.descendants
|
|
assert_equal [], space_1_1.descendants
|
|
assert_equal [space_1_2_1], space_1_2.descendants
|
|
assert_equal [], space_1_2_1.descendants
|
|
|
|
assert_equal [], space_other.descendants
|
|
assert_equal [], space_other.ancestors
|
|
end
|
|
|
|
test "space can be associated with machines" do
|
|
space = spaces(:space_1)
|
|
machine_1 = machines(:machine_1)
|
|
machine_2 = machines(:machine_2)
|
|
|
|
space.machines << machine_1
|
|
space.machines << machine_2
|
|
|
|
assert_equal 2, space.machines.count
|
|
|
|
assert_equal space, machine_1.space
|
|
assert_equal space, machine_2.space
|
|
end
|
|
end
|