return function()local Q=(require(script.Parent.constants)).CLONE local n=require(script.Parent.Draft)local u=require(script.Parent.getClone)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \100\114\097\102\116\'\115 \099\108\111\110\101\100 \116\097\098\108\101 \105\102 \105\116 \101\120\105\115\116\115",function()local y=n.new({})y.foo=true;(expect(rawget(y,Q))).to.be.ok()local V=u(y);(expect(rawget(y,Q))).to.equal(V)end)it("\115\104\111\117\108\100 \099\114\101\097\116\101 \097 \099\108\111\110\101 \105\102 \097 \100\114\097\102\116 \100\111\101\115 \110\111\116 \104\097\118\101 \111\110\101",function()local y=n.new({});(expect(rawget(y,Q))).to.never.be.ok()local V=u(y);(expect(rawget(y,Q))).to.be.ok();(expect(rawget(y,Q))).to.equal(V)end)end
return function()
	local CLONE = require(script.Parent.constants).CLONE

	local Draft = require(script.Parent.Draft)
	local getClone = require(script.Parent.getClone)

	it("should return a draft's cloned table if it exists", function()
		local draft = Draft.new({})
		draft.foo = true

		expect(rawget(draft, CLONE)).to.be.ok()

		local clone = getClone(draft)

		expect(rawget(draft, CLONE)).to.equal(clone)
	end)

	it("should create a clone if a draft does not have one", function()
		local draft = Draft.new({})

		expect(rawget(draft, CLONE)).to.never.be.ok()

		local clone = getClone(draft)

		expect(rawget(draft, CLONE)).to.be.ok()
		expect(rawget(draft, CLONE)).to.equal(clone)
	end)
end
