Clients/Client2018/content/LuaPackages/AppTempCommon/Temp/httpRequest.spec.lua

61 lines
1.9 KiB
Lua

return function()
local httpRequest = require(script.Parent.httpRequest)
local function createTestRequestFunc(testResponse)
local requestService = {}
function requestService:GetAsyncFullUrl()
return testResponse
end
function requestService:PostAsyncFullUrl()
return testResponse
end
return httpRequest(requestService)
end
it("should return a function", function()
expect(httpRequest()).to.be.ok()
expect(type(httpRequest())).to.equal("function")
end)
it("should validate its inputs", function()
local testRequest = createTestRequestFunc()
local function testParams(url, requestMethod, args)
return function()
testRequest(url, requestMethod, args)
end
end
local validUrl = "friends.roblox.com"
local validMethod = "GET"
local validArgs = {}
-- url checks
expect(testParams(nil, validMethod, validArgs)).to.throw()
expect(testParams(123, validMethod, validArgs)).to.throw()
expect(testParams({}, validMethod, validArgs)).to.throw()
expect(testParams(true, validMethod, validArgs)).to.throw()
expect(testParams(function() end, validMethod, validArgs)).to.throw()
-- request method checks
expect(testParams(validUrl, nil, validArgs)).to.throw()
expect(testParams(validUrl, 123, validArgs)).to.throw()
expect(testParams(validUrl, {}, validArgs)).to.throw()
expect(testParams(validUrl, true, validArgs)).to.throw()
expect(testParams(validUrl, function() end, validArgs)).to.throw()
-- args checks
expect(testParams(validUrl, validMethod, 123)).to.throw()
expect(testParams(validUrl, validMethod, "Test")).to.throw()
expect(testParams(validUrl, validMethod, true)).to.throw()
expect(testParams(validUrl, validMethod, function() end)).to.throw()
end)
it("should throw an error if the requestMethod isn't supported", function()
local testRequest = createTestRequestFunc("foo")
expect(function()
testRequest("testUrl", "GIVEANDTAKE")
end).to.throw()
end)
end