///** // * @ngdoc fbNewContact // * @name fasit.directivetests.#fbNewContact // * @ fbTestSpec // * // * @description // * Testning av directivet fb-new-contact // * // */ //describe("fbNewContact", function () { // var element:any; // var $scope:any; // var deferred; // var link; // var innerScope:fb.IFbNewContactScope; // var newContactCtrl:fb.IFBNewContactCtrlScope; // var personChangeTrack:fb.PersonSearchChangeTrack; // personChangeTrack = { // PersonId: new fb.ChangeTrack('5sonsear0'), // Personnamn: new fb.ChangeTrack('A B C'), // Foernamn: new fb.ChangeTrack('A'), // Mellannamn: new fb.ChangeTrack('B'), // Efternamn: new fb.ChangeTrack('C'), // TelefonMobil: new fb.ChangeTrack('500'), // TelefonBostad: new fb.ChangeTrack('510'), // TelefonArbete: new fb.ChangeTrack('520'), // Epost: new fb.ChangeTrack('abc@bcm.com'), // Adress: new fb.ChangeTrack('Like'), // Postnummer: new fb.ChangeTrack('pos'), // Ort: new fb.ChangeTrack('pos') // }; // beforeEach(angular.mock.module('fasit', 'fbMocks')); // beforeEach(inject(function ($compile, $rootScope, $httpBackend, $q, $injector) { // $scope = $rootScope; // var DOM = '' + '' + ''; // $scope.kontaktTyp = 'KUND'; // element = angular.element(DOM); // link = $compile(element)($scope); // $scope.$digest(); // innerScope = $scope.$$childHead; // $scope.$digest(); // newContactCtrl = element.data('$fbNewContactController'); // })); // afterEach(function () { // $scope.$destroy(); // }); // it('borde skapa elementet ', function () { // expect(element).not.toBe(null); // }); // describe('DOM-struktur', function () { // it('borde vara som förväntat"', function () { // var newContactWrapper:JQuery = $(element).find('.newContactWrapper'); // expect(newContactWrapper.length).toBe(1); // var newContactLauncher:JQuery = $(newContactWrapper).find('.newContactLauncher'); // expect(newContactLauncher.length).toBe(1); // var nyKontakt:JQuery = $(newContactWrapper).find('.nyKontakt'); // expect(nyKontakt.length).toBe(1); // }); // it('borde ha fb-flex-item-options', function () { // }); // }); // describe('Funktionalitet', function () { // it('borde ha en onNewContactLauncherButtonClick som ändrar värden på "showNewContactDialog" och "state" ', inject(function () { // innerScope.showNewContactDialog = false; // innerScope.state = 10; // innerScope.onNewContactLauncherButtonClick(); // $scope.$digest(); // expect(innerScope.showNewContactDialog).toBe(true); // expect(innerScope.state).toBe(2); // })); // it('borde ha en isSelectedRow som returnerar texten "isSelectedRow" om värdet som skickas in är densamma som scope-värdet chosenKontakt', inject(function (getPersonSearch) { // var hittadKontakt:fb.PersonSearch = new fb.PersonSearch(getPersonSearch.Personer[0]); // var result:string; // innerScope.chosenKontakt.push(hittadKontakt); // $scope.$digest(); // result = innerScope.isSelectedRow(hittadKontakt); // expect(result).toBe('isSelectedRow'); // result = innerScope.isSelectedRow(null); // $scope.$digest(); // expect(result).toBe(''); // })); // it('borde ha en onHittadKontaktClick sätter hittade person till chosenKontakt', inject(function (getPersonSearch) { // var hittadKontakt: fb.PersonSearch = new fb.PersonSearch(getPersonSearch.Personer[0]); // var event: any = {}; // innerScope.onHittadKontaktClick(hittadKontakt, event); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(hittadKontakt); // })); // it('borde ha en onSearchButtonClick som ger rätt påföljder', inject(function (getPersonSearch) { // var chosenKontakt:fb.PersonSearch = new fb.PersonSearch(getPersonSearch.Personer[0]); // innerScope.chosenKontakt.push(chosenKontakt); // innerScope.searchFieldHasMinimumLength = false; // innerScope.state = 1; // innerScope.onSearchButtonClick(); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(chosenKontakt); // innerScope.searchFieldHasMinimumLength = false; // innerScope.state = 2; // innerScope.onSearchButtonClick(); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(chosenKontakt); // innerScope.searchFieldHasMinimumLength = true; // innerScope.state = 1; // innerScope.onSearchButtonClick(); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(chosenKontakt); // innerScope.searchFieldHasMinimumLength = true; // innerScope.state = 2; // innerScope.onSearchButtonClick(); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(null); // innerScope.hittadeKontakter = []; // innerScope.searchFieldHasMinimumLength = true; // innerScope.state = 2; // innerScope.onSearchButtonClick(); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(null); // innerScope.hittadeKontakter = null; // innerScope.searchFieldHasMinimumLength = true; // innerScope.state = 2; // innerScope.onSearchButtonClick(); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(null); // innerScope.hittadeKontakter = [chosenKontakt]; // innerScope.searchFieldHasMinimumLength = true; // innerScope.state = 2; // innerScope.onSearchButtonClick(); // $scope.$digest(); // expect(innerScope.chosenKontakt).toBe(null); // })); // it('borde ha en onBackToSearchResultsButtonClick som förändrar state', inject(function (getPersonSearch) { // innerScope.state = 3; // innerScope.onBackToSearchResultsButtonClick(); // $scope.$digest(); // expect(innerScope.state).toBe(2); // })); // it('borde ha en onCreateNewContactButtonClick som skapar newKontakt och förändrar state', inject(function (getPersonSearch) { // var chosenKontakt:fb.PersonSearch = new fb.PersonSearch(getPersonSearch.Personer[0]); // innerScope.newKontakt = null; // innerScope.conditionsAddingForNewContactFulfilled = false; // innerScope.hittadeKontakter = []; // innerScope.searchResultIsFromHittaSe = true; // expect(innerScope.newKontakt).toBe(null); // innerScope.onCreateNewContactButtonClick(); // $scope.$digest(); // expect(innerScope.state).toBe(3); // innerScope.conditionsAddingForNewContactFulfilled = false; // innerScope.hittadeKontakter = []; // innerScope.searchResultIsFromHittaSe = false; // innerScope.onCreateNewContactButtonClick(); // $scope.$digest(); // expect(innerScope.state).toBe(3); // innerScope.conditionsAddingForNewContactFulfilled = true; // innerScope.hittadeKontakter = [chosenKontakt]; // innerScope.searchResultIsFromHittaSe = false; // innerScope.onCreateNewContactButtonClick(); // $scope.$digest(); // expect(innerScope.state).toBe(3); // expect(innerScope.newKontakt).toBeDefined(); // innerScope.conditionsAddingForNewContactFulfilled = true; // innerScope.hittadeKontakter = []; // innerScope.searchResultIsFromHittaSe = true; // innerScope.onCreateNewContactButtonClick(); // $scope.$digest(); // expect(innerScope.state).toBe(3); // innerScope.conditionsAddingForNewContactFulfilled = true; // innerScope.hittadeKontakter = []; // innerScope.searchResultIsFromHittaSe = false; // innerScope.onCreateNewContactButtonClick(); // $scope.$digest(); // expect(innerScope.state).toBe(3); // })); // it('borde ha en onTopCancelButtonClick som förändrar showNewContactDialog och anropar cleanUp() för att rensa variabler', inject(function (getPersonSearch) { // innerScope.state = 10; // innerScope.conditionsAddingForNewContactFulfilled = true; // innerScope.onTopCancelButtonClick(); // expect(innerScope.state).toBe(1); // expect(innerScope.conditionsAddingForNewContactFulfilled).toBe(null); // })); // it('borde ha en onSearchBottomChooseClick som anropar nyKontaktCtrl.queryDatabaseForPerson', inject(function (getPersonSearch) { // var chosenKontakt:fb.PersonSearch = new fb.PersonSearch(getPersonSearch.Personer[0]); // innerScope.chosenKontakt.push(chosenKontakt); // spyOn(newContactCtrl, 'queryDatabaseForPerson').and.returnValue({ 'finally': function () { } }); // innerScope.onSearchBottomChooseClickWithNaerstaaende(); // expect(newContactCtrl.queryDatabaseForPerson).toHaveBeenCalled(); // })); // it('borde ha en transferTelephoneAndEmailToChosenKontakt kopierar värden rätt', inject(function (getPersonSearch) { // var newKontakt:fb.PersonSearchChangeTrack = {}; // innerScope.chosenFromHittaChangeTrack = personChangeTrack; // expect(newKontakt.Epost).toBeUndefined(); // $scope.$digest(); // innerScope.transferTelephoneAndEmailToChosenKontakt(newKontakt); // $scope.$digest(); // expect(newKontakt.Epost).toBeDefined(); // expect(newKontakt.Epost.value).toBe('abc@bcm.com'); // })); // it('borde ha en onSearchFieldChange som kollar searchFieldData length', inject(function (getPersonSearch) { // var data:fb.ChangeTrack = new fb.ChangeTrack('so'); // innerScope.searchFieldData = data; // innerScope.onSearchFieldChange({}); // $scope.$digest(); // expect(innerScope.searchFieldHasMinimumLength).toBe(false); // data.value = 'sosososos'; // innerScope.searchFieldData = data; // innerScope.onSearchFieldChange({}); // $scope.$digest(); // expect(innerScope.searchFieldHasMinimumLength).toBe(true); // data.value = 'sos'; // innerScope.searchFieldData = data; // innerScope.onSearchFieldChange({}); // $scope.$digest(); // expect(innerScope.searchFieldHasMinimumLength).toBe(true); // data.value = 'soso'; // innerScope.searchFieldData = data; // innerScope.onSearchFieldChange({}); // $scope.$digest(); // expect(innerScope.searchFieldHasMinimumLength).toBe(true); // })); // it('borde ha en onAddContactButtonClick som tar hänsyn till rätt tillstånd', inject(function (getPersonSearch) { // spyOn(newContactCtrl, 'addPersonToDatabase').and.returnValue({ 'finally': function () { } }); // innerScope.onAddContactButtonClick(); // $scope.$digest(); // expect(newContactCtrl.addPersonToDatabase).not.toHaveBeenCalled(); // innerScope.newKontakt = personChangeTrack; // $scope.$digest(); // innerScope.onAddContactButtonClick(); // $scope.$digest(); // expect(newContactCtrl.addPersonToDatabase).toHaveBeenCalled(); // $scope.kontaktTyp.value = 'FRVT'; // innerScope.contactType = new fb.ChangeTrack('FRVT'); // $scope.$digest(); // innerScope.onAddContactButtonClick(); // $scope.$digest(); // expect(newContactCtrl.addPersonToDatabase).toHaveBeenCalled(); // $scope.kontaktTyp.value = 'BANK'; // innerScope.contactType = new fb.ChangeTrack('BANK'); // $scope.$digest(); // innerScope.onAddContactButtonClick(); // $scope.$digest(); // expect(newContactCtrl.addPersonToDatabase).toHaveBeenCalled(); // $scope.kontaktTyp.value = 'BRF'; // innerScope.contactType = new fb.ChangeTrack('BRF'); // $scope.$digest(); // innerScope.onAddContactButtonClick(); // $scope.$digest(); // expect(newContactCtrl.addPersonToDatabase).toHaveBeenCalled(); // })); // it('borde initiera med ÖppnaKontakter om dessa finns', inject(function ($compile, $rootScope, queryOeppnaObjekt) { // $scope = $rootScope; // var DOM = '' + '' + ''; // element = angular.element(DOM); // link = $compile(element)($scope); // $scope.$digest(); // innerScope = $scope.$$childHead; // innerScope.oeppnaKontakter = queryOeppnaObjekt.OeppnaKontakter; // link = $compile(element)($scope); // $scope.$digest(); // innerScope = $scope.$$childHead; // newContactCtrl = element.data('$fbNewContactController'); // expect(_.isEmpty(innerScope.hittadeKontakter)).toBe(false); // })); // // // describe('borde ha watchers på följande', function () { // it('"chosenFromHitta" som skapar ny chosenFromHittaChangeTrack ', inject(function (getHittaSe) { // var hittaSeKontakt:fb.HittaSe = getHittaSe.Personer[0]; // var telefonByType = { // Tel: { // TelefonnummerLand: hittaSeKontakt.Telefonnummer[0].TelefonnummerLand // }, // Mobil: { // TelefonnummerLand: hittaSeKontakt.Telefonnummer[1].TelefonnummerLand // }, // Arbete: { // TelefonnummerLand: hittaSeKontakt.Telefonnummer[2].TelefonnummerLand // } // }; // var person = new fb.PersonSearch({ // Namn: hittaSeKontakt.Namn, // HittaSeTelefonnummer: hittaSeKontakt.Telefonnummer, // HittaSeAdress: hittaSeKontakt.Adress, // HittaSeTelefonnummerByType: telefonByType // }); // expect(innerScope.chosenFromHittaChangeTrack).toBeUndefined(); // innerScope.chosenFromHitta = undefined; // $scope.$digest(); // expect(innerScope.chosenFromHitta).toBeUndefined(); // expect(innerScope.chosenFromHittaChangeTrack).toBeUndefined(); // innerScope.chosenFromHitta = null; // $scope.$digest(); // expect(innerScope.chosenFromHitta).toBe(null); // expect(innerScope.chosenFromHittaChangeTrack).toBeUndefined(); // innerScope.chosenFromHitta = person; // $scope.$digest(); // expect(innerScope.chosenFromHitta).toBeDefined(); // expect(innerScope.chosenFromHitta).toBe(person); // expect(innerScope.chosenFromHittaChangeTrack).toBeDefined(); // innerScope.chosenFromHitta = undefined; // $scope.$digest(); // expect(innerScope.chosenFromHittaChangeTrack).toBe(null); // var anything:string = null; // telefonByType = { // Tel: { // TelefonnummerLand: anything // }, // Mobil: { // TelefonnummerLand: anything // }, // Arbete: { // TelefonnummerLand: anything // } // }; // person = new fb.PersonSearch({ // Namn: hittaSeKontakt.Namn, // HittaSeTelefonnummer: hittaSeKontakt.Telefonnummer, // HittaSeAdress: hittaSeKontakt.Adress, // HittaSeTelefonnummerByType: telefonByType // }); // innerScope.chosenFromHitta = person; // $scope.$digest(); // expect(innerScope.chosenFromHitta).toBeDefined(); // expect(innerScope.chosenFromHitta).toBe(person); // expect(innerScope.chosenFromHittaChangeTrack).toBeDefined(); // innerScope.chosenFromHitta = undefined; // $scope.$digest(); // expect(innerScope.chosenFromHittaChangeTrack).toBe(null); // })); // it('"nyKontaktCtrl.$scope.personSearchResult" ', inject(function (getPersonSearch) { // var chosenKontakt:fb.PersonSearch = new fb.PersonSearch(getPersonSearch.Personer[0]); // var personSearchResult:fb.PersonSearch[] = getPersonSearch.Personer; // innerScope.showNewContactDialog = undefined; // innerScope.showNewContactDialog = false; // newContactCtrl.$scope.personSearchResult = []; // $scope.$digest(); // innerScope.showNewContactDialog = undefined; // $scope.$digest(); // innerScope.showNewContactDialog = true; // newContactCtrl.$scope.personSearchResult = []; // $scope.$digest(); // innerScope.showNewContactDialog = undefined; // $scope.$digest(); // innerScope.showNewContactDialog = false; // newContactCtrl.$scope.personSearchResult = personSearchResult; // newContactCtrl.$scope.searchResultIsFromHittaSe = false; // $scope.$digest(); // innerScope.showNewContactDialog = undefined; // $scope.$digest(); // innerScope.showNewContactDialog = false; // newContactCtrl.$scope.personSearchResult = personSearchResult; // newContactCtrl.$scope.searchResultIsFromHittaSe = true; // $scope.$digest(); // innerScope.showNewContactDialog = undefined; // $scope.$digest(); // innerScope.showNewContactDialog = true; // newContactCtrl.$scope.searchResultIsFromHittaSe = true; // newContactCtrl.$scope.personSearchResult = personSearchResult; // $scope.$digest(); // innerScope.showNewContactDialog = undefined; // innerScope.searchButtonHasBeenClicked = true; // $scope.$digest(); // innerScope.showNewContactDialog = true; // newContactCtrl.$scope.searchResultIsFromHittaSe = true; // newContactCtrl.$scope.personSearchResult = []; // $scope.$digest(); // innerScope.showNewContactDialog = undefined; // innerScope.searchButtonHasBeenClicked = true; // $scope.$digest(); // innerScope.showNewContactDialog = true; // newContactCtrl.$scope.searchResultIsFromHittaSe = true; // newContactCtrl.$scope.personSearchResult = personSearchResult; // $scope.$digest(); // expect(innerScope.personSearchResult).toBe(personSearchResult); // })); // it('newKontakt.Namn" ', inject(function (getPersonSearch) { // var newKontakt: fb.PersonSearchChangeTrack = personChangeTrack; // innerScope.newKontakt = newKontakt; // $scope.$digest(); // newKontakt.Personnamn.value = 'A B C D'; // $scope.$digest(); // expect(innerScope.newKontakt).toBeDefined();//We just want to run through the code for coverage purposes. // })); // }); // // // }); //});