From acd7035347d8e3976262bbef1e41e60e0181fbb4 Mon Sep 17 00:00:00 2001 From: vsavkin Date: Wed, 29 Oct 2014 14:26:52 -0400 Subject: [PATCH] feat(test_lib): change test_lib.dart to structurally compare objects --- modules/change_detection/pubspec.yaml | 2 +- modules/core/pubspec.yaml | 2 +- modules/di/pubspec.yaml | 2 +- modules/examples/pubspec.yaml | 2 +- modules/facade/pubspec.yaml | 2 +- modules/test_lib/pubspec.yaml | 2 +- modules/test_lib/src/test_lib.dart | 9 +++++++++ modules/test_lib/test/test_lib_spec.js | 22 ++++++++++++++++++++++ pubspec.yaml | 2 +- 9 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 modules/test_lib/test/test_lib_spec.js diff --git a/modules/change_detection/pubspec.yaml b/modules/change_detection/pubspec.yaml index eda854fbf6..c5150f851f 100644 --- a/modules/change_detection/pubspec.yaml +++ b/modules/change_detection/pubspec.yaml @@ -7,4 +7,4 @@ dependencies: dev_dependencies: test_lib: path: ../test_lib - guinness: ">=0.1.5 <0.2.0" + guinness: ">=0.1.16 <0.2.0" \ No newline at end of file diff --git a/modules/core/pubspec.yaml b/modules/core/pubspec.yaml index b60bd85b71..3ac102d1ce 100644 --- a/modules/core/pubspec.yaml +++ b/modules/core/pubspec.yaml @@ -11,4 +11,4 @@ dependencies: dev_dependencies: test_lib: path: ../test_lib - guinness: ">=0.1.5 <0.2.0" + guinness: ">=0.1.16 <0.2.0" \ No newline at end of file diff --git a/modules/di/pubspec.yaml b/modules/di/pubspec.yaml index c7d6d81848..bb9563572b 100644 --- a/modules/di/pubspec.yaml +++ b/modules/di/pubspec.yaml @@ -7,4 +7,4 @@ dependencies: dev_dependencies: test_lib: path: ../test_lib - guinness: ">=0.1.5 <0.2.0" + guinness: ">=0.1.16 <0.2.0" \ No newline at end of file diff --git a/modules/examples/pubspec.yaml b/modules/examples/pubspec.yaml index 2e033ff7ad..e3073e09a1 100644 --- a/modules/examples/pubspec.yaml +++ b/modules/examples/pubspec.yaml @@ -7,4 +7,4 @@ dependencies: dev_dependencies: test_lib: path: ../test_lib - guinness: ">=0.1.5 <0.2.0" + guinness: ">=0.1.16 <0.2.0" \ No newline at end of file diff --git a/modules/facade/pubspec.yaml b/modules/facade/pubspec.yaml index 05e82b8433..ca36791f2e 100644 --- a/modules/facade/pubspec.yaml +++ b/modules/facade/pubspec.yaml @@ -4,4 +4,4 @@ environment: dev_dependencies: test_lib: path: ../test_lib - guinness: ">=0.1.5 <0.2.0" + guinness: ">=0.1.16 <0.2.0" \ No newline at end of file diff --git a/modules/test_lib/pubspec.yaml b/modules/test_lib/pubspec.yaml index 5e4aefe794..a8563be001 100644 --- a/modules/test_lib/pubspec.yaml +++ b/modules/test_lib/pubspec.yaml @@ -3,4 +3,4 @@ environment: sdk: '>=1.4.0' dependencies: dev_dependencies: - guinness: ">=0.1.5 <0.2.0" + guinness: ">=0.1.16 <0.2.0" \ No newline at end of file diff --git a/modules/test_lib/src/test_lib.dart b/modules/test_lib/src/test_lib.dart index 2b7d465f66..4709721732 100644 --- a/modules/test_lib/src/test_lib.dart +++ b/modules/test_lib/src/test_lib.dart @@ -15,11 +15,20 @@ Expect expect(actual, [matcher]) { class Expect extends gns.Expect { Expect(actual) : super(actual); + NotExpect get not => new NotExpect(actual); + + void toEqual(expected) => toHaveSameProps(expected); void toThrowError([message=""]) => this.toThrowWith(message: message); void toBePromise() => _expect(actual is Future, equals(true)); Function get _expect => gns.guinness.matchers.expect; } +class NotExpect extends gns.NotExpect { + NotExpect(actual) : super(actual); + + void toEqual(expected) => toHaveSameProps(expected); +} + it(name, fn) { gns.it(name, _handleAsync(fn)); } diff --git a/modules/test_lib/test/test_lib_spec.js b/modules/test_lib/test/test_lib_spec.js new file mode 100644 index 0000000000..baf84231bf --- /dev/null +++ b/modules/test_lib/test/test_lib_spec.js @@ -0,0 +1,22 @@ +import {describe, it, iit, expect} from 'test_lib/test_lib'; + +class TestObj { + constructor(prop) { + this.prop = prop; + } +} + +export function main() { + describe("test_lib", function () { + describe("equality", function () { + it("should structurally compare objects", function () { + var expected = new TestObj(new TestObj({"one" : [1,2]})); + var actual = new TestObj(new TestObj({"one" : [1,2]})); + var falseActual = new TestObj(new TestObj({"one" : [1,3]})); + + expect(actual).toEqual(expected); + expect(falseActual).not.toEqual(expected); + }); + }); + }); +} \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 95efea1af6..5f9c07471f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,4 +16,4 @@ dependencies: path: build/dart/change_detection dev_dependencies: - guinness: ">=0.1.5 <0.2.0" + guinness: ">=0.1.16 <0.2.0" \ No newline at end of file