/* MMigreringsbeslut: denna test behöver Chrome headless eller PhantomJs + es6-shim för att kunna köras */ describe('KopieraLantmaeteridata', function () { var _getLMUtdrag: fb.UtdragImporteraFastTomtrDO; var _getLMSaeljareInfo; var _getLMTaxering; var _getLMPantbrev; var _getMaeklarObjekt: fb.MaeklarObjektDO; var controller; var $scope: fb.IKopieraLantmaeteridataScope; var sideDrawerService; var lantmaeterietService: fb.IMockLantmaeterietService; var maeklarObjektPantbrevService: fb.IMockMaeklarObjektPantbrevService; var maeklarObjektTaxeringService: fb.IMockMaeklarObjektTaxeringService; var domainService: fb.IMockDomainService; var kommunService: fb.IMockKommunService beforeEach(angular.mock.module('fasit', 'fbMocks', 'configModelMock')); beforeEach(inject(function (getLMUtdrag, getLMSaeljareInfo, getLMTaxering, getLMPantbrev, $rootScope, $controller, $injector, getMaeklarObjekt) { _getLMUtdrag = getLMUtdrag; _getLMSaeljareInfo = getLMSaeljareInfo; _getLMTaxering = getLMTaxering; _getLMPantbrev = getLMPantbrev; _getMaeklarObjekt = new fb.MaeklarObjektDO(getMaeklarObjekt); $scope = $rootScope.$new() sideDrawerService = $injector.get('sideDrawerService'); lantmaeterietService = $injector.get('lantmaeterietService'); maeklarObjektPantbrevService = $injector.get('maeklarObjektPantbrevService'); maeklarObjektTaxeringService = $injector.get('maeklarObjektTaxeringService'); domainService = $injector.get('domainService'); kommunService = $injector.get('kommunServiceMock'); spyOn(sideDrawerService, 'getParams').and.returnValue({ maeklarObjekt: _getMaeklarObjekt }); controller = $controller('KopieraLantmaeteridataCtrl', { $scope: $scope, sideDrawerService: sideDrawerService, lantmaeterietService: lantmaeterietService, maeklarObjektPantbrevService: maeklarObjektPantbrevService, maeklarObjektTaxeringService: maeklarObjektTaxeringService, domainService: domainService, kommunService: kommunService }); })); describe('vid initialisering', function () { it('borde skapa merge av fastighetsdata när utdragData, kommuner, församlingar och upplåtelseformer hämtats', inject(function (getForsamling, queryUpplatelseform, queryKommun) { lantmaeterietService.resolve(fb.RequestType.GET, 'utdrag' + _getMaeklarObjekt.MaeklarObjektId.value, _getLMUtdrag); domainService.resolve(fb.RequestType.GET, 'forsamling299', getForsamling); //domainService.resolve(fb.RequestType.QUERY, '', queryUpplatelseform); kommunService.resolve(fb.RequestType.QUERY, '', queryKommun); $scope.$digest(); expect($scope.Fastighetsdata).toBeTruthy(); expect($scope.Fastighetsdata.Adress.AerKonflikt).toBeTruthy(); expect($scope.Fastighetsdata.Adress.fasitVaerde.value).toEqual(_getMaeklarObjekt.Adress.AdressText.value); expect($scope.Fastighetsdata.Adress.lmVaerde.value).toEqual(_getLMUtdrag.Adress); expect($scope.Fastighetsdata.BoYta.AerKonflikt).toBeTruthy(); expect($scope.Fastighetsdata.BoYta.fasitVaerde.value).toEqual(_getMaeklarObjekt.BoYta.value); expect($scope.Fastighetsdata.BoYta.lmVaerde.value).toEqual(_getLMUtdrag.Boarea); expect($scope.Fastighetsdata.BoYta.ValdKaella.value).toEqual(0); })); it('borde skapa merge av taxeringsdata när taxeringsdata hämtats', inject(function () { lantmaeterietService.resolve(fb.RequestType.GET, 'utdrag' + _getMaeklarObjekt.MaeklarObjektId.value, _getLMUtdrag); maeklarObjektTaxeringService.resolve(fb.RequestType.QUERY, '', _getLMTaxering); $scope.$digest(); expect($scope.sections.Taxering.header).toContain('7 Nya'); expect($scope.sections.Taxering.header).toContain('1 Ändrad'); expect($scope.sections.Taxering.header).toContain('2 Borttagna'); })); it('borde skapa merge av pantbrev när pantbrev hämtats', inject(function () { lantmaeterietService.resolve(fb.RequestType.GET, 'utdrag' + _getMaeklarObjekt.MaeklarObjektId.value, _getLMUtdrag); maeklarObjektPantbrevService.resolve(fb.RequestType.QUERY, '', _getLMPantbrev); $scope.$digest(); expect($scope.sections.Pantbrev.header).toContain('7 Nya'); expect($scope.sections.Pantbrev.header).toContain('3 Borttagna'); })); it('borde skapa merge av kontakter när saeljare hämtats', inject(function () { lantmaeterietService.resolve(fb.RequestType.GET, 'utdrag' + _getMaeklarObjekt.MaeklarObjektId.value, _getLMUtdrag); lantmaeterietService.resolve(fb.RequestType.GET, 'SaeljareInfo' + _getMaeklarObjekt.MaeklarObjektId.value, _getLMSaeljareInfo); $scope.$digest(); })); }); describe('vid merge av andelar', function () { var tmp: any; beforeEach(function () { tmp = {}; tmp.Aegare = _getLMUtdrag.Aegare; tmp.SaeljareInfo = _getLMSaeljareInfo; }); afterEach(function () { _getLMUtdrag.Aegare = tmp.Aegare; _getLMSaeljareInfo = tmp.SaeljareInfo; }); it('borde kunna matcha ägare och säljare och från dessa skapa ett andels-merge-objekt', inject(function () { _getLMUtdrag.Aegare = [ { "MaeklarObjektId": 1152781, "PersonId": null, "Personnummer": "19521016-5030", "Foernamn": "PETER", "Efternamn": "MÖLLER", "Organisationsnamn": null, "Adress": "Ingår inte", "Postnummer": "Ingår inte", "Postort": "Ingår inte", "AndelNaemnare": 3, "AndelTaeljare": 1}, { "MaeklarObjektId": 1152781, "PersonId": null, "Personnummer": "19570415-4896", "Foernamn": "LARS", "Efternamn": "MÖLLER", "Organisationsnamn": null, "Adress": "Ingår inte", "Postnummer": "Ingår inte", "Postort": "Ingår inte", "AndelNaemnare": 3, "AndelTaeljare": 1 }, { "MaeklarObjektId": 1152781, "PersonId": null, "Personnummer": "19540515-4880", "Foernamn": "MARIE", "Efternamn": "MÖLLER", "Organisationsnamn": null, "Adress": "Ingår inte", "Postnummer": "Ingår inte", "Postort": "Ingår inte", "AndelNaemnare": 3, "AndelTaeljare": 1 } ]; _getLMSaeljareInfo = [ { "PersonId": 7926169, "Personnummer": "19540515-4880", "Personnamn": "Ann Marie Möller", "Foernamn": "Ann Marie", "Efternamn": "Möller", "Adress": "Welandergatan 13", "Postnummer": "41656", "Postort": "Göteborg", "MaeklarObjektId": null, "AndelTaeljare": 1, "AndelNaemnare": 6 }, { "PersonId": 7926170, "Personnummer": "19570415-4896", "Personnamn": "Lars Michael Möller", "Foernamn": "Lars Michael", "Efternamn": "Möller", "Adress": "Sillgatan 1", "Postnummer": "44267", "Postort": "Marstrand", "MaeklarObjektId": null, "AndelTaeljare": 1, "AndelNaemnare": 6 }, { "PersonId": 7926151, "Personnummer": "19521016-5030", "Personnamn": "Rolf Peter Möller", "Foernamn": "Rolf Peter", "Efternamn": "Möller", "Adress": "Flat 3 24 Cardigan Road\rRichmond, Tw10 6bj\rStorbritannien", "Postnummer": null, "Postort": null, "MaeklarObjektId": null, "AndelTaeljare": 2, "AndelNaemnare": 3 } ]; lantmaeterietService.resolve(fb.RequestType.GET, 'utdrag' + _getMaeklarObjekt.MaeklarObjektId.value, _getLMUtdrag); lantmaeterietService.resolve(fb.RequestType.GET, 'SaeljareInfo' + _getMaeklarObjekt.MaeklarObjektId.value, _getLMSaeljareInfo); $scope.$digest(); expect(($scope.utdragData.Aegare[0].PersonId).value).toEqual(7926151); expect(($scope.utdragData.Aegare[1].PersonId).value).toEqual(7926170); expect(($scope.utdragData.Aegare[2].PersonId).value).toEqual(7926169); $scope.actions.hittatKontakt(); expect($scope.utdragData.Aegare[0].PersonId).toEqual(7926151); expect($scope.utdragData.Aegare[1].PersonId).toEqual(7926170); expect($scope.utdragData.Aegare[2].PersonId).toEqual(7926169); spyOn($scope.actions, 'KopieraData'); $scope.actions.andelarMerged(); expect($scope.actions.KopieraData).not.toHaveBeenCalled(); expect($scope.aegarAndelar).toBeTruthy(); $scope.actions.andelarMerged(); expect($scope.actions.KopieraData).not.toHaveBeenCalled(); // Väljer alla som FasIT, angular.forEach($scope.aegarAndelar, function (value) { value.ValdKaella.value = 1; }); $scope.$digest(); expect($scope.andelarSumRight).toBeTruthy(); // Väljer alla som 1/4 andel angular.forEach($scope.aegarAndelar, function (value) { value.AndelTaeljare.fasitVaerde.value = 1; value.AndelNaemnare.fasitVaerde.value = 4; }); $scope.$digest(); $scope.actions.andelarMerged(); expect($scope.actions.KopieraData).not.toHaveBeenCalled(); expect($scope.andelarSumRight).toBeFalsy(); $scope.aegarAndelar[0].AndelTaeljare.fasitVaerde.value = 11; $scope.aegarAndelar[0].AndelNaemnare.fasitVaerde.value = 33; $scope.aegarAndelar[1].AndelTaeljare.fasitVaerde.value = 1; $scope.aegarAndelar[1].AndelNaemnare.fasitVaerde.value = 3; $scope.aegarAndelar[2].AndelTaeljare.fasitVaerde.value = 5; $scope.aegarAndelar[2].AndelNaemnare.fasitVaerde.value = 15; $scope.$digest(); expect($scope.andelarSumRight).toBeTruthy(); $scope.setAndelarSum(); $scope.actions.andelarMerged(); expect($scope.actions.KopieraData).toHaveBeenCalled(); expect($scope.utdragData.Aegare[0].AndelTaeljare).toBe(1); expect($scope.utdragData.Aegare[1].AndelTaeljare).toBe(1); expect($scope.utdragData.Aegare[2].AndelTaeljare).toBe(1); })); }); });