return function()
	local Themes = script.Parent
	local Style = Themes.Parent
	local Constants = require(Style.Constants)

	local getThemeFromName = require(script.Parent.getThemeFromName)
	it("should be able to get a theme palette without errors", function()
		local themeMap = {
			[Constants.ThemeName.Dark] = require(script.Parent.DarkTheme),
		}
		local themeTable = getThemeFromName(Constants.ThemeName.Dark, Constants.ThemeName.Dark,themeMap)
		expect(themeTable).to.be.a("table")
	end)

	it("should be able to get a theme palette using default without errors", function()
		local themeMap = {
			[Constants.ThemeName.Dark] = require(script.Parent.DarkTheme),
		}
		local themeTable = getThemeFromName("classic", Constants.ThemeName.Dark, themeMap)
		expect(themeTable).to.be.a("table")
	end)

	it("should throw with invalid theme palette", function()
		expect(function()
			local themeMap = {
				[Constants.ThemeName.Dark] = {
					Background = {
						Color = Color3.fromRGB(0, 0, 0),
						Transparency = 0,
					},
				}
			}
			getThemeFromName(Constants.ThemeName.Dark, Constants.ThemeName.Dark, themeMap)
		end).to.throw()
	end)
end