2014-11-28 22:40:35 +00:00
|
|
|
/*global define,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
|
|
|
|
|
|
define(
|
|
|
|
["../src/MCTControl"],
|
|
|
|
function (MCTControl) {
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
describe("The mct-control directive", function () {
|
2014-11-28 23:33:40 +00:00
|
|
|
var testControls,
|
|
|
|
mockScope,
|
|
|
|
mctControl;
|
|
|
|
|
|
|
|
beforeEach(function () {
|
|
|
|
testControls = [
|
|
|
|
{
|
|
|
|
key: "abc",
|
|
|
|
bundle: { path: "a", resources: "b" },
|
|
|
|
templateUrl: "c/template.html"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
key: "xyz",
|
|
|
|
bundle: { path: "x", resources: "y" },
|
|
|
|
templateUrl: "z/template.html"
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
mockScope = jasmine.createSpyObj("$scope", [ "$watch" ]);
|
|
|
|
|
|
|
|
mctControl = new MCTControl(testControls);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("is restricted to the element level", function () {
|
|
|
|
expect(mctControl.restrict).toEqual("E");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("watches its passed key to choose a template", function () {
|
2015-04-11 00:47:49 +00:00
|
|
|
mctControl.link(mockScope);
|
2014-11-28 23:33:40 +00:00
|
|
|
|
|
|
|
expect(mockScope.$watch).toHaveBeenCalledWith(
|
|
|
|
"key",
|
|
|
|
jasmine.any(Function)
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("changes its template dynamically", function () {
|
2015-04-11 00:47:49 +00:00
|
|
|
mctControl.link(mockScope);
|
2014-11-28 23:33:40 +00:00
|
|
|
|
|
|
|
mockScope.key = "xyz";
|
|
|
|
mockScope.$watch.mostRecentCall.args[1]("xyz");
|
|
|
|
|
|
|
|
// Should have communicated the template path to
|
|
|
|
// ng-include via the "inclusion" field in scope
|
|
|
|
expect(mockScope.inclusion).toEqual(
|
|
|
|
"x/y/z/template.html"
|
|
|
|
);
|
|
|
|
});
|
2014-11-28 22:40:35 +00:00
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
);
|