Fixes a problem where the MaterialColors Lua encoder would return nothing
This commit is contained in:
Kenneth Loeffler
2023-08-16 16:47:04 -07:00
committed by GitHub
parent 066a0b1668
commit c9ab933a23
2 changed files with 12 additions and 16 deletions

View File

@@ -282,6 +282,7 @@ types = {
math.round(math.clamp(color.B, 0, 1) * 255) math.round(math.clamp(color.B, 0, 1) * 255)
} }
end end
return pod
end, end,
}, },

View File

@@ -1,6 +1,6 @@
return function() return function()
local HttpService = game:GetService("HttpService") local HttpService = game:GetService("HttpService")
local EncodedValue = require(script.Parent.EncodedValue) local EncodedValue = require(script.Parent.EncodedValue)
local allValues = require(script.Parent.allValues) local allValues = require(script.Parent.allValues)
@@ -13,16 +13,16 @@ return function()
if ty == "table" then if ty == "table" then
local visited = {} local visited = {}
for key, valueA in pairs(a) do for key, valueA in a do
visited[key] = true visited[key] = true
if not deepEq(valueA, b[key]) then if not deepEq(valueA, b[key]) then
return false return false
end end
end end
for key, valueB in pairs(b) do for key, valueB in b do
if visited[key] then if visited[key] then
continue continue
end end
@@ -44,28 +44,23 @@ return function()
end, end,
} }
for testName, testEntry in pairs(allValues) do for testName, testEntry in allValues do
it("round trip " .. testName, function() it("round trip " .. testName, function()
local ok, decoded = EncodedValue.decode(testEntry.value) local decodeOk, decoded = EncodedValue.decode(testEntry.value)
assert(ok, decoded) assert(decodeOk, decoded)
if extraAssertions[testName] ~= nil then if extraAssertions[testName] ~= nil then
extraAssertions[testName](decoded) extraAssertions[testName](decoded)
end end
local ok, encoded = EncodedValue.encode(decoded, testEntry.ty) local encodeOk, encoded = EncodedValue.encode(decoded, testEntry.ty)
assert(ok, encoded) assert(encodeOk, encoded)
if not deepEq(encoded, testEntry.value) then if not deepEq(encoded, testEntry.value) then
local expected = HttpService:JSONEncode(testEntry.value) local expected = HttpService:JSONEncode(testEntry.value)
local actual = HttpService:JSONEncode(encoded) local actual = HttpService:JSONEncode(encoded)
local message = string.format( error(`Round-trip results did not match.\nExpected:\n{expected}\nActual:\n{actual}`)
"Round-trip results did not match.\nExpected:\n%s\nActual:\n%s",
expected, actual
)
error(message)
end end
end) end)
end end