return function()local Y=require(script.Parent.Parent.createElement)local i=require(script.Parent.Parent.createReconciler)local h=require(script.Parent.Parent.GlobalConfig)local x=require(script.Parent.Parent.NoopRenderer)local C=require(script.Parent.Parent.Component)local P=i(x)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \115\116\097\099\107 \116\114\097\099\101\115 \105\110 \105\110\105\116\105\097\108 \114\101\110\100\101\114\115",function()local i=C:extend("\084\101\115\116\067\111\109\112\111\110\101\110\116")local x function i.init(Y)x=Y:getElementTraceback()end function i.render(Y)return nil end local R={elementTracing=true}h.scoped(R,function()local h=Y(i)local x=nil local C="\083\111\109\101 \107\101\121"P.mountVirtualNode(h,x,C)end);(expect(x)).to.be.a("\115\116\114\105\110\103")end)itSKIP("\105\116 \115\104\111\117\108\100 \114\101\116\117\114\110 \097\110 \117\112\100\097\116\101\100 \115\116\097\099\107 \116\114\097\099\101 \097\102\116\101\114 \097\110 \117\112\100\097\116\101",function() end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \110\105\108 \119\104\101\110 \101\108\101\109\101\110\116\084\114\097\099\105\110\103 \105\115 \111\102\102",function()local i=nil local x={elementTracing=false}local R=C:extend("\084\101\115\116\067\111\109\112\111\110\101\110\116")function R.init(Y)i=Y:getElementTraceback()end function R.render(Y)return nil end h.scoped(x,function()local i=Y(R)local h=nil local x="\083\111\109\101 \107\101\121"P.mountVirtualNode(i,h,x)end);(expect(i)).to.equal(nil)end)end
return function()
	local createElement = require(script.Parent.Parent.createElement)
	local createReconciler = require(script.Parent.Parent.createReconciler)
	local GlobalConfig = require(script.Parent.Parent.GlobalConfig)
	local NoopRenderer = require(script.Parent.Parent.NoopRenderer)

	local Component = require(script.Parent.Parent.Component)

	local noopReconciler = createReconciler(NoopRenderer)

	it("should return stack traces in initial renders", function()
		local TestComponent = Component:extend("TestComponent")

		local stackTrace
		function TestComponent:init()
			stackTrace = self:getElementTraceback()
		end

		function TestComponent:render()
			return nil
		end

		local config = {
			elementTracing = true,
		}

		GlobalConfig.scoped(config, function()
			local element = createElement(TestComponent)
			local hostParent = nil
			local key = "Some key"

			noopReconciler.mountVirtualNode(element, hostParent, key)
		end)

		expect(stackTrace).to.be.a("string")
	end)

	itSKIP("it should return an updated stack trace after an update", function() end)

	it("should return nil when elementTracing is off", function()
		local stackTrace = nil

		local config = {
			elementTracing = false,
		}

		local TestComponent = Component:extend("TestComponent")

		function TestComponent:init()
			stackTrace = self:getElementTraceback()
		end

		function TestComponent:render()
			return nil
		end

		GlobalConfig.scoped(config, function()
			local element = createElement(TestComponent)
			local hostParent = nil
			local key = "Some key"

			noopReconciler.mountVirtualNode(element, hostParent, key)
		end)

		expect(stackTrace).to.equal(nil)
	end)
end
