mirror of
https://github.com/nasa/openmct.git
synced 2024-12-25 15:51:04 +00:00
69 lines
2.6 KiB
JavaScript
69 lines
2.6 KiB
JavaScript
|
/*global define,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
||
|
|
||
|
define(
|
||
|
["../../src/controllers/FormController"],
|
||
|
function (FormController) {
|
||
|
"use strict";
|
||
|
|
||
|
describe("The form controller", function () {
|
||
|
var mockScope,
|
||
|
controller;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
mockScope = jasmine.createSpyObj("$scope", [ "$watch" ]);
|
||
|
mockScope.$parent = {};
|
||
|
controller = new FormController(mockScope);
|
||
|
});
|
||
|
|
||
|
it("watches for changes in form by name", function () {
|
||
|
expect(mockScope.$watch).toHaveBeenCalledWith(
|
||
|
"mctForm",
|
||
|
jasmine.any(Function)
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it("conveys form status to parent scope", function () {
|
||
|
var someState = { someKey: "some value" };
|
||
|
mockScope.name = "someName";
|
||
|
mockScope.$watch.mostRecentCall.args[1](someState);
|
||
|
expect(mockScope.$parent.someName).toBe(someState);
|
||
|
});
|
||
|
|
||
|
it("allows strings to be converted to RegExps", function () {
|
||
|
// Should have added getRegExp to the scope,
|
||
|
// to convert strings to regular expressions
|
||
|
expect(mockScope.getRegExp("^\\d+$")).toEqual(/^\d+$/);
|
||
|
});
|
||
|
|
||
|
it("returns the same regexp instance for the same string", function () {
|
||
|
// Don't want new instances each digest cycle, for performance
|
||
|
var strRegExp = "^[a-z]\\d+$",
|
||
|
regExp;
|
||
|
|
||
|
// Add getRegExp to scope
|
||
|
regExp = mockScope.getRegExp(strRegExp);
|
||
|
|
||
|
// Same object instance each time...
|
||
|
expect(mockScope.getRegExp(strRegExp)).toBe(regExp);
|
||
|
expect(mockScope.getRegExp(strRegExp)).toBe(regExp);
|
||
|
});
|
||
|
|
||
|
it("passes RegExp objects through untouched", function () {
|
||
|
// Permit using forms to simply provide their own RegExp object
|
||
|
var regExp = /^\d+[a-d]$/;
|
||
|
|
||
|
// Should have added getRegExp to the scope,
|
||
|
// to convert strings to regular expressions
|
||
|
expect(mockScope.getRegExp(regExp)).toBe(regExp);
|
||
|
});
|
||
|
|
||
|
it("passes a non-whitespace regexp when no pattern is defined", function () {
|
||
|
// If no pattern is supplied, ng-pattern should match anything
|
||
|
expect(mockScope.getRegExp()).toEqual(/\S/);
|
||
|
expect(mockScope.getRegExp(undefined)).toEqual(/\S/);
|
||
|
});
|
||
|
|
||
|
|
||
|
});
|
||
|
}
|
||
|
);
|