mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-21 13:15:50 +00:00
127 lines
2.6 KiB
Lua
127 lines
2.6 KiB
Lua
return function()
|
|
local RbxDom = require(script.Parent)
|
|
local EncodedValue = require(script.Parent.EncodedValue)
|
|
|
|
it("should decode Rect values", function()
|
|
local input = {
|
|
Type = "Rect",
|
|
Value = {
|
|
Min = {1, 2},
|
|
Max = {3, 4},
|
|
},
|
|
}
|
|
|
|
local output = Rect.new(1, 2, 3, 4)
|
|
|
|
local ok, decoded = EncodedValue.decode(input)
|
|
|
|
assert(ok, decoded)
|
|
expect(decoded).to.equal(output)
|
|
end)
|
|
|
|
it("should decode ColorSequence values", function()
|
|
local input = {
|
|
Type = "ColorSequence",
|
|
Value = {
|
|
Keypoints = {
|
|
{
|
|
Time = 0,
|
|
Color = { 0.12, 0.34, 0.56 },
|
|
},
|
|
|
|
{
|
|
Time = 1,
|
|
Color = { 0.13, 0.33, 0.37 },
|
|
},
|
|
}
|
|
},
|
|
}
|
|
|
|
local output = ColorSequence.new({
|
|
ColorSequenceKeypoint.new(0, Color3.new(0.12, 0.34, 0.56)),
|
|
ColorSequenceKeypoint.new(1, Color3.new(0.13, 0.33, 0.37)),
|
|
})
|
|
|
|
local ok, decoded = EncodedValue.decode(input)
|
|
assert(ok, decoded)
|
|
expect(decoded).to.equal(output)
|
|
end)
|
|
|
|
it("should decode NumberSequence values", function()
|
|
local input = {
|
|
Type = "NumberSequence",
|
|
Value = {
|
|
Keypoints = {
|
|
{
|
|
Time = 0,
|
|
Value = 0.5,
|
|
Envelope = 0,
|
|
},
|
|
|
|
{
|
|
Time = 1,
|
|
Value = 0.5,
|
|
Envelope = 0,
|
|
},
|
|
}
|
|
},
|
|
}
|
|
|
|
local output = NumberSequence.new({
|
|
NumberSequenceKeypoint.new(0, 0.5, 0),
|
|
NumberSequenceKeypoint.new(1, 0.5, 0),
|
|
})
|
|
|
|
local ok, decoded = EncodedValue.decode(input)
|
|
assert(ok, decoded)
|
|
expect(decoded).to.equal(output)
|
|
end)
|
|
|
|
it("should decode PhysicalProperties values", function()
|
|
local input = {
|
|
Type = "PhysicalProperties",
|
|
Value = {
|
|
Density = 0.1,
|
|
Friction = 0.2,
|
|
Elasticity = 0.3,
|
|
FrictionWeight = 0.4,
|
|
ElasticityWeight = 0.5,
|
|
},
|
|
}
|
|
|
|
local output = PhysicalProperties.new(
|
|
0.1,
|
|
0.2,
|
|
0.3,
|
|
0.4,
|
|
0.5
|
|
)
|
|
|
|
local ok, decoded = EncodedValue.decode(input)
|
|
assert(ok, decoded)
|
|
expect(decoded).to.equal(output)
|
|
end)
|
|
|
|
-- This part of rbx_dom_lua needs some work still.
|
|
itSKIP("should encode Rect values", function()
|
|
local input = Rect.new(10, 20, 30, 40)
|
|
|
|
local output = {
|
|
Type = "Rect",
|
|
Value = {
|
|
Min = {10, 20},
|
|
Max = {30, 40},
|
|
},
|
|
}
|
|
|
|
local descriptor = RbxDom.findCanonicalPropertyDescriptor("ImageLabel", "SliceCenter")
|
|
local ok, encoded = EncodedValue.encode(input, descriptor)
|
|
|
|
assert(ok, encoded)
|
|
expect(encoded.Type).to.equal(output.Type)
|
|
expect(encoded.Value.Min[1]).to.equal(output.Value.Min[1])
|
|
expect(encoded.Value.Min[2]).to.equal(output.Value.Min[2])
|
|
expect(encoded.Value.Max[1]).to.equal(output.Value.Max[1])
|
|
expect(encoded.Value.Max[2]).to.equal(output.Value.Max[2])
|
|
end)
|
|
end |