return function()local A=require(script.Parent.maybeCall)it("\115\104\111\117\108\100 \099\097\108\108 \105\102 \105\116 \114\101\099\101\105\118\101\100 \097 \102\117\110\099\116\105\111\110",function()local b=false local function O()b=true end A(O);(expect(b)).to.equal(true)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \116\104\101 \114\101\115\117\108\116 \111\102 \116\104\101 \099\097\108\108\098\097\099\107",function()local function b()return true end local O=A(b);(expect(O)).to.equal(true)end)it("\115\104\111\117\108\100 \116\097\107\101 \097\110\121 \110\117\109\098\101\114 \111\102 \097\114\103\117\109\101\110\116\115 \097\110\100 \112\097\115\115 \116\104\101\109 \116\111 \116\104\101 \099\097\108\108\098\097\099\107",function()local function b(A,b,O)(expect(A)).to.equal("\102\111\111");(expect(b)).to.equal("\098\097\114");(expect(O)).to.equal("\098\097\122")end A(b,"\102\111\111","\098\097\114","\098\097\122")end)it("\115\104\111\117\108\100 \100\111 \110\111\116\104\105\110\103 \105\102 \105\116 \100\111\101\115\110\'\116 \114\101\099\101\105\118\101 \097 \102\117\110\099\116\105\111\110",function()(expect(function()A(nil)end)).to.never.throw()end)end
return function()
	local maybeCall = require(script.Parent.maybeCall)
	it("should call if it received a function", function()
		local wasRun = false

		local function callback()
			wasRun = true
		end

		maybeCall(callback)

		expect(wasRun).to.equal(true)
	end)

	it("should return the result of the callback", function()
		local function callback()
			return true
		end

		local success = maybeCall(callback)

		expect(success).to.equal(true)
	end)

	it("should take any number of arguments and pass them to the callback", function()
		local function callback(foo, bar, baz)
			expect(foo).to.equal("foo")
			expect(bar).to.equal("bar")
			expect(baz).to.equal("baz")
		end

		maybeCall(callback, "foo", "bar", "baz")
	end)

	it("should do nothing if it doesn't receive a function", function()
		expect(function()
			maybeCall(nil)
		end).to.never.throw()
	end)
end
