diff --git a/platform/commonUI/general/test/controllers/DateTimePickerControllerSpec.js b/platform/commonUI/general/test/controllers/DateTimePickerControllerSpec.js index 957df1b36d..0c676f6548 100644 --- a/platform/commonUI/general/test/controllers/DateTimePickerControllerSpec.js +++ b/platform/commonUI/general/test/controllers/DateTimePickerControllerSpec.js @@ -22,8 +22,8 @@ /*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/ define( - ["../../src/controllers/DateTimePickerController"], - function (DateTimePickerController) { + ["../../src/controllers/DateTimePickerController", "moment"], + function (DateTimePickerController, moment) { "use strict"; describe("The DateTimePickerController", function () { @@ -39,6 +39,14 @@ define( }); } + function fireWatchCollection(expr, value) { + mockScope.$watchCollection.calls.forEach(function (call) { + if (call.args[0] === expr) { + call.args[1](value); + } + }); + } + beforeEach(function () { mockScope = jasmine.createSpyObj( "$scope", @@ -57,6 +65,34 @@ define( ); }); + it("updates date/time state in scope when model changes", function () { + fireWatch( + "ngModel[field]", + moment.utc("1998-01-06 12:34:56").valueOf() + ); + expect(mockScope.date.year).toEqual(1998); + expect(mockScope.date.month).toEqual(0); // Months are zero-indexed + expect(mockScope.date.day).toEqual(6); + expect(mockScope.time.hours).toEqual(12); + expect(mockScope.time.minutes).toEqual(34); + expect(mockScope.time.seconds).toEqual(56); + }); + + it("updates value in model when values in scope change", function () { + mockScope.date = { + year: 1998, + month: 0, + day: 6 + }; + mockScope.time = { + hours: 12, + minutes: 34, + seconds: 56 + }; + fireWatchCollection("date", mockScope.date); + expect(mockScope.ngModel[mockScope.field]) + .toEqual(moment.utc("1998-01-06 12:34:56").valueOf()); + }); }); }