return function()
	local trimCharacterFromEndString = require(script.Parent.trimCharacterFromEndString)

	describe("single byte characters", function()
		it("should not trim a string if it does not end with passed character", function()
			local passedString = "testing"
			local passedCharacter = "/"

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(passedString)
		end)

		it("should trim a string if it ends with a single instance of the passed character", function()
			local passedString = "testing/"
			local passedCharacter = "/"
			local expectedString = "testing"

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(expectedString)
		end)

		it("should trim a string if it ends with multiple instances of the passed character", function()
			local passedString = "testing///"
			local passedCharacter = "/"
			local expectedString = "testing"

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(expectedString)
		end)

		it("should do nothing if the passed character is empty", function()
			local passedString = "hunter2"
			local passedCharacter = ""
			local expectedString = "hunter2"

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(expectedString)
		end)
	end)

	describe("multiple byte characters", function()
		it("should not trim a string if it does not end with passed character", function()
			local passedString = "testing"
			local passedCharacter = "🐶"

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(passedString)
		end)

		it("should trim a string if it ends with a single instance of the passed character", function()
			local passedString = "testing🐶"
			local passedCharacter = "🐶"
			local expectedString = "testing"

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(expectedString)
		end)

		it("should trim a string if it ends with multiple instances of the passed character", function()
			local passedString = "testing🐶🐶🐶"
			local passedCharacter = "🐶"
			local expectedString = "testing"

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(expectedString)
		end)
	end)

	describe("a string with all blacklisted characters", function()
		it("should return a empty string", function()
			local passedString = "pppppppppppp"
			local passedCharacter = "p"
			local expectedString = ""

			expect(trimCharacterFromEndString(passedString, passedCharacter)).to.equal(expectedString)
		end)
	end)
end