print("\082\117\110\110\101\114\058 \076\111\097\100\105\110\103 \100\101\112\101\110\100\101\110\099\105\101\115\046\046\046")local R=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local s=require((R:WaitForChild("\084\101\115\116\115")):WaitForChild("\084\101\115\116\115"))print("\082\117\110\110\101\114\058 \073\110\105\116\105\097\108\105\122\105\110\103 \099\111\110\115\116\097\110\116\115\046\046\046")local t={R.Tests}print("\082\117\110\110\101\114\058 \082\117\110\110\105\110\103\046\046\046")local W,V=s(t)if W then if not V then error("\084\101\115\116\115 \104\097\118\101 \102\097\105\108\101\100\046",0)end else error(V,0)end print("\082\117\110\110\101\114\058 \068\111\110\101\046")
--- The Roblox test runner script.
-- This script can run within Roblox to perform automated tests.
--
-- @author LastTalon
-- @version 0.1.0, 2020-10-13
-- @since 0.2
--
-- @module TestRunner
-- @throws when the tests fail

-- Dependencies --
print("Runner: Loading dependencies...")

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Tests = require(ReplicatedStorage:WaitForChild("Tests"):WaitForChild("Tests"))

-- Constants --
print("Runner: Initializing constants...")

--- The locations containing tests.
local Roots = {ReplicatedStorage.Tests}

-- Main --
print("Runner: Running...")

local completed, result = Tests(Roots)

if completed then
	if not result then
		error("Tests have failed.", 0)
	end
else
	error(result, 0)
end

-- End --
print("Runner: Done.")
