return function()local O=require(script.Parent.Parent.assertDeepEqual)local H=require(script.Parent.Parent.createElement)local p=require(script.Parent.Parent.createReconciler)local g=require(script.Parent.Parent.createSpy)local t=require(script.Parent.Parent.NoopRenderer)local Q=require(script.Parent.Parent.Type)local N=require(script.Parent.Parent.Component)local l=p(t)it("\115\104\111\117\108\100 \098\101 \105\110\118\111\107\101\100 \119\105\116\104 \112\114\111\112\115 \119\104\101\110 \109\111\117\110\116\101\100",function()local p=N:extend("\077\121\067\111\109\112\111\110\101\110\116")local t=g()p.init=t.value function p.render(O)return nil end local s={a=5}local P=H(p,s)local k=nil local L="\083\111\109\101 \067\111\109\112\111\110\101\110\116 \075\101\121"l.mountVirtualNode(P,k,L);(expect(t.callCount)).to.equal(1)local B=t:captureValues("\115\101\108\102","\112\114\111\112\115");(expect(Q.of(B.self))).to.equal(Q.StatefulComponentInstance);(expect(typeof(B.props))).to.equal("\116\097\098\108\101")O(B.props,s)end)end
return function()
	local assertDeepEqual = require(script.Parent.Parent.assertDeepEqual)
	local createElement = require(script.Parent.Parent.createElement)
	local createReconciler = require(script.Parent.Parent.createReconciler)
	local createSpy = require(script.Parent.Parent.createSpy)
	local NoopRenderer = require(script.Parent.Parent.NoopRenderer)
	local Type = require(script.Parent.Parent.Type)

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

	local noopReconciler = createReconciler(NoopRenderer)

	it("should be invoked with props when mounted", function()
		local MyComponent = Component:extend("MyComponent")

		local initSpy = createSpy()

		MyComponent.init = initSpy.value

		function MyComponent:render()
			return nil
		end

		local props = {
			a = 5,
		}
		local element = createElement(MyComponent, props)
		local hostParent = nil
		local key = "Some Component Key"

		noopReconciler.mountVirtualNode(element, hostParent, key)

		expect(initSpy.callCount).to.equal(1)

		local values = initSpy:captureValues("self", "props")

		expect(Type.of(values.self)).to.equal(Type.StatefulComponentInstance)
		expect(typeof(values.props)).to.equal("table")
		assertDeepEqual(values.props, props)
	end)
end