From b59bec5f9db1314053a4704c359a0fda1ab3eb45 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 29 May 2015 17:18:48 -0700 Subject: [PATCH] Add Set::isEqual method in specs This allows us to use the .toEqual matcher to compare Set objects. --- spec/spec-helper.coffee | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index 15874ff6f..5ba54a242 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -49,6 +49,25 @@ Object.defineProperty document, 'title', get: -> documentTitle set: (title) -> documentTitle = title +Set.prototype.jasmineToString = -> + result = "Set {" + first = true + @forEach (element) -> + result += ", " unless first + result += element.toString() + first = false + result + "}" + +Set.prototype.isEqual = (other) -> + if other instanceof Set + return false if @size isnt other.size + values = @values() + until (next = values.next()).done + return false unless other.has(next.value) + true + else + false + jasmine.getEnv().addEqualityTester(_.isEqual) # Use underscore's definition of equality for toEqual assertions if process.env.CI