--[[
	ROBLOX deviation: skipped code
	original code lines 56 - 84
]]


local function expect_(_self, actual: any, ...): any
	local rest: Array<any> = { ... }

	if #rest ~= 0 then
		error("Expect takes at most one argument.")
	end

	local allMatchers = getMatchers()
	local expectation = {
		never = {},
		rejects = { never = {} },
		resolves = { never = {} },
	}

	for name, matcher in pairs(allMatchers) do
		--[[
			ROBLOX deviation: skipped unused variable declaration for promiseMatcher
			original code:
			const promiseMatcher = getPromiseMatcher(name, matcher) || matcher;
		]]
		expectation[name] = makeThrowingMatcher(matcher, false, "", actual)
		expectation.never[name] = makeThrowingMatcher(matcher, true, "", actual)

		--[[
			ROBLOX deviation: skipped code
			original code lines 106 - 134
		]]
	end

	return expectation
end

local function getMessage(message: (() -> string)?)
	return if message then message() else matcherUtils.RECEIVED_COLOR("No message was specified for this matcher.")
end
