lune/tests/roblox/instance/new.luau
2023-05-20 19:49:37 +02:00

48 lines
1.4 KiB
Text

local roblox = require("@lune/roblox")
local Instance = roblox.Instance
-- Should not allow creating unknown classes
assert(not pcall(function()
Instance.new("asdf")
end))
-- Should be case sensitive
assert(not pcall(function()
Instance.new("part")
end))
-- Should allow "not creatable" tagged classes to be created
Instance.new("BasePart")
-- Should have correct classnames
assert(Instance.new("Part").ClassName == "Part")
assert(Instance.new("Folder").ClassName == "Folder")
assert(Instance.new("ReplicatedStorage").ClassName == "ReplicatedStorage")
-- Should have initial names that are the same as the class name
assert(Instance.new("Part").Name == "Part")
assert(Instance.new("Folder").Name == "Folder")
assert(Instance.new("ReplicatedStorage").Name == "ReplicatedStorage")
-- Parent should be nil until parented
local folder = Instance.new("Folder")
local model = Instance.new("Model")
assert(folder.Parent == nil)
assert(model.Parent == nil)
-- Parenting and indexing should work
model.Parent = folder
assert(model.Parent == folder)
assert((folder :: any).Model == model)
-- Parenting to nil should work
model.Parent = nil
assert(model.Parent == nil)
-- Name should be able to be set, and should not be nillable
model.Name = "MyCoolModel"
assert(model.Name == "MyCoolModel")
assert(not pcall(function()
model.Name = nil :: any
end))
assert(model.Name == "MyCoolModel")