From 699a09bef62081be46993516de6e7bde45b28859 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr>
Date: Wed, 5 Oct 2022 21:53:15 +0200
Subject: [PATCH] Fixed bugs => cone-search

---
 .../components/cone-search.component.html     |  5 ++-
 .../components/cone-search.component.spec.ts  | 10 +++---
 .../components/cone-search.component.ts       | 10 ++----
 .../components/dec.component.spec.ts          |  4 +--
 .../cone-search/components/dec.component.ts   | 10 +++---
 .../components/ra.component.spec.ts           |  4 +--
 .../cone-search/components/ra.component.ts    | 10 +++---
 .../components/resolver.component.ts          |  1 -
 .../position/cone-search-panel.component.html |  1 -
 .../position/cone-search-panel.component.ts   |  1 -
 .../containers/position.component.html        |  1 -
 .../containers/position.component.ts          |  2 --
 .../criteria/cone-search-tab.component.html   |  1 -
 .../criteria/cone-search-tab.component.ts     |  1 -
 .../search/containers/criteria.component.html |  1 -
 .../search/containers/criteria.component.ts   |  2 --
 .../store/effects/cone-search.effects.spec.ts |  8 ++++-
 .../store/effects/cone-search.effects.ts      | 33 ++++++++++++++++---
 .../reducers/cone-search.reducer.spec.ts      |  1 -
 .../store/reducers/cone-search.reducer.ts     |  6 ++--
 20 files changed, 63 insertions(+), 49 deletions(-)

diff --git a/client/src/app/instance/cone-search/components/cone-search.component.html b/client/src/app/instance/cone-search/components/cone-search.component.html
index ddec1bfa..0d5da742 100644
--- a/client/src/app/instance/cone-search/components/cone-search.component.html
+++ b/client/src/app/instance/cone-search/components/cone-search.component.html
@@ -2,7 +2,6 @@
     <div class="col">
         <app-resolver
             [coneSearch]="coneSearch"
-            [resolver]="resolver"
             [resolverIsLoading]="resolverIsLoading"
             [resolverIsLoaded]="resolverIsLoaded"
             (retrieveCoordinates)="retrieveCoordinates.emit($event)">
@@ -11,7 +10,7 @@
 </div>
 <div class="row">
     <div class="col pb-4">
-        <app-ra [form]="form" [unit]="unit" [resolver]="resolver">
+        <app-ra [form]="form" [unit]="unit" [coneSearch]="coneSearch">
         </app-ra>
     </div>
     <div class="col-auto p-0 align-self-center">
@@ -20,7 +19,7 @@
         </button>
     </div>
     <div class="col">
-        <app-dec [form]="form" [unit]="unit" [resolver]="resolver">
+        <app-dec [form]="form" [unit]="unit" [coneSearch]="coneSearch">
         </app-dec>
     </div>
     <div class="col-12">
