summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/components/directives/widget/widget.spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/components/directives/widget/widget.spec.js')
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/components/directives/widget/widget.spec.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/components/directives/widget/widget.spec.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/components/directives/widget/widget.spec.js
new file mode 100644
index 00000000..0997e071
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/components/directives/widget/widget.spec.js
@@ -0,0 +1,104 @@
+// 'use strict';
+
+describe('Directive: widget', function () {
+
+ var element, scope, rootScope, isoScope, compile, provide;
+
+ function Type() {
+ }
+
+ Type.prototype = {
+ setup: function () {
+ },
+ init: function () {
+ },
+ destroy: function () {
+ }
+ };
+
+ beforeEach(function () {
+ spyOn(Type.prototype, 'setup');
+ spyOn(Type.prototype, 'init');
+ spyOn(Type.prototype, 'destroy');
+ // define mock objects here
+ });
+
+ // load the directive's module
+ beforeEach(module('ui.dashboard', function ($provide, $controllerProvider) {
+ provide = $provide;
+ // Inject dependencies like this:
+ $controllerProvider.register('DashboardWidgetCtrl', function ($scope) {
+
+ });
+
+ }));
+
+ beforeEach(inject(function ($compile, $rootScope) {
+ // Cache these for reuse
+ rootScope = $rootScope;
+ compile = $compile;
+
+ // Other setup, e.g. helper functions, etc.
+
+ // Set up the outer scope
+ scope = $rootScope.$new();
+ scope.widget = {
+ dataModelType: Type
+ };
+
+ compileTemplate = jasmine.createSpy('compileTemplate');
+ scope.compileTemplate = compileTemplate;
+ }));
+
+ function compileWidget() {
+ // Define and compile the element
+ element = angular.element('<div widget><div class="widget-content"></div></div>');
+ element = compile(element)(scope);
+ scope.$digest();
+ isoScope = element.isolateScope();
+ }
+
+ it('should create a new instance of dataModelType if provided in scope.widget', function () {
+ compileWidget();
+ expect(scope.widget.dataModel instanceof Type).toBe(true);
+ });
+
+ it('should call setup and init on the new dataModel', function () {
+ compileWidget();
+ expect(Type.prototype.setup).toHaveBeenCalled();
+ expect(Type.prototype.init).toHaveBeenCalled();
+ });
+
+ it('should call compile template', function () {
+ compileWidget();
+ expect(scope.compileTemplate).toHaveBeenCalled();
+ });
+
+ it('should create a new instance of dataModelType from string name', function () {
+ // register data model with $injector
+ provide.factory('StringNameDataModel', function () {
+ return Type;
+ });
+
+ scope.widget = {
+ dataModelType: 'StringNameDataModel'
+ };
+
+ compileWidget();
+
+ expect(scope.widget.dataModel instanceof Type).toBe(true);
+ expect(Type.prototype.setup).toHaveBeenCalled();
+ expect(Type.prototype.init).toHaveBeenCalled();
+ });
+
+ it('should validate data model type', function () {
+ scope.widget = {
+ dataModelType: {}
+ };
+
+ expect(function () {
+ compileWidget()
+ }).toThrowError();
+ });
+
+}); \ No newline at end of file