add gs
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
return function()
|
||||
local createEnum = require(script.Parent.createEnum)
|
||||
|
||||
describe("validation rules", function()
|
||||
it("should throw errors if given invalid values", function()
|
||||
expect(function()
|
||||
createEnum(1, {})
|
||||
end).to.throw()
|
||||
|
||||
expect(function()
|
||||
createEnum("MyEnum", "not a table")
|
||||
end).to.throw()
|
||||
end)
|
||||
|
||||
it("should throw errors if provided table contains invalid values", function()
|
||||
expect(function()
|
||||
createEnum("IllegalShadowing", {
|
||||
"isMember",
|
||||
})
|
||||
end).to.throw()
|
||||
|
||||
expect(function()
|
||||
createEnum("MyEnum", {
|
||||
"Test",
|
||||
12,
|
||||
})
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("enum properties", function()
|
||||
it("should have a reasonable string format for debugging", function()
|
||||
local MyEnum = createEnum("MyEnum", {
|
||||
"Value",
|
||||
})
|
||||
|
||||
expect(tostring(MyEnum.Value)).to.equal("MyEnum.Value")
|
||||
end)
|
||||
|
||||
it("should provide an isMember function to check membership", function()
|
||||
local MyEnum = createEnum("MyEnum", {
|
||||
"Value",
|
||||
})
|
||||
|
||||
expect(MyEnum.isMember(MyEnum.Value)).to.equal(true)
|
||||
expect(MyEnum.isMember(newproxy(true))).to.equal(false)
|
||||
expect(MyEnum.isMember("Value")).to.equal(false)
|
||||
end)
|
||||
|
||||
it("should generate objects that are unique even when named the same", function()
|
||||
|
||||
local Enum1 = createEnum("MyEnum", {
|
||||
"Value",
|
||||
})
|
||||
local Enum2 = createEnum("MyEnum", {
|
||||
"Value",
|
||||
})
|
||||
|
||||
expect(Enum1.isMember(Enum1.Value)).to.equal(true)
|
||||
expect(Enum2.isMember(Enum2.Value)).to.equal(true)
|
||||
|
||||
expect(Enum1.isMember(Enum2.Value)).to.equal(false)
|
||||
expect(Enum2.isMember(Enum1.Value)).to.equal(false)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user