diff --git a/client/src/app/instance/cone-search/components/cone-search.component.spec.ts b/client/src/app/instance/cone-search/components/cone-search.component.spec.ts
index adbf2b5c..2b23602a 100644
--- a/client/src/app/instance/cone-search/components/cone-search.component.spec.ts
+++ b/client/src/app/instance/cone-search/components/cone-search.component.spec.ts
@@ -91,7 +91,7 @@ describe('[Instance][ConeSearch][Components] ConeSearchComponent', () => {
         const spy = jest.spyOn(testedComponent, 'ngOnChanges');
         testHostComponent.resolver = { name: 'myObject', ra: 1, dec: 2 };
         testHostFixture.detectChanges();
-        expect(spy).toHaveBeenCalledTimes(1);
+        expect(spy).toHaveBeenCalledTimes(0);
         expect(testedComponent.unit).toEqual('degree');
         expect(testedComponent.form.controls.ra.enabled).toBeTruthy();
         expect(testedComponent.form.controls.dec.enabled).toBeTruthy();
@@ -99,15 +99,15 @@ describe('[Instance][ConeSearch][Components] ConeSearchComponent', () => {
 
         testHostComponent.coneSearch = { ra: 1, dec: 2, radius: 3 };
         testHostFixture.detectChanges();
-        expect(spy).toHaveBeenCalledTimes(2);
-        expect(testedComponent.form.controls.ra.value).toEqual(1);
-        expect(testedComponent.form.controls.dec.value).toEqual(2);
+        expect(spy).toHaveBeenCalledTimes(1);
+        expect(testedComponent.form.controls.ra.value).toEqual(null);
+        expect(testedComponent.form.controls.dec.value).toEqual(null);
         expect(testedComponent.form.controls.radius.value).toEqual(3);
 
         testHostComponent.coneSearch = undefined;
         testedComponent.unit = 'hms';
         testHostFixture.detectChanges();
-        expect(spy).toHaveBeenCalledTimes(3);
+        expect(spy).toHaveBeenCalledTimes(2);
         expect(testedComponent.form.controls.ra_hms.enabled).toBeTruthy();
         expect(testedComponent.form.controls.dec_dms.enabled).toBeTruthy();
     });
diff --git a/client/src/app/instance/cone-search/components/cone-search.component.ts b/client/src/app/instance/cone-search/components/cone-search.component.ts
index 72c5541b..5ded610d 100644
--- a/client/src/app/instance/cone-search/components/cone-search.component.ts
+++ b/client/src/app/instance/cone-search/components/cone-search.component.ts
@@ -12,7 +12,7 @@ import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms
 
 import { debounceTime, Subscription } from 'rxjs';
 
-import { ConeSearch, Resolver } from 'src/app/instance/store/models';
+import { ConeSearch } from 'src/app/instance/store/models';
 import { nanValidator, rangeValidator } from '../validators';
 
 /**
@@ -27,7 +27,6 @@ import { nanValidator, rangeValidator } from '../validators';
 })
 export class ConeSearchComponent implements OnChanges, OnInit, OnDestroy {
     @Input() coneSearch: ConeSearch;
-    @Input() resolver: Resolver;
     @Input() resolverIsLoading: boolean;
     @Input() resolverIsLoaded: boolean;
     @Output() retrieveCoordinates: EventEmitter<string> = new EventEmitter();
@@ -65,10 +64,6 @@ export class ConeSearchComponent implements OnChanges, OnInit, OnDestroy {
     }
 
     ngOnChanges(changes: SimpleChanges): void {
-        if (changes.resolver && changes.resolver.currentValue) {
-            this.unit = 'degree';
-        }
-
         if (changes.coneSearch && !changes.coneSearch.currentValue) {
             if (this.unit == 'degree') {
                 this.form.controls.ra.enable();
@@ -83,7 +78,8 @@ export class ConeSearchComponent implements OnChanges, OnInit, OnDestroy {
         }
 
         if (changes.coneSearch && changes.coneSearch.currentValue) {
-            this.form.patchValue(this.coneSearch);
+            const radius = changes.coneSearch.currentValue.radius;
+            this.form.controls.radius.setValue(radius);
         }
     }
 
diff --git a/client/src/app/instance/cone-search/components/dec.component.spec.ts b/client/src/app/instance/cone-search/components/dec.component.spec.ts
index ddc5a64b..407b3b14 100644
--- a/client/src/app/instance/cone-search/components/dec.component.spec.ts
+++ b/client/src/app/instance/cone-search/components/dec.component.spec.ts
@@ -94,8 +94,8 @@ describe('[Instance][ConeSearch][Components] DecComponent', () => {
         expect(testedComponent.form.controls.dec.enabled).toBeTruthy();
         testHostComponent.resolver = { ra: 1, dec: 2, name: 'myObject' };
         testHostFixture.detectChanges();
-        expect(spy).toHaveBeenCalledTimes(3);
-        expect(testedComponent.form.controls.dec.value).toEqual(2);
+        expect(spy).toHaveBeenCalledTimes(2);
+        expect(testedComponent.form.controls.dec.value).toEqual(32.87);
     });
 
     it('#getDecDmsForm() should return DEC DMS form control', () => {
diff --git a/client/src/app/instance/cone-search/components/dec.component.ts b/client/src/app/instance/cone-search/components/dec.component.ts
index 501be2ea..7d8c3180 100644
--- a/client/src/app/instance/cone-search/components/dec.component.ts
+++ b/client/src/app/instance/cone-search/components/dec.component.ts
@@ -13,7 +13,7 @@ import { UntypedFormGroup } from '@angular/forms';
 import { Subscription } from 'rxjs';
 import { debounceTime } from 'rxjs/operators';
 
-import { Resolver } from 'src/app/instance/store/models';
+import { ConeSearch } from 'src/app/instance/store/models';
 
 /**
  * @class
@@ -32,7 +32,7 @@ import { Resolver } from 'src/app/instance/store/models';
 export class DecComponent implements OnInit, OnDestroy, OnChanges {
     @Input() form: UntypedFormGroup;
     @Input() unit: string;
-    @Input() resolver: Resolver;
+    @Input() coneSearch: ConeSearch;
 
     public decControlSubscription: Subscription
     public decDmsSubscription: Subscription;
@@ -61,8 +61,10 @@ export class DecComponent implements OnInit, OnDestroy, OnChanges {
             }
         }
 
-        if (changes.resolver && changes.resolver.currentValue) {
-            this.form.controls.dec.setValue(changes.resolver.currentValue.dec);
+        if (changes.coneSearch && changes.coneSearch.currentValue) {
+            const dec = changes.coneSearch.currentValue.dec;
+            this.form.controls.dec.setValue(changes.coneSearch.currentValue.dec);
+            this.deg2DMS(dec);
         }
     }
 
diff --git a/client/src/app/instance/cone-search/components/ra.component.spec.ts b/client/src/app/instance/cone-search/components/ra.component.spec.ts
index 1ecb7b16..7a05acd6 100644
--- a/client/src/app/instance/cone-search/components/ra.component.spec.ts
+++ b/client/src/app/instance/cone-search/components/ra.component.spec.ts
@@ -94,8 +94,8 @@ describe('[Instance][ConeSearch][Components] RaComponent', () => {
         expect(testedComponent.form.controls.ra.enabled).toBeTruthy();
         testHostComponent.resolver = { ra: 1, dec: 2, name: 'myObject' };
         testHostFixture.detectChanges();
-        expect(spy).toHaveBeenCalledTimes(3);
-        expect(testedComponent.form.controls.ra.value).toEqual(1);
+        expect(spy).toHaveBeenCalledTimes(2);
+        expect(testedComponent.form.controls.ra.value).toEqual(78.2);
     });
 
     it('#getRaHmsForm() should return RA HMS form control', () => {
diff --git a/client/src/app/instance/cone-search/components/ra.component.ts b/client/src/app/instance/cone-search/components/ra.component.ts
index 6314f603..a177faac 100644
--- a/client/src/app/instance/cone-search/components/ra.component.ts
+++ b/client/src/app/instance/cone-search/components/ra.component.ts
@@ -13,7 +13,7 @@ import { UntypedFormGroup } from '@angular/forms';
 import { Subscription } from 'rxjs';
 import { debounceTime } from 'rxjs/operators';
 
-import { Resolver } from 'src/app/instance/store/models';
+import { ConeSearch } from 'src/app/instance/store/models';
 
 /**
  * @class
@@ -32,7 +32,7 @@ import { Resolver } from 'src/app/instance/store/models';
 export class RaComponent implements OnInit, OnDestroy, OnChanges  {
     @Input() form: UntypedFormGroup;
     @Input() unit: string;
-    @Input() resolver: Resolver;
+    @Input() coneSearch: ConeSearch;
 
     public raControlSubscription: Subscription;
     public raHmsFormSubscription: Subscription;
@@ -61,8 +61,10 @@ export class RaComponent implements OnInit, OnDestroy, OnChanges  {
             }
         }
 
-        if (changes.resolver && changes.resolver.currentValue) {
-            this.form.controls.ra.setValue(changes.resolver.currentValue.ra);
+        if (changes.coneSearch && changes.coneSearch.currentValue) {
+            const ra = changes.coneSearch.currentValue.ra;
+            this.form.controls.ra.setValue(changes.coneSearch.currentValue.ra);
+            this.deg2HMS(ra);
         }
     }
 
diff --git a/client/src/app/instance/cone-search/components/resolver.component.ts b/client/src/app/instance/cone-search/components/resolver.component.ts
index d9add2b4..fab84821 100644
--- a/client/src/app/instance/cone-search/components/resolver.component.ts
+++ b/client/src/app/instance/cone-search/components/resolver.component.ts
@@ -23,7 +23,6 @@ import { ConeSearch, Resolver } from 'src/app/instance/store/models';
 })
 export class ResolverComponent {
     @Input() coneSearch: ConeSearch;
-    @Input() resolver: Resolver;
     @Input() resolverIsLoading: boolean;
     @Input() resolverIsLoaded: boolean;
     @Output() retrieveCoordinates: EventEmitter<string> = new EventEmitter();
diff --git a/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html
index e3609229..52e4398f 100644
--- a/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html
+++ b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html
@@ -6,7 +6,6 @@
                 <div class="col">
                     <app-cone-search
                         [coneSearch]="coneSearch"
-                        [resolver]="resolver"
                         [resolverIsLoading]="resolverIsLoading"
                         [resolverIsLoaded]="resolverIsLoaded"
                         (retrieveCoordinates)="retrieveCoordinates.emit($event)"
diff --git a/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.ts b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.ts
index a032eda0..f2096f26 100644
--- a/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.ts
+++ b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.ts
@@ -18,7 +18,6 @@ import { ConeSearch, Resolver, coneSearchToString } from 'src/app/instance/store
 })
 export class ConeSearchPanelComponent {
     @Input() coneSearch: ConeSearch;
-    @Input() resolver: Resolver;
     @Input() resolverIsLoading: boolean;
     @Input() resolverIsLoaded: boolean;
     @Output() addConeSearch: EventEmitter<ConeSearch> = new EventEmitter();
diff --git a/client/src/app/instance/search-multiple/containers/position.component.html b/client/src/app/instance/search-multiple/containers/position.component.html
index 65578260..262c9e22 100644
--- a/client/src/app/instance/search-multiple/containers/position.component.html
+++ b/client/src/app/instance/search-multiple/containers/position.component.html
@@ -9,7 +9,6 @@
 
     <app-cone-search-panel
         [coneSearch]="coneSearch | async"
-        [resolver]="resolver | async"
         [resolverIsLoading]="resolverIsLoading | async"
         [resolverIsLoaded]="resolverIsLoaded | async"
         (addConeSearch)="addConeSearch($event)"
diff --git a/client/src/app/instance/search-multiple/containers/position.component.ts b/client/src/app/instance/search-multiple/containers/position.component.ts
index d1d57eba..7d883f8c 100644
--- a/client/src/app/instance/search-multiple/containers/position.component.ts
+++ b/client/src/app/instance/search-multiple/containers/position.component.ts
@@ -30,13 +30,11 @@ import * as coneSearchSelector from '../../store/selectors/cone-search.selector'
     templateUrl: 'position.component.html'
 })
 export class PositionComponent extends AbstractSearchMultipleComponent implements OnInit {
-    public resolver: Observable<Resolver>;
     public resolverIsLoading: Observable<boolean>;
     public resolverIsLoaded: Observable<boolean>;
 
     constructor(protected store: Store<{ }>) {
         super(store);
-        this.resolver = this.store.select(coneSearchSelector.selectResolver);
         this.resolverIsLoading = this.store.select(coneSearchSelector.selectResolverIsLoading);
         this.resolverIsLoaded = this.store.select(coneSearchSelector.selectResolverIsLoaded);
     }
diff --git a/client/src/app/instance/search/components/criteria/cone-search-tab.component.html b/client/src/app/instance/search/components/criteria/cone-search-tab.component.html
index 48eedf4b..d0991f52 100644
--- a/client/src/app/instance/search/components/criteria/cone-search-tab.component.html
+++ b/client/src/app/instance/search/components/criteria/cone-search-tab.component.html
@@ -16,7 +16,6 @@
             <div class="col">
                 <app-cone-search
                     [coneSearch]="coneSearch"
-                    [resolver]="resolver"
                     [resolverIsLoading]="resolverIsLoading"
                     [resolverIsLoaded]="resolverIsLoaded"
                     (retrieveCoordinates)="retrieveCoordinates.emit($event)"
diff --git a/client/src/app/instance/search/components/criteria/cone-search-tab.component.ts b/client/src/app/instance/search/components/criteria/cone-search-tab.component.ts
index d7384306..3df09dba 100644
--- a/client/src/app/instance/search/components/criteria/cone-search-tab.component.ts
+++ b/client/src/app/instance/search/components/criteria/cone-search-tab.component.ts
@@ -26,7 +26,6 @@ export class ConeSearchTabComponent {
     @Input() datasetList: Dataset[];
     @Input() coneSearch: ConeSearch;
     @Input() coneSearchConfig: ConeSearchConfig;
-    @Input() resolver: Resolver;
     @Input() resolverIsLoading: boolean;
     @Input() resolverIsLoaded: boolean;
     @Output() addConeSearch: EventEmitter<ConeSearch> = new EventEmitter();
diff --git a/client/src/app/instance/search/containers/criteria.component.html b/client/src/app/instance/search/containers/criteria.component.html
index 9da1006f..17e9d847 100644
--- a/client/src/app/instance/search/containers/criteria.component.html
+++ b/client/src/app/instance/search/containers/criteria.component.html
@@ -22,7 +22,6 @@
             [datasetList]="datasetList | async"
             [coneSearch]="coneSearch | async"
             [coneSearchConfig]="coneSearchConfig | async"
-            [resolver]="resolver | async"
             [resolverIsLoading]="resolverIsLoading | async"
             [resolverIsLoaded]="resolverIsLoaded | async"
             (addConeSearch)="addConeSearch($event)"
diff --git a/client/src/app/instance/search/containers/criteria.component.ts b/client/src/app/instance/search/containers/criteria.component.ts
index 4f4ad8ee..cb0d816c 100644
--- a/client/src/app/instance/search/containers/criteria.component.ts
+++ b/client/src/app/instance/search/containers/criteria.component.ts
@@ -34,7 +34,6 @@ import * as coneSearchConfigSelector from 'src/app/metamodel/selectors/cone-sear
 export class CriteriaComponent extends AbstractSearchComponent {
     public instance: Observable<Instance>;
     public dataset: Observable<Dataset>;
-    public resolver: Observable<Resolver>;
     public resolverIsLoading: Observable<boolean>;
     public resolverIsLoaded: Observable<boolean>;
     public coneSearchConfig: Observable<ConeSearchConfig>;
@@ -45,7 +44,6 @@ export class CriteriaComponent extends AbstractSearchComponent {
         super(store);
         this.instance = store.select(instanceSelector.selectInstanceByRouteName);
         this.dataset = store.select(datasetSelector.selectDatasetByRouteName);
-        this.resolver = this.store.select(coneSearchSelector.selectResolver);
         this.resolverIsLoading = this.store.select(coneSearchSelector.selectResolverIsLoading);
         this.resolverIsLoaded = this.store.select(coneSearchSelector.selectResolverIsLoaded);
         this.coneSearchConfig = store.select(coneSearchConfigSelector.selectConeSearchConfig);
diff --git a/client/src/app/instance/store/effects/cone-search.effects.spec.ts b/client/src/app/instance/store/effects/cone-search.effects.spec.ts
index cf86c8d2..1033c5b6 100644
--- a/client/src/app/instance/store/effects/cone-search.effects.spec.ts
+++ b/client/src/app/instance/store/effects/cone-search.effects.spec.ts
@@ -2,6 +2,7 @@ import { TestBed } from '@angular/core/testing';
 
 import { provideMockActions } from '@ngrx/effects/testing';
 import { EffectsMetadata, getEffectsMetadata } from '@ngrx/effects';
+import { provideMockStore } from '@ngrx/store/testing';
 import { Observable } from 'rxjs';
 import { cold, hot } from 'jasmine-marbles';
 import { ToastrService } from 'ngx-toastr';
@@ -10,6 +11,7 @@ import { ConeSearchEffects } from './cone-search.effects';
 import { ConeSearchService } from '../services/cone-search.service';
 import * as coneSearchActions from '../actions/cone-search.actions';
 import { Resolver } from '../models';
+import * as fromConeSearch from 'src/app/instance/store/reducers/cone-search.reducer';
 
 describe('[Instance][Store] ConeSearchEffects', () => {
     let actions = new Observable();
@@ -17,6 +19,9 @@ describe('[Instance][Store] ConeSearchEffects', () => {
     let metadata: EffectsMetadata<ConeSearchEffects>;
     let coneSearchService: ConeSearchService;
     let toastr: ToastrService;
+    const initialState = {
+        coneSearch: { ...fromConeSearch.initialState }
+    };
 
     beforeEach(() => {
         TestBed.configureTestingModule({
@@ -24,7 +29,8 @@ describe('[Instance][Store] ConeSearchEffects', () => {
                 ConeSearchEffects,
                 { provide: ConeSearchService, useValue: { retrieveCoordinates: jest.fn() }},
                 { provide: ToastrService, useValue: { error: jest.fn() } },
-                provideMockActions(() => actions)
+                provideMockActions(() => actions),
+                provideMockStore({ initialState })
             ]
         }).compileComponents();
         effects = TestBed.inject(ConeSearchEffects);
diff --git a/client/src/app/instance/store/effects/cone-search.effects.ts b/client/src/app/instance/store/effects/cone-search.effects.ts
index cf074734..d8606c24 100644
--- a/client/src/app/instance/store/effects/cone-search.effects.ts
+++ b/client/src/app/instance/store/effects/cone-search.effects.ts
@@ -9,13 +9,15 @@
 
 import { Injectable } from '@angular/core';
 
-import { Actions, createEffect, ofType } from '@ngrx/effects';
+import { Actions, createEffect, ofType, concatLatestFrom } from '@ngrx/effects';
+import { Store } from '@ngrx/store';
 import { of } from 'rxjs';
 import { map, tap, mergeMap, catchError } from 'rxjs/operators';
 import { ToastrService } from 'ngx-toastr';
 
 import * as coneSearchActions from '../actions/cone-search.actions';
 import { ConeSearchService } from '../services/cone-search.service';
+import * as coneSearchSelector from '../selectors/cone-search.selector';
 
 /**
  * @class
@@ -23,14 +25,13 @@ import { ConeSearchService } from '../services/cone-search.service';
  */
 @Injectable()
 export class ConeSearchEffects {
-
     /**
      * Calls actions to retrieve object coordinates.
      */
     retrieveCoordinates$ = createEffect((): any =>
         this.actions$.pipe(
             ofType(coneSearchActions.retrieveCoordinates),
-            mergeMap((action) => this.coneSearchService.retrieveCoordinates(action.name)
+            mergeMap(action => this.coneSearchService.retrieveCoordinates(action.name)
                 .pipe(
                     map(response => {
                         const parser = new DOMParser();
@@ -42,7 +43,7 @@ export class ConeSearchEffects {
                         const ra = +xml.getElementsByTagName('jradeg')[0].childNodes[0].nodeValue;
                         const dec = +xml.getElementsByTagName('jdedeg')[0].childNodes[0].nodeValue;
                         const resolver = { name, ra, dec };
-                        return coneSearchActions.retrieveCoordinatesSuccess({ resolver });
+                        return coneSearchActions.retrieveCoordinatesSuccess({ resolver })
                     }),
                     catchError(() => of(coneSearchActions.retrieveCoordinatesFail()))
                 )
@@ -50,6 +51,27 @@ export class ConeSearchEffects {
         )
     );
 
+    /**
+     * Calls actions to retrieve object coordinates.
+     */
+    retrieveCoordinatesSuccess$ = createEffect((): any =>
+        this.actions$.pipe(
+            ofType(coneSearchActions.retrieveCoordinatesSuccess),
+            concatLatestFrom(() => this.store.select(coneSearchSelector.selectConeSearch)),
+            map(([action, coneSearch]) => {
+                const radius = (coneSearch) ? coneSearch.radius : 2;
+                const updatedConeSearch = {
+                    ra: action.resolver.ra,
+                    dec: action.resolver.dec,
+                    radius
+                };
+                return coneSearchActions.updateConeSearch({
+                    coneSearch: updatedConeSearch
+                });
+            })
+        )
+    );
+
     /**
      * Displays retrieve object coordinates error notification.
      */
@@ -63,6 +85,7 @@ export class ConeSearchEffects {
     constructor(
         private actions$: Actions,
         private coneSearchService: ConeSearchService,
-        private toastr: ToastrService
+        private toastr: ToastrService,
+        private store: Store<{ }>
     ) {}
 }
diff --git a/client/src/app/instance/store/reducers/cone-search.reducer.spec.ts b/client/src/app/instance/store/reducers/cone-search.reducer.spec.ts
index fefb4582..dabdd073 100644
--- a/client/src/app/instance/store/reducers/cone-search.reducer.spec.ts
+++ b/client/src/app/instance/store/reducers/cone-search.reducer.spec.ts
@@ -60,7 +60,6 @@ describe('[Instance][Store] ConeSearch reducer', () => {
         const state = fromConeSearch.coneSearchReducer(initialState, action);
 
         expect(state.coneSearch).toBeNull();
-        expect(state.resolver).toBe(resolver);
         expect(state.resolverIsLoading).toBeFalsy();
         expect(state.resolverIsLoaded).toBeTruthy();
         expect(state).not.toBe(initialState);
diff --git a/client/src/app/instance/store/reducers/cone-search.reducer.ts b/client/src/app/instance/store/reducers/cone-search.reducer.ts
index 87d4d1f8..c76d8620 100644
--- a/client/src/app/instance/store/reducers/cone-search.reducer.ts
+++ b/client/src/app/instance/store/reducers/cone-search.reducer.ts
@@ -42,17 +42,15 @@ export const coneSearchReducer = createReducer(
         coneSearch
     })),
     on(coneSearchActions.deleteConeSearch, state => ({
-        ...state,
-        coneSearch: null
+        ...initialState
     })),
     on(coneSearchActions.retrieveCoordinates, state => ({
         ...state,
         resolverIsLoading: true,
         resolverIsLoaded: false
     })),
-    on(coneSearchActions.retrieveCoordinatesSuccess, (state, { resolver }) => ({
+    on(coneSearchActions.retrieveCoordinatesSuccess, state => ({
         ...state,
-        resolver,
         resolverIsLoading: false,
         resolverIsLoaded: true
     })),
-- 
GitLab