return function()local u=require(script.Parent.Parent.Parent.Roact.GlobalConfig)local q=require(script.Parent.Parent.Parent.Roact)local l=require(script.Parent.Parent.Parent.Rodux)local r=require(script.Parent)it("\115\104\111\117\108\100 \098\101 \105\110\115\116\097\110\116\105\097\098\108\101 \097\115 \097 \099\111\109\112\111\110\101\110\116",function()local u=l.createStore(function()return 0 end)local P=q.createElement(r,{store=u});(expect(P)).to.be.ok()local y=q.mount(P,nil,"\083\116\111\114\101\080\114\111\118\105\100\101\114-\116\101\115\116")q.unmount(y)u:destruct()end)it("\115\104\111\117\108\100 \101\120\112\101\099\116 \097 \'\115\116\111\114\101\' \112\114\111\112",function()local l=q.createElement(r)u.set({propValidation=true});(expect(function()q.mount(l)end)).to.throw()end)it("\115\104\111\117\108\100 \097\099\099\101\112\116 \097 \115\105\110\103\108\101 \099\104\105\108\100",function()local u=l.createStore(function()return 0 end)local P=Instance.new("\070\111\108\100\101\114")local y=q.createElement(r,{store=u},{test1=q.createElement("\070\114\097\109\101")});(expect(y)).to.be.ok()local T=q.mount(y,P,"\083\116\111\114\101\080\114\111\118\105\100\101\114-\116\101\115\116")local z=P:FindFirstChild("\083\116\111\114\101\080\114\111\118\105\100\101\114-\116\101\115\116",true);(expect(z)).to.be.ok();(expect(z:IsA("\070\114\097\109\101"))).to.equal(true)q.unmount(T)u:destruct()end)end
return function()
	local GlobalConfig = require(script.Parent.Parent.Parent.Roact.GlobalConfig)
	local Roact = require(script.Parent.Parent.Parent.Roact)
	local Rodux = require(script.Parent.Parent.Parent.Rodux)

	local StoreProvider = require(script.Parent)

	it("should be instantiable as a component", function()
		local store = Rodux.createStore(function()
			return 0
		end)
		local element = Roact.createElement(StoreProvider, {
			store = store,
		})

		expect(element).to.be.ok()

		local handle = Roact.mount(element, nil, "StoreProvider-test")

		Roact.unmount(handle)
		store:destruct()
	end)

	it("should expect a 'store' prop", function()
		local element = Roact.createElement(StoreProvider)

		GlobalConfig.set({ propValidation = true })

		expect(function()
			Roact.mount(element)
		end).to.throw()
	end)

	it("should accept a single child", function()
		local store = Rodux.createStore(function()
			return 0
		end)

		local folder = Instance.new("Folder")

		local element = Roact.createElement(StoreProvider, {
			store = store,
		}, {
			test1 = Roact.createElement("Frame"),
		})

		expect(element).to.be.ok()

		local handle = Roact.mount(element, folder, "StoreProvider-test")

		local storeProviderChild = folder:FindFirstChild("StoreProvider-test", true)
		expect(storeProviderChild).to.be.ok()
		expect(storeProviderChild:IsA("Frame")).to.equal(true)

		Roact.unmount(handle)
		store:destruct()
	end)
end
