/** * @ngdoc function NyKontaktCtrl * @name fasit.component.#example * @function NyKontaktCtrl * * @description NyKontaktCtrl test * desc * */ describe('NyKontaktCtrl', function () { var $scope:fb.INyKontaktScope; var ctrl; var personService:fb.IMockPersonService; var navigationService:fb.IMockNavigationService; var personSearchService:fb.IMockPersonSearchService; var hittaSeService:fb.IMockHittaSeService; var timeout:ng.ITimeoutService; var person: fb.Models_IPersonDO; var personChangeTrack:fb.PersonSearchChangeTrack; var routeParams:any; var location: ng.ILocationService; beforeEach(function () { angular.mock.module('fasit', 'fbMocks','configModelMock'); inject(function ($q, $injector, $rootScope, $location, $controller) {//, getKontakt) { var rootScope = $rootScope.$new(); rootScope.InloggadAnvaendare = { LandId: fb.FasITDomain.Land.SVERIGE, BostadsmarknadId: fb.FasITDomain.Bostadsmarknad.SVERIGE }; rootScope.InloggadAnvaendare.promise = $q.when(); $scope = $rootScope.$new(); location = $location; navigationService = $injector.get('navigationService'); $scope.kontaktTyp = null; ctrl = $controller('NyKontaktCtrl', { $rootScope: rootScope, $scope: $scope, navigationService: navigationService, $location: $location }); $scope.$digest(); }); }); afterEach(function () { $scope.$destroy(); }); describe('vid initiering', function () { it('borde förvänta sig att det finns ett NyKontaktCtrl', inject(function (queryOeppnaObjekt) { expect(ctrl).not.toBeUndefined(); })); }); describe('funktioner', function () { it('borde ha addNewContactCallback() som navigerar vidare till rätt person', inject(function (getPersonTypFysisk) { var newPerson = new fb.FysiskPerson2DO(getPersonTypFysisk); expect($scope.addNewContactCallback).toBeDefined(); $scope.addNewContactCallback(newPerson); $scope.$digest(); expect(location.path()).toBe('/Kontakt/' + getPersonTypFysisk.PersonId); })); it('borde ha onTopCancelButtonClick () som sätter om scope.kontaktTyp', function () { expect($scope.kontaktTypText).toBeDefined(); expect($scope.kontaktTypText).toBe(null); expect($scope.onTopCancelButtonClick).toBeDefined(); $scope.kontaktTyp.value = 'KUND'; $scope.$digest(); $scope.onTopCancelButtonClick(); $scope.$digest(); expect($scope.kontaktTypText).toBe(null); }); }); describe('watches', function () { it('borde vakta kontaktTyp och kontaktTypText borde reagera på att kontaktTyp förändras', function () { expect($scope.kontaktTypText).toBe(null); expect($scope.kontaktTyp.value).toBe(null); $scope.kontaktTyp.value = 'KUND'; $scope.$digest(); expect($scope.kontaktTypText).toBe('Kund'); $scope.kontaktTyp.value = 'BRF'; $scope.$digest(); expect($scope.kontaktTypText).toBe('Bostadsrättsförening'); $scope.kontaktTyp.value = 'BANK'; $scope.$digest(); expect($scope.kontaktTypText).toBe('Bank'); $scope.kontaktTyp.value = 'FRVT'; $scope.$digest(); expect($scope.kontaktTypText).toBe('Förvaltare'); //$scope.kontaktTyp.value = 'Nothing'; //$scope.$digest(); //expect($scope.kontaktTypText).toBe(null); }); }); });