diff --git a/junit.xml b/junit.xml
index 846dab503757c90ed17bb99230b16efe58010219..3b36f09668f0862b35716742613e324ed5a14754 100644
--- a/junit.xml
+++ b/junit.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuites name="jest tests" tests="443" failures="0" errors="0" time="7.886">
-  <testsuite name="search reducer" errors="0" failures="0" skipped="4" timestamp="2024-01-03T15:35:18" time="0.92" tests="4">
+<testsuites name="jest tests" tests="594" failures="0" errors="0" time="12.487">
+  <testsuite name="search reducer" errors="0" failures="0" skipped="4" timestamp="2024-01-12T14:39:36" time="0.696" tests="4">
     <testcase classname="search reducer should match initial state" name="search reducer should match initial state" time="0">
       <skipped/>
     </testcase>
@@ -14,674 +14,976 @@
       <skipped/>
     </testcase>
   </testsuite>
-  <testsuite name="AssociatedSubmap - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:18" time="1.755" tests="4">
-    <testcase classname="AssociatedSubmap - component should not display component when can not find asociated map model" name="AssociatedSubmap - component should not display component when can not find asociated map model" time="0.012">
+  <testsuite name="LegendImages - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="1.32" tests="4">
+    <testcase classname="LegendImages - component when current images are empty should render empty container" name="LegendImages - component when current images are empty should render empty container" time="0.035">
     </testcase>
-    <testcase classname="AssociatedSubmap - component should render component when associated map model is found" name="AssociatedSubmap - component should render component when associated map model is found" time="0.008">
+    <testcase classname="LegendImages - component when current images are present should render img element, partialUrl=url1/image.png" name="LegendImages - component when current images are present should render img element, partialUrl=url1/image.png" time="0.005">
     </testcase>
-    <testcase classname="AssociatedSubmap - component when map is already opened should open submap and set it to active on open submap button click" name="AssociatedSubmap - component when map is already opened should open submap and set it to active on open submap button click" time="0.041">
+    <testcase classname="LegendImages - component when current images are present should render img element, partialUrl=url2/image.png" name="LegendImages - component when current images are present should render img element, partialUrl=url2/image.png" time="0.003">
     </testcase>
-    <testcase classname="AssociatedSubmap - component when map is already opened should set map active on open submap button click" name="AssociatedSubmap - component when map is already opened should set map active on open submap button click" time="0.013">
+    <testcase classname="LegendImages - component when current images are present should render img element, partialUrl=url3/image.png" name="LegendImages - component when current images are present should render img element, partialUrl=url3/image.png" time="0.003">
     </testcase>
   </testsuite>
-  <testsuite name="PinsListItem - component " errors="0" failures="0" skipped="1" timestamp="2024-01-03T15:35:18" time="1.751" tests="6">
-    <testcase classname="PinsListItem - component  should display full name of pin" name="PinsListItem - component  should display full name of pin" time="0.023">
+  <testsuite name="OverviewImagesModal - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="1.345" tests="4">
+    <testcase classname="OverviewImagesModal - component when currentImage is NOT valid should not render component" name="OverviewImagesModal - component when currentImage is NOT valid should not render component" time="0.018">
     </testcase>
-    <testcase classname="PinsListItem - component  should display list of elements for pin for drugs" name="PinsListItem - component  should display list of elements for pin for drugs" time="0.005">
+    <testcase classname="OverviewImagesModal - component when currentImage is valid should render component" name="OverviewImagesModal - component when currentImage is valid should render component" time="0.036">
     </testcase>
-    <testcase classname="PinsListItem - component  should display list of references for pin" name="PinsListItem - component  should display list of references for pin" time="0.005">
+    <testcase classname="OverviewImagesModal - component when currentImage is valid should render image with valid src" name="OverviewImagesModal - component when currentImage is valid should render image with valid src" time="0.009">
     </testcase>
-    <testcase classname="PinsListItem - component  should display list of elements for pin for chemicals" name="PinsListItem - component  should display list of elements for pin for chemicals" time="0.005">
+    <testcase classname="OverviewImagesModal - component when currentImage is valid should render image wrapper with valid size" name="OverviewImagesModal - component when currentImage is valid should render image wrapper with valid size" time="0.009">
     </testcase>
-    <testcase classname="PinsListItem - component  should not display list of elements for pin for bioentities" name="PinsListItem - component  should not display list of elements for pin for bioentities" time="0">
-      <skipped/>
+  </testsuite>
+  <testsuite name="TopBar - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="1.54" tests="3">
+    <testcase classname="TopBar - component Should contain user avatar, search bar" name="TopBar - component Should contain user avatar, search bar" time="0.037">
+    </testcase>
+    <testcase classname="TopBar - component should open submaps drawer on submaps button click" name="TopBar - component should open submaps drawer on submaps button click" time="0.144">
     </testcase>
-    <testcase classname="PinsListItem - component  should not display list of available submaps for pin when there aren&apos;t any submaps" name="PinsListItem - component  should not display list of available submaps for pin when there aren&apos;t any submaps" time="0.007">
+    <testcase classname="TopBar - component should open overlays drawer on overlays button click" name="TopBar - component should open overlays drawer on overlays button click" time="0.047">
     </testcase>
   </testsuite>
-  <testsuite name="BioEntitiesSubmapItem - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:18" time="1.813" tests="4">
-    <testcase classname="BioEntitiesSubmapItem - component should display map name, number of elements, icon" name="BioEntitiesSubmapItem - component should display map name, number of elements, icon" time="0.022">
+  <testsuite name="useInitializeStore - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="1.683" tests="5">
+    <testcase classname="useInitializeStore - hook when fired should fetch project data in store" name="useInitializeStore - hook when fired should fetch project data in store" time="0.169">
+    </testcase>
+    <testcase classname="useInitializeStore - hook when fired should fetch backgrounds data in store" name="useInitializeStore - hook when fired should fetch backgrounds data in store" time="0.058">
     </testcase>
-    <testcase classname="BioEntitiesSubmapItem - component should navigate user to bio enitites results list after clicking button" name="BioEntitiesSubmapItem - component should navigate user to bio enitites results list after clicking button" time="0.06">
+    <testcase classname="useInitializeStore - hook when fired should fetch overlays data in store" name="useInitializeStore - hook when fired should fetch overlays data in store" time="0.059">
     </testcase>
-    <testcase classname="BioEntitiesSubmapItem - component should open submap and set it to active if it&apos;s not already opened" name="BioEntitiesSubmapItem - component should open submap and set it to active if it&apos;s not already opened" time="0.014">
+    <testcase classname="useInitializeStore - hook when fired should fetch models data in store" name="useInitializeStore - hook when fired should fetch models data in store" time="0.07">
     </testcase>
-    <testcase classname="BioEntitiesSubmapItem - component should set map active if it&apos;s already opened" name="BioEntitiesSubmapItem - component should set map active if it&apos;s already opened" time="0.012">
+    <testcase classname="useInitializeStore - hook when fired should use valid initialize value" name="useInitializeStore - hook when fired should use valid initialize value" time="0.026">
     </testcase>
   </testsuite>
-  <testsuite name="BioEntityDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:18" time="1.825" tests="6">
-    <testcase classname="BioEntityDrawer - component when there&apos;s NO matching bioEntity should not show drawer content" name="BioEntityDrawer - component when there&apos;s NO matching bioEntity should not show drawer content" time="0.027">
+  <testsuite name="MapNavigation - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="1.758" tests="4">
+    <testcase classname="MapNavigation - component should render list of currently opened maps, main map should not have close button" name="MapNavigation - component should render list of currently opened maps, main map should not have close button" time="0.205">
     </testcase>
-    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should show drawer header" name="BioEntityDrawer - component when there IS a matching bioEntity should show drawer header" time="0.048">
+    <testcase classname="MapNavigation - component all maps should have close button expect main map" name="MapNavigation - component all maps should have close button expect main map" time="0.148">
     </testcase>
-    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should show drawer bioEntity full name" name="BioEntityDrawer - component when there IS a matching bioEntity should show drawer bioEntity full name" time="0.003">
+    <testcase classname="MapNavigation - component should close map tab when clicking on close button while" name="MapNavigation - component should close map tab when clicking on close button while" time="0.044">
     </testcase>
-    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should not show drawer bioEntity full name if it doesn&apos;t exists" name="BioEntityDrawer - component when there IS a matching bioEntity should not show drawer bioEntity full name if it doesn&apos;t exists" time="0.004">
+    <testcase classname="MapNavigation - component should close map and open main map if closed currently selected map" name="MapNavigation - component should close map and open main map if closed currently selected map" time="0.073">
     </testcase>
-    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should show list of annotations " name="BioEntityDrawer - component when there IS a matching bioEntity should show list of annotations " time="0.015">
+  </testsuite>
+  <testsuite name="UserOverlayForm - Component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="1.782" tests="7">
+    <testcase classname="UserOverlayForm - Component renders the UserOverlayForm component" name="UserOverlayForm - Component renders the UserOverlayForm component" time="0.068">
     </testcase>
-    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should display associated submaps if bio entity links to submap" name="BioEntityDrawer - component when there IS a matching bioEntity should display associated submaps if bio entity links to submap" time="0.004">
+    <testcase classname="UserOverlayForm - Component should submit the form with elements list when upload button is clicked" name="UserOverlayForm - Component should submit the form with elements list when upload button is clicked" time="0.137">
     </testcase>
-  </testsuite>
-  <testsuite name="onMapSingleClick - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:18" time="1.864" tests="5">
-    <testcase classname="onMapSingleClick - util when always should fire data reset handler" name="onMapSingleClick - util when always should fire data reset handler" time="0.012">
+    <testcase classname="UserOverlayForm - Component should create correct name for file which contains elements list as content" name="UserOverlayForm - Component should create correct name for file which contains elements list as content" time="0.031">
     </testcase>
-    <testcase classname="onMapSingleClick - util when searchResults are undefined does not fire search result action" name="onMapSingleClick - util when searchResults are undefined does not fire search result action" time="0.001">
+    <testcase classname="UserOverlayForm - Component should update the form inputs based on overlay content provided by elements list" name="UserOverlayForm - Component should update the form inputs based on overlay content provided by elements list" time="0.062">
     </testcase>
-    <testcase classname="onMapSingleClick - util when searchResults are empty does not fire search result action" name="onMapSingleClick - util when searchResults are empty does not fire search result action" time="0.001">
+    <testcase classname="UserOverlayForm - Component should display correct filename" name="UserOverlayForm - Component should display correct filename" time="0.087">
     </testcase>
-    <testcase classname="onMapSingleClick - util when searchResults are valid when results type is ALIAS does fire search result action handler" name="onMapSingleClick - util when searchResults are valid when results type is ALIAS does fire search result action handler" time="0.004">
+    <testcase classname="UserOverlayForm - Component should not submit when form is not filled" name="UserOverlayForm - Component should not submit when form is not filled" time="0.011">
     </testcase>
-    <testcase classname="onMapSingleClick - util when searchResults are valid when results type is REACTION does fire search result action - handle reaction" name="onMapSingleClick - util when searchResults are valid when results type is REACTION does fire search result action - handle reaction" time="0.003">
+    <testcase classname="UserOverlayForm - Component should navigate to overlays after clicking backward button" name="UserOverlayForm - Component should navigate to overlays after clicking backward button" time="0.033">
     </testcase>
   </testsuite>
-  <testsuite name="MapNavigation - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:18" time="1.979" tests="4">
-    <testcase classname="MapNavigation - component should render list of currently opened maps, main map should not have close button" name="MapNavigation - component should render list of currently opened maps, main map should not have close button" time="0.162">
+  <testsuite name="useOlMapListeners - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="2.358" tests="2">
+    <testcase classname="useOlMapListeners - util on change:center view event should run onMapPositionChange event" name="useOlMapListeners - util on change:center view event should run onMapPositionChange event" time="0.026">
+    </testcase>
+    <testcase classname="useOlMapListeners - util on singleclick view event should run onMapPositionChange event" name="useOlMapListeners - util on singleclick view event should run onMapPositionChange event" time="0.002">
+    </testcase>
+  </testsuite>
+  <testsuite name="DownloadSubmap - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:38" time="0.912" tests="5">
+    <testcase classname="DownloadSubmap - component should render download button" name="DownloadSubmap - component should render download button" time="0.036">
+    </testcase>
+    <testcase classname="DownloadSubmap - component should open list on button click" name="DownloadSubmap - component should open list on button click" time="0.011">
     </testcase>
-    <testcase classname="MapNavigation - component all maps should have close button expect main map" name="MapNavigation - component all maps should have close button expect main map" time="0.067">
+    <testcase classname="DownloadSubmap - component should close list on button click twice" name="DownloadSubmap - component should close list on button click twice" time="0.007">
     </testcase>
-    <testcase classname="MapNavigation - component should close map tab when clicking on close button while" name="MapNavigation - component should close map tab when clicking on close button while" time="0.034">
+    <testcase classname="DownloadSubmap - component should not show list when closed (default state)" name="DownloadSubmap - component should not show list when closed (default state)" time="0.003">
     </testcase>
-    <testcase classname="MapNavigation - component should close map and open main map if closed currently selected map" name="MapNavigation - component should close map and open main map if closed currently selected map" time="0.033">
+    <testcase classname="DownloadSubmap - component should render list elements with href and names when opened" name="DownloadSubmap - component should render list elements with href and names when opened" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="useInitializeStore - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:18" time="2.036" tests="5">
-    <testcase classname="useInitializeStore - hook when fired should fetch project data in store" name="useInitializeStore - hook when fired should fetch project data in store" time="0.158">
+  <testsuite name="useOlMapTileLayer - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:36" time="2.449" tests="1">
+    <testcase classname="useOlMapTileLayer - util should return valid TileLayer instance" name="useOlMapTileLayer - util should return valid TileLayer instance" time="0.017">
     </testcase>
-    <testcase classname="useInitializeStore - hook when fired should fetch backgrounds data in store" name="useInitializeStore - hook when fired should fetch backgrounds data in store" time="0.083">
+  </testsuite>
+  <testsuite name="SubmapsDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:38" time="0.752" tests="4">
+    <testcase classname="SubmapsDrawer - component should display drawer heading and list of submaps" name="SubmapsDrawer - component should display drawer heading and list of submaps" time="0.065">
     </testcase>
-    <testcase classname="useInitializeStore - hook when fired should fetch overlays data in store" name="useInitializeStore - hook when fired should fetch overlays data in store" time="0.081">
+    <testcase classname="SubmapsDrawer - component should close drawer after clicking close button" name="SubmapsDrawer - component should close drawer after clicking close button" time="0.02">
     </testcase>
-    <testcase classname="useInitializeStore - hook when fired should fetch models data in store" name="useInitializeStore - hook when fired should fetch models data in store" time="0.056">
+    <testcase classname="SubmapsDrawer - component should open submap and set it to active if it&apos;s not already opened" name="SubmapsDrawer - component should open submap and set it to active if it&apos;s not already opened" time="0.033">
     </testcase>
-    <testcase classname="useInitializeStore - hook when fired should use valid initialize value" name="useInitializeStore - hook when fired should use valid initialize value" time="0.023">
+    <testcase classname="SubmapsDrawer - component should set map active if it&apos;s already opened" name="SubmapsDrawer - component should set map active if it&apos;s already opened" time="0.013">
     </testcase>
   </testsuite>
-  <testsuite name="Modal - Component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:19" time="1.054" tests="5">
-    <testcase classname="Modal - Component when modal is hidden should modal have hidden class" name="Modal - Component when modal is hidden should modal have hidden class" time="0.033">
+  <testsuite name="getBioEntitiesFeatures - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:39" time="0.604" tests="3">
+    <testcase classname="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=bioEntity" name="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=bioEntity" time="0.023">
     </testcase>
-    <testcase classname="Modal - Component when modal is shown should modal NOT have hidden class" name="Modal - Component when modal is shown should modal NOT have hidden class" time="0.008">
+    <testcase classname="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=drugs" name="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=drugs" time="0.005">
     </testcase>
-    <testcase classname="Modal - Component when modal is shown shows modal title" name="Modal - Component when modal is shown shows modal title" time="0.004">
+    <testcase classname="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=chemicals" name="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=chemicals" time="0.003">
     </testcase>
-    <testcase classname="Modal - Component when modal is shown shows modal close button" name="Modal - Component when modal is shown shows modal close button" time="0.003">
+  </testsuite>
+  <testsuite name="getPinFeature - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:39" time="0.584" tests="3">
+    <testcase classname="getPinFeature - subUtil should return instance of Feature" name="getPinFeature - subUtil should return instance of Feature" time="0.001">
+    </testcase>
+    <testcase classname="getPinFeature - subUtil should return id as name" name="getPinFeature - subUtil should return id as name" time="0">
     </testcase>
-    <testcase classname="Modal - Component when modal is shown closes modal on close button click" name="Modal - Component when modal is shown closes modal on close button click" time="0.037">
+    <testcase classname="getPinFeature - subUtil should return point parsed with point to projection" name="getPinFeature - subUtil should return point parsed with point to projection" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="onMapRightClick - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.41" tests="5">
-    <testcase classname="onMapRightClick - util when always should fire data reset handler" name="onMapRightClick - util when always should fire data reset handler" time="0.011">
+  <testsuite name="Legend - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:39" time="0.486" tests="4">
+    <testcase classname="Legend - component when is closed should render the component without translation" name="Legend - component when is closed should render the component without translation" time="0.102">
     </testcase>
-    <testcase classname="onMapRightClick - util when always should fire open context menu handler" name="onMapRightClick - util when always should fire open context menu handler" time="0">
+    <testcase classname="Legend - component when is open should render the component with translation" name="Legend - component when is open should render the component with translation" time="0.009">
+    </testcase>
+    <testcase classname="Legend - component when is open should render legend header" name="Legend - component when is open should render legend header" time="0.01">
+    </testcase>
+    <testcase classname="Legend - component when is open should render legend images" name="Legend - component when is open should render legend images" time="0.006">
     </testcase>
-    <testcase classname="onMapRightClick - util when searchResults are undefined does not fire search result action" name="onMapRightClick - util when searchResults are undefined does not fire search result action" time="0.001">
+  </testsuite>
+  <testsuite name="ExportDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:38" time="1.146" tests="4">
+    <testcase classname="ExportDrawer - component should display drawer heading and tab names" name="ExportDrawer - component should display drawer heading and tab names" time="0.128">
+    </testcase>
+    <testcase classname="ExportDrawer - component should close drawer after clicking close button" name="ExportDrawer - component should close drawer after clicking close button" time="0.041">
     </testcase>
-    <testcase classname="onMapRightClick - util when searchResults are valid when results type is ALIAS does fire search result for right click action handler" name="onMapRightClick - util when searchResults are valid when results type is ALIAS does fire search result for right click action handler" time="0.002">
+    <testcase classname="ExportDrawer - component should set elements as initial tab" name="ExportDrawer - component should set elements as initial tab" time="0.033">
     </testcase>
-    <testcase classname="onMapRightClick - util when searchResults are valid when results type is REACTION does fire search result for right click action - handle reaction" name="onMapRightClick - util when searchResults are valid when results type is REACTION does fire search result for right click action - handle reaction" time="0.006">
+    <testcase classname="ExportDrawer - component should set correct tab on tab change" name="ExportDrawer - component should set correct tab on tab change" time="0.03">
     </testcase>
   </testsuite>
-  <testsuite name="undefined" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.431" tests="3">
-    <testcase classname=" renders LoginModal component" name=" renders LoginModal component" time="0.023">
+  <testsuite name="useOlMap - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:37" time="2.239" tests="2">
+    <testcase classname="useOlMap - util when initializing should set map instance" name="useOlMap - util when initializing should set map instance" time="0.07">
     </testcase>
-    <testcase classname=" handles input change correctly" name=" handles input change correctly" time="0.008">
+    <testcase classname="useOlMap - util when initializing should render content inside the target element" name="useOlMap - util when initializing should render content inside the target element" time="0.015">
+    </testcase>
+  </testsuite>
+  <testsuite name="useOlMapLayers - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:38" time="1.244" tests="4">
+    <testcase classname="useOlMapLayers - util should modify layers of the map instance on init" name="useOlMapLayers - util should modify layers of the map instance on init" time="0.047">
     </testcase>
-    <testcase classname=" submits form" name=" submits form" time="0.057">
+    <testcase classname="useOlMapLayers - util should return valid TileLayer instance [1]" name="useOlMapLayers - util should return valid TileLayer instance [1]" time="0.026">
+    </testcase>
+    <testcase classname="useOlMapLayers - util should return valid VectorLayer instance [2]" name="useOlMapLayers - util should return valid VectorLayer instance [2]" time="0.018">
+    </testcase>
+    <testcase classname="useOlMapLayers - util should return valid VectorLayer instance [3]" name="useOlMapLayers - util should return valid VectorLayer instance [3]" time="0.008">
     </testcase>
   </testsuite>
-  <testsuite name="TopBar - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.553" tests="3">
-    <testcase classname="TopBar - component Should contain user avatar, search bar" name="TopBar - component Should contain user avatar, search bar" time="0.021">
+  <testsuite name="MapViewer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:38" time="1.057" tests="2">
+    <testcase classname="MapViewer - component should render component container" name="MapViewer - component should render component container" time="0.057">
     </testcase>
-    <testcase classname="TopBar - component should open submaps drawer on submaps button click" name="TopBar - component should open submaps drawer on submaps button click" time="0.094">
+    <testcase classname="MapViewer - component should render openlayers map inside the component" name="MapViewer - component should render openlayers map inside the component" time="0.015">
     </testcase>
-    <testcase classname="TopBar - component should open overlays drawer on overlays button click" name="TopBar - component should open overlays drawer on overlays button click" time="0.047">
+  </testsuite>
+  <testsuite name="getLineFeature" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:41" time="0.37" tests="2">
+    <testcase classname="getLineFeature should return valid Feature object" name="getLineFeature should return valid Feature object" time="0.003">
+    </testcase>
+    <testcase classname="getLineFeature should return valid Feature object with LineString geometry" name="getLineFeature should return valid Feature object with LineString geometry" time="0.003">
     </testcase>
   </testsuite>
-  <testsuite name="ResultsList - component " errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.425" tests="2">
-    <testcase classname="ResultsList - component  should render results and navigation panel" name="ResultsList - component  should render results and navigation panel" time="0.056">
+  <testsuite name="Drawer - component" errors="0" failures="0" skipped="1" timestamp="2024-01-12T14:39:38" time="1.584" tests="7">
+    <testcase classname="Drawer - component should render Drawer" name="Drawer - component should render Drawer" time="0.034">
+    </testcase>
+    <testcase classname="Drawer - component should not display drawer when its not open" name="Drawer - component should not display drawer when its not open" time="0.009">
+    </testcase>
+    <testcase classname="Drawer - component search drawer  should open drawer and display search drawer content" name="Drawer - component search drawer  should open drawer and display search drawer content" time="0.026">
     </testcase>
-    <testcase classname="ResultsList - component  should navigate to grouped search results after backward button click" name="ResultsList - component  should navigate to grouped search results after backward button click" time="0.037">
+    <testcase classname="Drawer - component search drawer  should close drawer after pressing close button" name="Drawer - component search drawer  should close drawer after pressing close button" time="0.053">
+    </testcase>
+    <testcase classname="Drawer - component submap drawer should open drawer and display submaps" name="Drawer - component submap drawer should open drawer and display submaps" time="0.004">
+    </testcase>
+    <testcase classname="Drawer - component reaction drawer should open drawer and display reaction" name="Drawer - component reaction drawer should open drawer and display reaction" time="0.069">
+    </testcase>
+    <testcase classname="Drawer - component bioEntity drawer should open drawer and display bioEntity" name="Drawer - component bioEntity drawer should open drawer and display bioEntity" time="0">
+      <skipped/>
     </testcase>
   </testsuite>
-  <testsuite name="handleReactionResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.337" tests="4">
-    <testcase classname="handleReactionResults - util should run getReactionsByIds as first action" name="handleReactionResults - util should run getReactionsByIds as first action" time="0.011">
+  <testsuite name="Modal - Component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:41" time="0.456" tests="5">
+    <testcase classname="Modal - Component when modal is hidden should modal have hidden class" name="Modal - Component when modal is hidden should modal have hidden class" time="0.032">
     </testcase>
-    <testcase classname="handleReactionResults - util should run openReactionDrawerById to empty array as second action" name="handleReactionResults - util should run openReactionDrawerById to empty array as second action" time="0.001">
+    <testcase classname="Modal - Component when modal is shown should modal NOT have hidden class" name="Modal - Component when modal is shown should modal NOT have hidden class" time="0.008">
     </testcase>
-    <testcase classname="handleReactionResults - util should run setBioEntityContent to empty array as third action" name="handleReactionResults - util should run setBioEntityContent to empty array as third action" time="0">
+    <testcase classname="Modal - Component when modal is shown shows modal title" name="Modal - Component when modal is shown shows modal title" time="0.004">
     </testcase>
-    <testcase classname="handleReactionResults - util should run getBioEntity as fourth action" name="handleReactionResults - util should run getBioEntity as fourth action" time="0">
+    <testcase classname="Modal - Component when modal is shown shows modal close button" name="Modal - Component when modal is shown shows modal close button" time="0.003">
+    </testcase>
+    <testcase classname="Modal - Component when modal is shown closes modal on close button click" name="Modal - Component when modal is shown closes modal on close button click" time="0.026">
     </testcase>
   </testsuite>
-  <testsuite name="BioEntitiesPinsList - component " errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.396" tests="1">
-    <testcase classname="BioEntitiesPinsList - component  should display list of bio entites elements" name="BioEntitiesPinsList - component  should display list of bio entites elements" time="0.053">
+  <testsuite name="BioEntityDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:41" time="0.386" tests="6">
+    <testcase classname="BioEntityDrawer - component when there&apos;s NO matching bioEntity should not show drawer content" name="BioEntityDrawer - component when there&apos;s NO matching bioEntity should not show drawer content" time="0.013">
+    </testcase>
+    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should show drawer header" name="BioEntityDrawer - component when there IS a matching bioEntity should show drawer header" time="0.025">
+    </testcase>
+    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should show drawer bioEntity full name" name="BioEntityDrawer - component when there IS a matching bioEntity should show drawer bioEntity full name" time="0.004">
+    </testcase>
+    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should not show drawer bioEntity full name if it doesn&apos;t exists" name="BioEntityDrawer - component when there IS a matching bioEntity should not show drawer bioEntity full name if it doesn&apos;t exists" time="0.004">
+    </testcase>
+    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should show list of annotations " name="BioEntityDrawer - component when there IS a matching bioEntity should show list of annotations " time="0.015">
+    </testcase>
+    <testcase classname="BioEntityDrawer - component when there IS a matching bioEntity should display associated submaps if bio entity links to submap" name="BioEntityDrawer - component when there IS a matching bioEntity should display associated submaps if bio entity links to submap" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="SearchBar - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.397" tests="5">
-    <testcase classname="SearchBar - component should let user type text" name="SearchBar - component should let user type text" time="0.02">
+  <testsuite name="AccordionsDetails - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:42" time="0.481" tests="5">
+    <testcase classname="AccordionsDetails - component should display name of drug" name="AccordionsDetails - component should display name of drug" time="0.035">
     </testcase>
-    <testcase classname="SearchBar - component should disable button when the user clicks the lens button" name="SearchBar - component should disable button when the user clicks the lens button" time="0.058">
+    <testcase classname="AccordionsDetails - component should display description of drug" name="AccordionsDetails - component should display description of drug" time="0.009">
     </testcase>
-    <testcase classname="SearchBar - component should disable input when the user clicks the Enter" name="SearchBar - component should disable input when the user clicks the Enter" time="0.017">
+    <testcase classname="AccordionsDetails - component should display synonyms of drug" name="AccordionsDetails - component should display synonyms of drug" time="0.005">
     </testcase>
-    <testcase classname="SearchBar - component should set initial search value to match searchValue query param" name="SearchBar - component should set initial search value to match searchValue query param" time="0.003">
+    <testcase classname="AccordionsDetails - component should display blood brain barrier for drug" name="AccordionsDetails - component should display blood brain barrier for drug" time="0.014">
     </testcase>
-    <testcase classname="SearchBar - component should change selected search element when user search another" name="SearchBar - component should change selected search element when user search another" time="0.018">
+    <testcase classname="AccordionsDetails - component should display direct evidence publications for chemicals" name="AccordionsDetails - component should display direct evidence publications for chemicals" time="0.007">
     </testcase>
   </testsuite>
-  <testsuite name="SearchDrawerWrapper - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:20" time="0.685" tests="3">
-    <testcase classname="SearchDrawerWrapper - component should display the first step for search" name="SearchDrawerWrapper - component should display the first step for search" time="0.027">
+  <testsuite name="getBioEntitySingleFeature - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:42" time="0.519" tests="6">
+    <testcase classname="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=bioEntity" name="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=bioEntity" time="0.006">
+    </testcase>
+    <testcase classname="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=drugs" name="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=drugs" time="0.001">
+    </testcase>
+    <testcase classname="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=chemicals" name="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=chemicals" time="0.001">
+    </testcase>
+    <testcase classname="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=bioEntity" name="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=bioEntity" time="0.001">
     </testcase>
-    <testcase classname="SearchDrawerWrapper - component should display the second step for value type bioEntity" name="SearchDrawerWrapper - component should display the second step for value type bioEntity" time="0.015">
+    <testcase classname="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=drugs" name="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=drugs" time="0.001">
     </testcase>
-    <testcase classname="SearchDrawerWrapper - component should display the second step for value type drugs" name="SearchDrawerWrapper - component should display the second step for value type drugs" time="0.01">
+    <testcase classname="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=chemicals" name="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=chemicals" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="Drawer - component" errors="0" failures="0" skipped="1" timestamp="2024-01-03T15:35:18" time="2.682" tests="7">
-    <testcase classname="Drawer - component should render Drawer" name="Drawer - component should render Drawer" time="0.03">
+  <testsuite name="undefined" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:42" time="0.502" tests="3">
+    <testcase classname=" renders LoginModal component" name=" renders LoginModal component" time="0.021">
     </testcase>
-    <testcase classname="Drawer - component should not display drawer when its not open" name="Drawer - component should not display drawer when its not open" time="0.006">
+    <testcase classname=" handles input change correctly" name=" handles input change correctly" time="0.013">
     </testcase>
-    <testcase classname="Drawer - component search drawer  should open drawer and display search drawer content" name="Drawer - component search drawer  should open drawer and display search drawer content" time="0.029">
+    <testcase classname=" submits form" name=" submits form" time="0.064">
     </testcase>
-    <testcase classname="Drawer - component search drawer  should close drawer after pressing close button" name="Drawer - component search drawer  should close drawer after pressing close button" time="0.03">
+  </testsuite>
+  <testsuite name="AssociatedSubmap - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:42" time="0.496" tests="4">
+    <testcase classname="AssociatedSubmap - component should not display component when can not find asociated map model" name="AssociatedSubmap - component should not display component when can not find asociated map model" time="0.016">
     </testcase>
-    <testcase classname="Drawer - component submap drawer should open drawer and display submaps" name="Drawer - component submap drawer should open drawer and display submaps" time="0.003">
+    <testcase classname="AssociatedSubmap - component should render component when associated map model is found" name="AssociatedSubmap - component should render component when associated map model is found" time="0.017">
     </testcase>
-    <testcase classname="Drawer - component reaction drawer should open drawer and display reaction" name="Drawer - component reaction drawer should open drawer and display reaction" time="0.079">
+    <testcase classname="AssociatedSubmap - component when map is already opened should open submap and set it to active on open submap button click" name="AssociatedSubmap - component when map is already opened should open submap and set it to active on open submap button click" time="0.038">
     </testcase>
-    <testcase classname="Drawer - component bioEntity drawer should open drawer and display bioEntity" name="Drawer - component bioEntity drawer should open drawer and display bioEntity" time="0">
-      <skipped/>
+    <testcase classname="AssociatedSubmap - component when map is already opened should set map active on open submap button click" name="AssociatedSubmap - component when map is already opened should set map active on open submap button click" time="0.012">
     </testcase>
   </testsuite>
-  <testsuite name="CookieBanner component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.357" tests="3">
-    <testcase classname="CookieBanner component renders cookie banner correctly first time" name="CookieBanner component renders cookie banner correctly first time" time="0.017">
+  <testsuite name="useGetSubmapDownloadUrl - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:42" time="0.409" tests="5">
+    <testcase classname="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" name="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" time="0.01">
+    </testcase>
+    <testcase classname="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" name="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" time="0.002">
     </testcase>
-    <testcase classname="CookieBanner component hides the banner after accepting cookies" name="CookieBanner component hides the banner after accepting cookies" time="0.005">
+    <testcase classname="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" name="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" time="0.001">
     </testcase>
-    <testcase classname="CookieBanner component does not render the cookies banner when cookies are accepted" name="CookieBanner component does not render the cookies banner when cookies are accepted" time="0.005">
+    <testcase classname="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" name="useGetSubmapDownloadUrl - hook when not all params valid should return empty string" time="0.009">
+    </testcase>
+    <testcase classname="useGetSubmapDownloadUrl - hook when all params valid should return valid string" name="useGetSubmapDownloadUrl - hook when all params valid should return valid string" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="PerfectMatchSwitch - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.385" tests="4">
-    <testcase classname="PerfectMatchSwitch - component should initialy be set to false when perfectMatch is not in query or set to false" name="PerfectMatchSwitch - component should initialy be set to false when perfectMatch is not in query or set to false" time="0.026">
+  <testsuite name="BioEntitiesSubmapItem - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:42" time="0.542" tests="4">
+    <testcase classname="BioEntitiesSubmapItem - component should display map name, number of elements, icon" name="BioEntitiesSubmapItem - component should display map name, number of elements, icon" time="0.016">
+    </testcase>
+    <testcase classname="BioEntitiesSubmapItem - component should navigate user to bio enitites results list after clicking button" name="BioEntitiesSubmapItem - component should navigate user to bio enitites results list after clicking button" time="0.081">
     </testcase>
-    <testcase classname="PerfectMatchSwitch - component should initialy be set to true when perfectMatch query is set to true" name="PerfectMatchSwitch - component should initialy be set to true when perfectMatch query is set to true" time="0.008">
+    <testcase classname="BioEntitiesSubmapItem - component should open submap and set it to active if it&apos;s not already opened" name="BioEntitiesSubmapItem - component should open submap and set it to active if it&apos;s not already opened" time="0.017">
     </testcase>
-    <testcase classname="PerfectMatchSwitch - component should set checkbox to true and update store" name="PerfectMatchSwitch - component should set checkbox to true and update store" time="0.015">
+    <testcase classname="BioEntitiesSubmapItem - component should set map active if it&apos;s already opened" name="BioEntitiesSubmapItem - component should set map active if it&apos;s already opened" time="0.028">
+    </testcase>
+  </testsuite>
+  <testsuite name="useOlMapView - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:42" time="0.618" tests="2">
+    <testcase classname="useOlMapView - util should modify view of the map instance on INITIAL position config change" name="useOlMapView - util should modify view of the map instance on INITIAL position config change" time="0.048">
     </testcase>
-    <testcase classname="PerfectMatchSwitch - component should set checkbox to false and update store" name="PerfectMatchSwitch - component should set checkbox to false and update store" time="0.006">
+    <testcase classname="useOlMapView - util should return valid View instance" name="useOlMapView - util should return valid View instance" time="0.019">
     </testcase>
   </testsuite>
-  <testsuite name="handleAliasResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.372" tests="2">
-    <testcase classname="handleAliasResults - util should run openBioEntityDrawerById as first action" name="handleAliasResults - util should run openBioEntityDrawerById as first action" time="0.019">
+  <testsuite name="IncludedCompartmentPathways - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.545" tests="4">
+    <testcase classname="IncludedCompartmentPathways - component should display compartment / pathways checkboxes when fetching data is successful" name="IncludedCompartmentPathways - component should display compartment / pathways checkboxes when fetching data is successful" time="0.082">
     </testcase>
-    <testcase classname="handleAliasResults - util should run getMultiBioEntity as second action" name="handleAliasResults - util should run getMultiBioEntity as second action" time="0.003">
+    <testcase classname="IncludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetching data fails" name="IncludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetching data fails" time="0.004">
+    </testcase>
+    <testcase classname="IncludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetched data is empty" name="IncludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetched data is empty" time="0.005">
+    </testcase>
+    <testcase classname="IncludedCompartmentPathways - component should display loading message when fetching data is pending" name="IncludedCompartmentPathways - component should display loading message when fetching data is pending" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="OverlayListItem - component" errors="0" failures="0" skipped="1" timestamp="2024-01-03T15:35:21" time="0.43" tests="3">
+  <testsuite name="OverlayListItem - component" errors="0" failures="0" skipped="1" timestamp="2024-01-12T14:39:43" time="0.587" tests="4">
     <testcase classname="OverlayListItem - component should render component with correct properties" name="OverlayListItem - component should render component with correct properties" time="0.089">
     </testcase>
-    <testcase classname="OverlayListItem - component should trigger view overlays on view button click and switch background to Empty if available" name="OverlayListItem - component should trigger view overlays on view button click and switch background to Empty if available" time="0.044">
+    <testcase classname="OverlayListItem - component view overlays should trigger view overlays on view button click and switch background to Empty if available" name="OverlayListItem - component view overlays should trigger view overlays on view button click and switch background to Empty if available" time="0.019">
+    </testcase>
+    <testcase classname="OverlayListItem - component view overlays should disable overlay on view button click if overlay is active" name="OverlayListItem - component view overlays should disable overlay on view button click if overlay is active" time="0.038">
     </testcase>
     <testcase classname="OverlayListItem - component should trigger download overlay to PC on download button click" name="OverlayListItem - component should trigger download overlay to PC on download button click" time="0">
       <skipped/>
     </testcase>
   </testsuite>
-  <testsuite name="BioEntitiesPinsListItem - component " errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.367" tests="6">
-    <testcase classname="BioEntitiesPinsListItem - component  should display name of bio entity element" name="BioEntitiesPinsListItem - component  should display name of bio entity element" time="0.018">
+  <testsuite name="PinsList - component " errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.638" tests="5">
+    <testcase classname="PinsList - component  should display list of drug targets" name="PinsList - component  should display list of drug targets" time="0.041">
     </testcase>
-    <testcase classname="BioEntitiesPinsListItem - component  should display symbol of bio entity element" name="BioEntitiesPinsListItem - component  should display symbol of bio entity element" time="0.004">
+    <testcase classname="PinsList - component  should display drug details when drug is searched" name="PinsList - component  should display drug details when drug is searched" time="0.012">
     </testcase>
-    <testcase classname="BioEntitiesPinsListItem - component  should display empty string when symbol does not exist" name="BioEntitiesPinsListItem - component  should display empty string when symbol does not exist" time="0.003">
+    <testcase classname="PinsList - component  should display list of chemicals targets" name="PinsList - component  should display list of chemicals targets" time="0.009">
     </testcase>
-    <testcase classname="BioEntitiesPinsListItem - component  should display string type of bio entity element" name="BioEntitiesPinsListItem - component  should display string type of bio entity element" time="0.003">
+    <testcase classname="PinsList - component  should display chemicals details when chemical is searched" name="PinsList - component  should display chemicals details when chemical is searched" time="0.012">
     </testcase>
-    <testcase classname="BioEntitiesPinsListItem - component  should display synonyms of bio entity element" name="BioEntitiesPinsListItem - component  should display synonyms of bio entity element" time="0.009">
+    <testcase classname="PinsList - component  should not display list of bio enities when bioEntity is searched" name="PinsList - component  should not display list of bio enities when bioEntity is searched" time="0.001">
     </testcase>
-    <testcase classname="BioEntitiesPinsListItem - component  should display list of references for pin" name="BioEntitiesPinsListItem - component  should display list of references for pin" time="0.005">
+  </testsuite>
+  <testsuite name="SearchBar - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.606" tests="5">
+    <testcase classname="SearchBar - component should let user type text" name="SearchBar - component should let user type text" time="0.06">
+    </testcase>
+    <testcase classname="SearchBar - component should disable button when the user clicks the lens button" name="SearchBar - component should disable button when the user clicks the lens button" time="0.054">
+    </testcase>
+    <testcase classname="SearchBar - component should disable input when the user clicks the Enter" name="SearchBar - component should disable input when the user clicks the Enter" time="0.014">
+    </testcase>
+    <testcase classname="SearchBar - component should set initial search value to match searchValue query param" name="SearchBar - component should set initial search value to match searchValue query param" time="0.003">
+    </testcase>
+    <testcase classname="SearchBar - component should change selected search element when user search another" name="SearchBar - component should change selected search element when user search another" time="0.033">
     </testcase>
   </testsuite>
-  <testsuite name="BioEntitiesAccordion - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.436" tests="2">
-    <testcase classname="BioEntitiesAccordion - component should display loading indicator when bioEntity search is pending" name="BioEntitiesAccordion - component should display loading indicator when bioEntity search is pending" time="0.044">
+  <testsuite name="PinsListItem - component " errors="0" failures="0" skipped="1" timestamp="2024-01-12T14:39:43" time="0.562" tests="6">
+    <testcase classname="PinsListItem - component  should display full name of pin" name="PinsListItem - component  should display full name of pin" time="0.04">
     </testcase>
-    <testcase classname="BioEntitiesAccordion - component should render list of maps with number of entities after succeeded bio entity search" name="BioEntitiesAccordion - component should render list of maps with number of entities after succeeded bio entity search" time="0.009">
+    <testcase classname="PinsListItem - component  should display list of elements for pin for drugs" name="PinsListItem - component  should display list of elements for pin for drugs" time="0.006">
+    </testcase>
+    <testcase classname="PinsListItem - component  should display list of references for pin" name="PinsListItem - component  should display list of references for pin" time="0.004">
+    </testcase>
+    <testcase classname="PinsListItem - component  should display list of elements for pin for chemicals" name="PinsListItem - component  should display list of elements for pin for chemicals" time="0.004">
+    </testcase>
+    <testcase classname="PinsListItem - component  should not display list of elements for pin for bioentities" name="PinsListItem - component  should not display list of elements for pin for bioentities" time="0">
+      <skipped/>
+    </testcase>
+    <testcase classname="PinsListItem - component  should not display list of available submaps for pin when there aren&apos;t any submaps" name="PinsListItem - component  should not display list of available submaps for pin when there aren&apos;t any submaps" time="0.003">
     </testcase>
   </testsuite>
-  <testsuite name="SubmapsDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.447" tests="4">
-    <testcase classname="SubmapsDrawer - component should display drawer heading and list of submaps" name="SubmapsDrawer - component should display drawer heading and list of submaps" time="0.021">
+  <testsuite name="DrugsAccordion - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.633" tests="5">
+    <testcase classname="DrugsAccordion - component should display drugs number after succesfull chemicals search" name="DrugsAccordion - component should display drugs number after succesfull chemicals search" time="0.019">
     </testcase>
-    <testcase classname="SubmapsDrawer - component should close drawer after clicking close button" name="SubmapsDrawer - component should close drawer after clicking close button" time="0.018">
+    <testcase classname="DrugsAccordion - component should display loading indicator while waiting for chemicals search response" name="DrugsAccordion - component should display loading indicator while waiting for chemicals search response" time="0.009">
     </testcase>
-    <testcase classname="SubmapsDrawer - component should open submap and set it to active if it&apos;s not already opened" name="SubmapsDrawer - component should open submap and set it to active if it&apos;s not already opened" time="0.061">
+    <testcase classname="DrugsAccordion - component should navigate user to chemical results list after clicking button" name="DrugsAccordion - component should navigate user to chemical results list after clicking button" time="0.004">
     </testcase>
-    <testcase classname="SubmapsDrawer - component should set map active if it&apos;s already opened" name="SubmapsDrawer - component should set map active if it&apos;s already opened" time="0.011">
+    <testcase classname="DrugsAccordion - component should disable navigation button when there is no chemicals" name="DrugsAccordion - component should disable navigation button when there is no chemicals" time="0.004">
+    </testcase>
+    <testcase classname="DrugsAccordion - component should disable navigation button when waiting for api response" name="DrugsAccordion - component should disable navigation button when waiting for api response" time="0.003">
     </testcase>
   </testsuite>
-  <testsuite name="BackgroundSelector - component" errors="0" failures="0" skipped="1" timestamp="2024-01-03T15:35:21" time="0.4" tests="6">
-    <testcase classname="BackgroundSelector - component should initialy display default value" name="BackgroundSelector - component should initialy display default value" time="0.017">
+  <testsuite name="Annotations - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.594" tests="4">
+    <testcase classname="Annotations - component should display annotations checkboxes when fetching data is successful" name="Annotations - component should display annotations checkboxes when fetching data is successful" time="0.091">
     </testcase>
-    <testcase classname="BackgroundSelector - component should display selected value name when it&apos;s not main background" name="BackgroundSelector - component should display selected value name when it&apos;s not main background" time="0.018">
+    <testcase classname="Annotations - component should not display annotations checkboxes when fetching data fails" name="Annotations - component should not display annotations checkboxes when fetching data fails" time="0.008">
     </testcase>
-    <testcase classname="BackgroundSelector - component should change redux map state on selecting background" name="BackgroundSelector - component should change redux map state on selecting background" time="0.02">
+    <testcase classname="Annotations - component should not display annotations checkboxes when fetched data is empty object" name="Annotations - component should not display annotations checkboxes when fetched data is empty object" time="0.009">
     </testcase>
-    <testcase classname="BackgroundSelector - component query params should display default value when main background id is in query params" name="BackgroundSelector - component query params should display default value when main background id is in query params" time="0.009">
+    <testcase classname="Annotations - component should display loading message when fetching data is pending" name="Annotations - component should display loading message when fetching data is pending" time="0.013">
     </testcase>
-    <testcase classname="BackgroundSelector - component query params should display correct background when background id is in query params" name="BackgroundSelector - component query params should display correct background when background id is in query params" time="0.003">
+  </testsuite>
+  <testsuite name="Annotations - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.586" tests="4">
+    <testcase classname="Annotations - component should display annotations checkboxes when fetching data is successful" name="Annotations - component should display annotations checkboxes when fetching data is successful" time="0.058">
     </testcase>
-    <testcase classname="BackgroundSelector - component query params should set backgroundid in query on selecting background" name="BackgroundSelector - component query params should set backgroundid in query on selecting background" time="0">
-      <skipped/>
+    <testcase classname="Annotations - component should not display annotations checkboxes when fetching data fails" name="Annotations - component should not display annotations checkboxes when fetching data fails" time="0.005">
+    </testcase>
+    <testcase classname="Annotations - component should not display annotations checkboxes when fetched data is empty object" name="Annotations - component should not display annotations checkboxes when fetched data is empty object" time="0.004">
+    </testcase>
+    <testcase classname="Annotations - component should display loading message when fetching data is pending" name="Annotations - component should display loading message when fetching data is pending" time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="AccordionsDetails - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.452" tests="5">
-    <testcase classname="AccordionsDetails - component should display name of drug" name="AccordionsDetails - component should display name of drug" time="0.046">
+  <testsuite name="SearchDrawerWrapper - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.617" tests="3">
+    <testcase classname="SearchDrawerWrapper - component should display the first step for search" name="SearchDrawerWrapper - component should display the first step for search" time="0.028">
     </testcase>
-    <testcase classname="AccordionsDetails - component should display description of drug" name="AccordionsDetails - component should display description of drug" time="0.009">
+    <testcase classname="SearchDrawerWrapper - component should display the second step for value type bioEntity" name="SearchDrawerWrapper - component should display the second step for value type bioEntity" time="0.018">
+    </testcase>
+    <testcase classname="SearchDrawerWrapper - component should display the second step for value type drugs" name="SearchDrawerWrapper - component should display the second step for value type drugs" time="0.018">
+    </testcase>
+  </testsuite>
+  <testsuite name="chemicals reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.305" tests="4">
+    <testcase classname="chemicals reducer should match initial state" name="chemicals reducer should match initial state" time="0.003">
     </testcase>
-    <testcase classname="AccordionsDetails - component should display synonyms of drug" name="AccordionsDetails - component should display synonyms of drug" time="0.011">
+    <testcase classname="chemicals reducer should update store after succesfull getChemicals query" name="chemicals reducer should update store after succesfull getChemicals query" time="0.027">
     </testcase>
-    <testcase classname="AccordionsDetails - component should display blood brain barrier for drug" name="AccordionsDetails - component should display blood brain barrier for drug" time="0.007">
+    <testcase classname="chemicals reducer should update store after failed getChemicals query" name="chemicals reducer should update store after failed getChemicals query" time="0.071">
     </testcase>
-    <testcase classname="AccordionsDetails - component should display direct evidence publications for chemicals" name="AccordionsDetails - component should display direct evidence publications for chemicals" time="0.008">
+    <testcase classname="chemicals reducer should update store on loading getChemicals query" name="chemicals reducer should update store on loading getChemicals query" time="0.017">
     </testcase>
   </testsuite>
-  <testsuite name="PinsList - component " errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.464" tests="5">
-    <testcase classname="PinsList - component  should display list of drug targets" name="PinsList - component  should display list of drug targets" time="0.057">
+  <testsuite name="CollapsibleSection - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.325" tests="2">
+    <testcase classname="CollapsibleSection - component should render with title and content" name="CollapsibleSection - component should render with title and content" time="0.023">
     </testcase>
-    <testcase classname="PinsList - component  should display drug details when drug is searched" name="PinsList - component  should display drug details when drug is searched" time="0.009">
+    <testcase classname="CollapsibleSection - component should collapse and expands on button click" name="CollapsibleSection - component should collapse and expands on button click" time="0.042">
     </testcase>
-    <testcase classname="PinsList - component  should display list of chemicals targets" name="PinsList - component  should display list of chemicals targets" time="0.066">
+  </testsuite>
+  <testsuite name="usePointToProjection - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.33" tests="3">
+    <testcase classname="usePointToProjection - util when mapSize arg is undefined in redux should return fallback value on function call" name="usePointToProjection - util when mapSize arg is undefined in redux should return fallback value on function call" time="0.03">
     </testcase>
-    <testcase classname="PinsList - component  should display chemicals details when chemical is searched" name="PinsList - component  should display chemicals details when chemical is searched" time="0.02">
+    <testcase classname="usePointToProjection - util when mapSize arg is invalid in redux should return fallback value on function call" name="usePointToProjection - util when mapSize arg is invalid in redux should return fallback value on function call" time="0.004">
     </testcase>
-    <testcase classname="PinsList - component  should not display list of bio enities when bioEntity is searched" name="PinsList - component  should not display list of bio enities when bioEntity is searched" time="0.002">
+    <testcase classname="usePointToProjection - util when all args are valid in redux should return valid lat lng value on function call" name="usePointToProjection - util when all args are valid in redux should return valid lat lng value on function call" time="0.003">
     </testcase>
   </testsuite>
-  <testsuite name="useReduxBusQueryManager - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.367" tests="3">
-    <testcase classname="useReduxBusQueryManager - util on init when data is NOT loaded should not update query" name="useReduxBusQueryManager - util on init when data is NOT loaded should not update query" time="0.032">
+  <testsuite name="onMapRightClick - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.38" tests="5">
+    <testcase classname="onMapRightClick - util when always should fire data reset handler" name="onMapRightClick - util when always should fire data reset handler" time="0.02">
+    </testcase>
+    <testcase classname="onMapRightClick - util when always should fire open context menu handler" name="onMapRightClick - util when always should fire open context menu handler" time="0">
+    </testcase>
+    <testcase classname="onMapRightClick - util when searchResults are undefined does not fire search result action" name="onMapRightClick - util when searchResults are undefined does not fire search result action" time="0.002">
     </testcase>
-    <testcase classname="useReduxBusQueryManager - util on init when data is loaded should update query" name="useReduxBusQueryManager - util on init when data is loaded should update query" time="0.011">
+    <testcase classname="onMapRightClick - util when searchResults are valid when results type is ALIAS does fire search result for right click action handler" name="onMapRightClick - util when searchResults are valid when results type is ALIAS does fire search result for right click action handler" time="0.006">
     </testcase>
-    <testcase classname="useReduxBusQueryManager - util on init when data is loaded should update query params to valid ones" name="useReduxBusQueryManager - util on init when data is loaded should update query params to valid ones" time="0.011">
+    <testcase classname="onMapRightClick - util when searchResults are valid when results type is REACTION does fire search result for right click action - handle reaction" name="onMapRightClick - util when searchResults are valid when results type is REACTION does fire search result for right click action - handle reaction" time="0.003">
     </testcase>
   </testsuite>
-  <testsuite name="DrugsAccordion - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.386" tests="5">
-    <testcase classname="DrugsAccordion - component should display drugs number after succesfull chemicals search" name="DrugsAccordion - component should display drugs number after succesfull chemicals search" time="0.017">
+  <testsuite name="DrawerHeadingBackwardButton - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.425" tests="3">
+    <testcase classname="DrawerHeadingBackwardButton - component should render passed values" name="DrawerHeadingBackwardButton - component should render passed values" time="0.043">
     </testcase>
-    <testcase classname="DrugsAccordion - component should display loading indicator while waiting for chemicals search response" name="DrugsAccordion - component should display loading indicator while waiting for chemicals search response" time="0.007">
+    <testcase classname="DrawerHeadingBackwardButton - component should call backward function on back button click" name="DrawerHeadingBackwardButton - component should call backward function on back button click" time="0.007">
     </testcase>
-    <testcase classname="DrugsAccordion - component should navigate user to chemical results list after clicking button" name="DrugsAccordion - component should navigate user to chemical results list after clicking button" time="0.003">
+    <testcase classname="DrawerHeadingBackwardButton - component should call class drawer on close button click" name="DrawerHeadingBackwardButton - component should call class drawer on close button click" time="0.013">
     </testcase>
-    <testcase classname="DrugsAccordion - component should disable navigation button when there is no chemicals" name="DrugsAccordion - component should disable navigation button when there is no chemicals" time="0.024">
+  </testsuite>
+  <testsuite name="handleAliasResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.453" tests="2">
+    <testcase classname="handleAliasResults - util should run openBioEntityDrawerById as first action" name="handleAliasResults - util should run openBioEntityDrawerById as first action" time="0.01">
     </testcase>
-    <testcase classname="DrugsAccordion - component should disable navigation button when waiting for api response" name="DrugsAccordion - component should disable navigation button when waiting for api response" time="0.009">
+    <testcase classname="handleAliasResults - util should run getMultiBioEntity as second action" name="handleAliasResults - util should run getMultiBioEntity as second action" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="handleBioEntityResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.425" tests="2">
-    <testcase classname="handleBioEntityResults - util should run setCurrentSelectedBioEntityId as first action" name="handleBioEntityResults - util should run setCurrentSelectedBioEntityId as first action" time="0.005">
+  <testsuite name="ReactionDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:43" time="0.407" tests="6">
+    <testcase classname="ReactionDrawer - component when there&apos;s NO matching reaction should not show drawer content" name="ReactionDrawer - component when there&apos;s NO matching reaction should not show drawer content" time="0.015">
     </testcase>
-    <testcase classname="handleBioEntityResults - util should run getMultiBioEntity as second action" name="handleBioEntityResults - util should run getMultiBioEntity as second action" time="0.001">
+    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer header" name="ReactionDrawer - component when there IS a matching reaction should show drawer header" time="0.012">
+    </testcase>
+    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction type" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction type" time="0.012">
+    </testcase>
+    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction annotations title" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction annotations title" time="0.008">
+    </testcase>
+    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction source for source=-xkkfqwc--djxqb" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction source for source=-xkkfqwc--djxqb" time="0.003">
+    </testcase>
+    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction reference with text=ajixclmqaiovkqs (-79.90823308937252), href=https://ut.com" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction reference with text=ajixclmqaiovkqs (-79.90823308937252), href=https://ut.com" time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="ReactionDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:21" time="0.362" tests="6">
-    <testcase classname="ReactionDrawer - component when there&apos;s NO matching reaction should not show drawer content" name="ReactionDrawer - component when there&apos;s NO matching reaction should not show drawer content" time="0.01">
+  <testsuite name="BioEntitiesPinsListItem - component " errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.493" tests="6">
+    <testcase classname="BioEntitiesPinsListItem - component  should display name of bio entity element" name="BioEntitiesPinsListItem - component  should display name of bio entity element" time="0.022">
     </testcase>
-    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer header" name="ReactionDrawer - component when there IS a matching reaction should show drawer header" time="0.01">
+    <testcase classname="BioEntitiesPinsListItem - component  should display symbol of bio entity element" name="BioEntitiesPinsListItem - component  should display symbol of bio entity element" time="0.004">
     </testcase>
-    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction type" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction type" time="0.005">
+    <testcase classname="BioEntitiesPinsListItem - component  should display empty string when symbol does not exist" name="BioEntitiesPinsListItem - component  should display empty string when symbol does not exist" time="0.004">
     </testcase>
-    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction annotations title" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction annotations title" time="0.003">
+    <testcase classname="BioEntitiesPinsListItem - component  should display string type of bio entity element" name="BioEntitiesPinsListItem - component  should display string type of bio entity element" time="0.003">
     </testcase>
-    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction source for source=-xkkfqwc--djxqb" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction source for source=-xkkfqwc--djxqb" time="0.004">
+    <testcase classname="BioEntitiesPinsListItem - component  should display synonyms of bio entity element" name="BioEntitiesPinsListItem - component  should display synonyms of bio entity element" time="0.004">
     </testcase>
-    <testcase classname="ReactionDrawer - component when there IS a matching reaction should show drawer reaction reference with text=ajixclmqaiovkqs (-79.90823308937252), href=https://ut.com" name="ReactionDrawer - component when there IS a matching reaction should show drawer reaction reference with text=ajixclmqaiovkqs (-79.90823308937252), href=https://ut.com" time="0.004">
+    <testcase classname="BioEntitiesPinsListItem - component  should display list of references for pin" name="BioEntitiesPinsListItem - component  should display list of references for pin" time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="ReactionDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.336" tests="3">
-    <testcase classname="ReactionDrawer - component should show reference group with source=" name="ReactionDrawer - component should show reference group with source=" time="0.013">
+  <testsuite name="useOlMapReactionsLayer - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.54" tests="2">
+    <testcase classname="useOlMapReactionsLayer - util should return VectorLayer" name="useOlMapReactionsLayer - util should return VectorLayer" time="0.025">
     </testcase>
-    <testcase classname="ReactionDrawer - component should show reference group with source=source1" name="ReactionDrawer - component should show reference group with source=source1" time="0.004">
+    <testcase classname="useOlMapReactionsLayer - util should return VectorLayer with valid Style" name="useOlMapReactionsLayer - util should return VectorLayer with valid Style" time="0.002">
     </testcase>
-    <testcase classname="ReactionDrawer - component should show reference group with source=source2" name="ReactionDrawer - component should show reference group with source=source2" time="0.003">
+  </testsuite>
+  <testsuite name="BioEntitiesPinsList - component " errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.598" tests="1">
+    <testcase classname="BioEntitiesPinsList - component  should display list of bio entites elements" name="BioEntitiesPinsList - component  should display list of bio entites elements" time="0.07">
     </testcase>
   </testsuite>
-  <testsuite name="GeneralOverlays - component" errors="0" failures="0" skipped="1" timestamp="2024-01-03T15:35:21" time="0.392" tests="6">
-    <testcase classname="GeneralOverlays - component render should display PD substantia nigra overlay item" name="GeneralOverlays - component render should display PD substantia nigra overlay item" time="0.018">
+  <testsuite name="UserOverlays component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.441" tests="4">
+    <testcase classname="UserOverlays component renders loading message when user is loading" name="UserOverlays component renders loading message when user is loading" time="0.017">
     </testcase>
-    <testcase classname="GeneralOverlays - component render should display Ageing brain overlay item" name="GeneralOverlays - component render should display Ageing brain overlay item" time="0.004">
+    <testcase classname="UserOverlays component renders login button when user is not authenticated" name="UserOverlays component renders login button when user is not authenticated" time="0.011">
     </testcase>
-    <testcase classname="GeneralOverlays - component render should display PRKN variants example overlay item" name="GeneralOverlays - component render should display PRKN variants example overlay item" time="0.004">
+    <testcase classname="UserOverlays component dispatches openLoginModal action when Login button is clicked" name="UserOverlays component dispatches openLoginModal action when Login button is clicked" time="0.019">
     </testcase>
-    <testcase classname="GeneralOverlays - component render should display PRKN variants doubled overlay item" name="GeneralOverlays - component render should display PRKN variants doubled overlay item" time="0.003">
+    <testcase classname="UserOverlays component renders add overlay button when user is authenticated" name="UserOverlays component renders add overlay button when user is authenticated" time="0.012">
     </testcase>
-    <testcase classname="GeneralOverlays - component render should display Generic advanced format overlay overlay item" name="GeneralOverlays - component render should display Generic advanced format overlay overlay item" time="0.003">
+  </testsuite>
+  <testsuite name="BioEntitiesAccordion - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.536" tests="2">
+    <testcase classname="BioEntitiesAccordion - component should display loading indicator when bioEntity search is pending" name="BioEntitiesAccordion - component should display loading indicator when bioEntity search is pending" time="0.054">
     </testcase>
-    <testcase classname="GeneralOverlays - component view overlays should allow to turn on more then one overlay" name="GeneralOverlays - component view overlays should allow to turn on more then one overlay" time="0">
-      <skipped/>
+    <testcase classname="BioEntitiesAccordion - component should render list of maps with number of entities after succeeded bio entity search" name="BioEntitiesAccordion - component should render list of maps with number of entities after succeeded bio entity search" time="0.018">
     </testcase>
   </testsuite>
-  <testsuite name="DrugsAccordion - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.38" tests="5">
-    <testcase classname="DrugsAccordion - component should display drugs number after succesfull drug search" name="DrugsAccordion - component should display drugs number after succesfull drug search" time="0.018">
+  <testsuite name="ContextMenu - Component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.591" tests="6">
+    <testcase classname="ContextMenu - Component when context menu is hidden should context menu has hidden class" name="ContextMenu - Component when context menu is hidden should context menu has hidden class" time="0.035">
     </testcase>
-    <testcase classname="DrugsAccordion - component should display loading indicator while waiting for drug search response" name="DrugsAccordion - component should display loading indicator while waiting for drug search response" time="0.014">
+    <testcase classname="ContextMenu - Component when context menu is shown should display context menu" name="ContextMenu - Component when context menu is shown should display context menu" time="0.003">
     </testcase>
-    <testcase classname="DrugsAccordion - component should navigate user to drugs results list after clicking button" name="DrugsAccordion - component should navigate user to drugs results list after clicking button" time="0.003">
+    <testcase classname="ContextMenu - Component when context menu is shown should display proper text when uniprot is not provided" name="ContextMenu - Component when context menu is shown should display proper text when uniprot is not provided" time="0.002">
     </testcase>
-    <testcase classname="DrugsAccordion - component should disable navigation button when there is no drugs" name="DrugsAccordion - component should disable navigation button when there is no drugs" time="0.009">
+    <testcase classname="ContextMenu - Component when context menu is shown should display proper text when uniprot is not provided" name="ContextMenu - Component when context menu is shown should display proper text when uniprot is not provided" time="0.005">
     </testcase>
-    <testcase classname="DrugsAccordion - component should disable navigation button when waiting for api response" name="DrugsAccordion - component should disable navigation button when waiting for api response" time="0.002">
+    <testcase classname="ContextMenu - Component when context menu is shown should display uniprot id as option if it is provided" name="ContextMenu - Component when context menu is shown should display uniprot id as option if it is provided" time="0.008">
+    </testcase>
+    <testcase classname="ContextMenu - Component when context menu is shown should open molart modal when clicking on uniprot" name="ContextMenu - Component when context menu is shown should open molart modal when clicking on uniprot" time="0.012">
     </testcase>
   </testsuite>
-  <testsuite name="useOverviewImageLinkActions - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.408" tests="9">
-    <testcase classname="useOverviewImageLinkActions - hook when clicked on image link when image id is NOT valid should NOT fire action set overview image id" name="useOverviewImageLinkActions - hook when clicked on image link when image id is NOT valid should NOT fire action set overview image id" time="0.007">
+  <testsuite name="useOverviewImageLinkActions - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.459" tests="9">
+    <testcase classname="useOverviewImageLinkActions - hook when clicked on image link when image id is NOT valid should NOT fire action set overview image id" name="useOverviewImageLinkActions - hook when clicked on image link when image id is NOT valid should NOT fire action set overview image id" time="0.005">
     </testcase>
-    <testcase classname="useOverviewImageLinkActions - hook when clicked on image link when image id is valid should fire action set overview image id" name="useOverviewImageLinkActions - hook when clicked on image link when image id is valid should fire action set overview image id" time="0">
+    <testcase classname="useOverviewImageLinkActions - hook when clicked on image link when image id is valid should fire action set overview image id" name="useOverviewImageLinkActions - hook when clicked on image link when image id is valid should fire action set overview image id" time="0.001">
     </testcase>
-    <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set active map" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set active map" time="0.006">
+    <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set active map" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set active map" time="0.004">
     </testcase>
-    <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set map position" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set map position" time="0.002">
+    <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set map position" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should set map position" time="0.001">
     </testcase>
     <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should close modal" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is already opened should close modal" time="0">
     </testcase>
     <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should open map and set as active" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should open map and set as active" time="0.001">
     </testcase>
-    <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should set map position" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should set map position" time="0">
+    <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should set map position" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should set map position" time="0.001">
     </testcase>
     <testcase classname="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should close modal" name="useOverviewImageLinkActions - hook when clicked on model link when model is available when map is not opened should close modal" time="0.001">
     </testcase>
-    <testcase classname="useOverviewImageLinkActions - hook when clicked on unsupported link should noop" name="useOverviewImageLinkActions - hook when clicked on unsupported link should noop" time="0.001">
+    <testcase classname="useOverviewImageLinkActions - hook when clicked on unsupported link should noop" name="useOverviewImageLinkActions - hook when clicked on unsupported link should noop" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="useOverviewImageLinkConfigs - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.291" tests="3">
-    <testcase classname="useOverviewImageLinkConfigs - hook when currentImage is undefined should return empty array" name="useOverviewImageLinkConfigs - hook when currentImage is undefined should return empty array" time="0.002">
+  <testsuite name="ExcludedCompartmentPathways - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.524" tests="4">
+    <testcase classname="ExcludedCompartmentPathways - component should display compartment / pathways checkboxes when fetching data is successful" name="ExcludedCompartmentPathways - component should display compartment / pathways checkboxes when fetching data is successful" time="0.074">
     </testcase>
-    <testcase classname="useOverviewImageLinkConfigs - hook when sizeFactor is zero should return empty array" name="useOverviewImageLinkConfigs - hook when sizeFactor is zero should return empty array" time="0">
+    <testcase classname="ExcludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetching data fails" name="ExcludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetching data fails" time="0.005">
     </testcase>
-    <testcase classname="useOverviewImageLinkConfigs - hook when all args are valid should return correct value" name="useOverviewImageLinkConfigs - hook when all args are valid should return correct value" time="0.001">
+    <testcase classname="ExcludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetched data is empty" name="ExcludedCompartmentPathways - component should not display compartment / pathways checkboxes when fetched data is empty" time="0.005">
+    </testcase>
+    <testcase classname="ExcludedCompartmentPathways - component should display loading message when fetching data is pending" name="ExcludedCompartmentPathways - component should display loading message when fetching data is pending" time="0.013">
     </testcase>
   </testsuite>
-  <testsuite name="useOverviewImage - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.379" tests="3">
-    <testcase classname="useOverviewImage - hook when image data is invalid should return default size of image and empty imageUrl" name="useOverviewImage - hook when image data is invalid should return default size of image and empty imageUrl" time="0.009">
+  <testsuite name="DrugsAccordion - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.542" tests="5">
+    <testcase classname="DrugsAccordion - component should display drugs number after succesfull drug search" name="DrugsAccordion - component should display drugs number after succesfull drug search" time="0.039">
+    </testcase>
+    <testcase classname="DrugsAccordion - component should display loading indicator while waiting for drug search response" name="DrugsAccordion - component should display loading indicator while waiting for drug search response" time="0.015">
     </testcase>
-    <testcase classname="useOverviewImage - hook when containerReact is undefined should return default size of image and valid imageUrl" name="useOverviewImage - hook when containerReact is undefined should return default size of image and valid imageUrl" time="0.001">
+    <testcase classname="DrugsAccordion - component should navigate user to drugs results list after clicking button" name="DrugsAccordion - component should navigate user to drugs results list after clicking button" time="0.009">
     </testcase>
-    <testcase classname="useOverviewImage - hook when containerReact is valid should return size of image and valid imageUrl" name="useOverviewImage - hook when containerReact is valid should return size of image and valid imageUrl" time="0.004">
+    <testcase classname="DrugsAccordion - component should disable navigation button when there is no drugs" name="DrugsAccordion - component should disable navigation button when there is no drugs" time="0.004">
+    </testcase>
+    <testcase classname="DrugsAccordion - component should disable navigation button when waiting for api response" name="DrugsAccordion - component should disable navigation button when waiting for api response" time="0.002">
     </testcase>
   </testsuite>
-  <testsuite name="useOverviewImageSize - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.347" tests="3">
-    <testcase classname="useOverviewImageSize - hook when currentImage is not valid should return default value" name="useOverviewImageSize - hook when currentImage is not valid should return default value" time="0.005">
+  <testsuite name="GeneralOverlays - component" errors="0" failures="0" skipped="1" timestamp="2024-01-12T14:39:44" time="0.539" tests="6">
+    <testcase classname="GeneralOverlays - component render should display PD substantia nigra overlay item" name="GeneralOverlays - component render should display PD substantia nigra overlay item" time="0.021">
     </testcase>
-    <testcase classname="useOverviewImageSize - hook when containerRect is not valid should return default value" name="useOverviewImageSize - hook when containerRect is not valid should return default value" time="0">
+    <testcase classname="GeneralOverlays - component render should display Ageing brain overlay item" name="GeneralOverlays - component render should display Ageing brain overlay item" time="0.017">
     </testcase>
-    <testcase classname="useOverviewImageSize - hook when data is valid should return calculated height, width, sizeFactor" name="useOverviewImageSize - hook when data is valid should return calculated height, width, sizeFactor" time="0.001">
+    <testcase classname="GeneralOverlays - component render should display PRKN variants example overlay item" name="GeneralOverlays - component render should display PRKN variants example overlay item" time="0.005">
     </testcase>
-  </testsuite>
-  <testsuite name="DrawerHeadingBackwardButton - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.335" tests="3">
-    <testcase classname="DrawerHeadingBackwardButton - component should render passed values" name="DrawerHeadingBackwardButton - component should render passed values" time="0.03">
+    <testcase classname="GeneralOverlays - component render should display PRKN variants doubled overlay item" name="GeneralOverlays - component render should display PRKN variants doubled overlay item" time="0.003">
     </testcase>
-    <testcase classname="DrawerHeadingBackwardButton - component should call backward function on back button click" name="DrawerHeadingBackwardButton - component should call backward function on back button click" time="0.007">
+    <testcase classname="GeneralOverlays - component render should display Generic advanced format overlay overlay item" name="GeneralOverlays - component render should display Generic advanced format overlay overlay item" time="0.01">
     </testcase>
-    <testcase classname="DrawerHeadingBackwardButton - component should call class drawer on close button click" name="DrawerHeadingBackwardButton - component should call class drawer on close button click" time="0.018">
+    <testcase classname="GeneralOverlays - component view overlays should allow to turn on more then one overlay" name="GeneralOverlays - component view overlays should allow to turn on more then one overlay" time="0">
+      <skipped/>
     </testcase>
   </testsuite>
-  <testsuite name="MapAdditionalOptions - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.324" tests="3">
-    <testcase classname="MapAdditionalOptions - component should display background selector" name="MapAdditionalOptions - component should display background selector" time="0.016">
+  <testsuite name="OverlaysLegends - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.489" tests="6">
+    <testcase classname="OverlaysLegends - component when active overlays are empty should not render list of overlays legends" name="OverlaysLegends - component when active overlays are empty should not render list of overlays legends" time="0.012">
     </testcase>
-    <testcase classname="MapAdditionalOptions - component should render browse overview images button" name="MapAdditionalOptions - component should render browse overview images button" time="0.003">
+    <testcase classname="OverlaysLegends - component when active overlays are present should render overlay legend" name="OverlaysLegends - component when active overlays are present should render overlay legend" time="0.006">
+    </testcase>
+    <testcase classname="OverlaysLegends - component when active overlays are present should render overlay legend" name="OverlaysLegends - component when active overlays are present should render overlay legend" time="0.008">
     </testcase>
-    <testcase classname="MapAdditionalOptions - component should open overview image modal on button click" name="MapAdditionalOptions - component should open overview image modal on button click" time="0.004">
+    <testcase classname="OverlaysLegends - component when active overlays are present should render overlay legend" name="OverlaysLegends - component when active overlays are present should render overlay legend" time="0.002">
+    </testcase>
+    <testcase classname="OverlaysLegends - component when active overlays are present should render overlay legend" name="OverlaysLegends - component when active overlays are present should render overlay legend" time="0.003">
+    </testcase>
+    <testcase classname="OverlaysLegends - component when active overlays are present should render overlay legend" name="OverlaysLegends - component when active overlays are present should render overlay legend" time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="SearchDrawerTabs - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.312" tests="2">
-    <testcase classname="SearchDrawerTabs - component should display tabs with search values" name="SearchDrawerTabs - component should display tabs with search values" time="0.016">
+  <testsuite name="CheckboxFilter - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.298" tests="11">
+    <testcase classname="CheckboxFilter - component should render CheckboxFilter properly" name="CheckboxFilter - component should render CheckboxFilter properly" time="0.018">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should filter options based on search term" name="CheckboxFilter - component should filter options based on search term" time="0.012">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should handle checkbox value change" name="CheckboxFilter - component should handle checkbox value change" time="0.008">
     </testcase>
-    <testcase classname="SearchDrawerTabs - component second test" name="SearchDrawerTabs - component second test" time="0.007">
+    <testcase classname="CheckboxFilter - component should call onFilterChange when searching new term" name="CheckboxFilter - component should call onFilterChange when searching new term" time="0.005">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should display message when no elements are found" name="CheckboxFilter - component should display message when no elements are found" time="0.004">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should display message when options are empty" name="CheckboxFilter - component should display message when options are empty" time="0.003">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should handle multiple checkbox selection" name="CheckboxFilter - component should handle multiple checkbox selection" time="0.006">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should handle unchecking a checkbox" name="CheckboxFilter - component should handle unchecking a checkbox" time="0.009">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should render search input when isSearchEnabled is true" name="CheckboxFilter - component should render search input when isSearchEnabled is true" time="0.02">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should not render search input when isSearchEnabled is false" name="CheckboxFilter - component should not render search input when isSearchEnabled is false" time="0.002">
+    </testcase>
+    <testcase classname="CheckboxFilter - component should not filter options based on search input when isSearchEnabled is false" name="CheckboxFilter - component should not filter options based on search input when isSearchEnabled is false" time="0.002">
     </testcase>
   </testsuite>
-  <testsuite name="useEmptyBackground - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.273" tests="2">
-    <testcase classname="useEmptyBackground - hook returns setEmptyBackground function should not set background to &quot;Empty&quot; if its not available" name="useEmptyBackground - hook returns setEmptyBackground function should not set background to &quot;Empty&quot; if its not available" time="0.009">
+  <testsuite name="useUserOverlayForm" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.358" tests="4">
+    <testcase classname="useUserOverlayForm should update state when form fields are changed" name="useUserOverlayForm should update state when form fields are changed" time="0.017">
     </testcase>
-    <testcase classname="useEmptyBackground - hook returns setEmptyBackground function should set background to &quot;Empty&quot; if its available" name="useEmptyBackground - hook returns setEmptyBackground function should set background to &quot;Empty&quot; if its available" time="0.004">
+    <testcase classname="useUserOverlayForm should update overlayContent when handleChangeOverlayContent is called" name="useUserOverlayForm should update overlayContent when handleChangeOverlayContent is called" time="0.003">
+    </testcase>
+    <testcase classname="useUserOverlayForm should update elementsList and overlayContent when handleChangeElementsList is called" name="useUserOverlayForm should update elementsList and overlayContent when handleChangeElementsList is called" time="0.012">
+    </testcase>
+    <testcase classname="useUserOverlayForm should update state variables based on updateUserOverlayForm" name="useUserOverlayForm should update state variables based on updateUserOverlayForm" time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="OverviewImagesModal - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.337" tests="4">
-    <testcase classname="OverviewImagesModal - component when currentImage is NOT valid should not render component" name="OverviewImagesModal - component when currentImage is NOT valid should not render component" time="0.01">
+  <testsuite name="onMapSingleClick - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.393" tests="5">
+    <testcase classname="onMapSingleClick - util when always should fire data reset handler" name="onMapSingleClick - util when always should fire data reset handler" time="0.029">
+    </testcase>
+    <testcase classname="onMapSingleClick - util when searchResults are undefined does not fire search result action" name="onMapSingleClick - util when searchResults are undefined does not fire search result action" time="0.001">
     </testcase>
-    <testcase classname="OverviewImagesModal - component when currentImage is valid should render component" name="OverviewImagesModal - component when currentImage is valid should render component" time="0.033">
+    <testcase classname="onMapSingleClick - util when searchResults are empty does not fire search result action" name="onMapSingleClick - util when searchResults are empty does not fire search result action" time="0">
     </testcase>
-    <testcase classname="OverviewImagesModal - component when currentImage is valid should render image with valid src" name="OverviewImagesModal - component when currentImage is valid should render image with valid src" time="0.003">
+    <testcase classname="onMapSingleClick - util when searchResults are valid when results type is ALIAS does fire search result action handler" name="onMapSingleClick - util when searchResults are valid when results type is ALIAS does fire search result action handler" time="0.009">
     </testcase>
-    <testcase classname="OverviewImagesModal - component when currentImage is valid should render image wrapper with valid size" name="OverviewImagesModal - component when currentImage is valid should render image wrapper with valid size" time="0.005">
+    <testcase classname="onMapSingleClick - util when searchResults are valid when results type is REACTION does fire search result action - handle reaction" name="onMapSingleClick - util when searchResults are valid when results type is REACTION does fire search result action - handle reaction" time="0.002">
     </testcase>
   </testsuite>
-  <testsuite name="usePointToProjection - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.288" tests="3">
-    <testcase classname="usePointToProjection - util when mapSize arg is undefined in redux should return fallback value on function call" name="usePointToProjection - util when mapSize arg is undefined in redux should return fallback value on function call" time="0.035">
+  <testsuite name="handleBioEntityResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.405" tests="2">
+    <testcase classname="handleBioEntityResults - util should run setCurrentSelectedBioEntityId as first action" name="handleBioEntityResults - util should run setCurrentSelectedBioEntityId as first action" time="0.003">
     </testcase>
-    <testcase classname="usePointToProjection - util when mapSize arg is invalid in redux should return fallback value on function call" name="usePointToProjection - util when mapSize arg is invalid in redux should return fallback value on function call" time="0.002">
+    <testcase classname="handleBioEntityResults - util should run getMultiBioEntity as second action" name="handleBioEntityResults - util should run getMultiBioEntity as second action" time="0.001">
+    </testcase>
+  </testsuite>
+  <testsuite name="ResultsList - component " errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:44" time="0.472" tests="2">
+    <testcase classname="ResultsList - component  should render results and navigation panel" name="ResultsList - component  should render results and navigation panel" time="0.053">
     </testcase>
-    <testcase classname="usePointToProjection - util when all args are valid in redux should return valid lat lng value on function call" name="usePointToProjection - util when all args are valid in redux should return valid lat lng value on function call" time="0.002">
+    <testcase classname="ResultsList - component  should navigate to grouped search results after backward button click" name="ResultsList - component  should navigate to grouped search results after backward button click" time="0.039">
     </testcase>
   </testsuite>
-  <testsuite name="useOverviewImageUrl - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.285" tests="2">
-    <testcase classname="useOverviewImageUrl - hook when currentImage data is valid should return valid url" name="useOverviewImageUrl - hook when currentImage data is valid should return valid url" time="0.019">
+  <testsuite name="overlays reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.37" tests="7">
+    <testcase classname="overlays reducer should match initial state" name="overlays reducer should match initial state" time="0.002">
     </testcase>
-    <testcase classname="useOverviewImageUrl - hook when currentImage data is valid should return valid url" name="useOverviewImageUrl - hook when currentImage data is valid should return valid url" time="0.002">
+    <testcase classname="overlays reducer should update store after successful getAllPublicOverlaysByProjectId query" name="overlays reducer should update store after successful getAllPublicOverlaysByProjectId query" time="0.004">
+    </testcase>
+    <testcase classname="overlays reducer should update store after failed getAllPublicOverlaysByProjectId query" name="overlays reducer should update store after failed getAllPublicOverlaysByProjectId query" time="0.078">
+    </testcase>
+    <testcase classname="overlays reducer should update store on loading getAllPublicOverlaysByProjectId query" name="overlays reducer should update store on loading getAllPublicOverlaysByProjectId query" time="0.002">
+    </testcase>
+    <testcase classname="overlays reducer should update store when addOverlay is pending" name="overlays reducer should update store when addOverlay is pending" time="0.006">
+    </testcase>
+    <testcase classname="overlays reducer should update store after successful addOverlay" name="overlays reducer should update store after successful addOverlay" time="0.005">
+    </testcase>
+    <testcase classname="overlays reducer should update store after failed addOverlay" name="overlays reducer should update store after failed addOverlay" time="0.001">
+    </testcase>
+  </testsuite>
+  <testsuite name="useOlMapPinsLayer - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.45" tests="1">
+    <testcase classname="useOlMapPinsLayer - util should return VectorLayer" name="useOlMapPinsLayer - util should return VectorLayer" time="0.012">
     </testcase>
   </testsuite>
-  <testsuite name="DrawerHeading - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.304" tests="2">
-    <testcase classname="DrawerHeading - component should display passed title" name="DrawerHeading - component should display passed title" time="0.029">
+  <testsuite name="SearchDrawerTabs - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.394" tests="2">
+    <testcase classname="SearchDrawerTabs - component should display tabs with search values" name="SearchDrawerTabs - component should display tabs with search values" time="0.02">
     </testcase>
-    <testcase classname="DrawerHeading - component should call class drawer on close button click" name="DrawerHeading - component should call class drawer on close button click" time="0.027">
+    <testcase classname="SearchDrawerTabs - component second test" name="SearchDrawerTabs - component second test" time="0.012">
     </testcase>
   </testsuite>
-  <testsuite name="map thunks - utils" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.269" tests="10">
-    <testcase classname="map thunks - utils getBackgroundId should return backgroundId value from queryData" name="map thunks - utils getBackgroundId should return backgroundId value from queryData" time="0.001">
+  <testsuite name="BackgroundSelector - component" errors="0" failures="0" skipped="1" timestamp="2024-01-12T14:39:45" time="0.521" tests="6">
+    <testcase classname="BackgroundSelector - component should initialy display default value" name="BackgroundSelector - component should initialy display default value" time="0.028">
     </testcase>
-    <testcase classname="map thunks - utils getBackgroundId should return main map background id if query param does not include background id" name="map thunks - utils getBackgroundId should return main map background id if query param does not include background id" time="0">
+    <testcase classname="BackgroundSelector - component should display selected value name when it&apos;s not main background" name="BackgroundSelector - component should display selected value name when it&apos;s not main background" time="0.033">
     </testcase>
-    <testcase classname="map thunks - utils getBackgroundId should return default value (0) if query data does not include backgroundId and could not find main background in the store" name="map thunks - utils getBackgroundId should return default value (0) if query data does not include backgroundId and could not find main background in the store" time="0">
+    <testcase classname="BackgroundSelector - component should change redux map state on selecting background" name="BackgroundSelector - component should change redux map state on selecting background" time="0.013">
     </testcase>
-    <testcase classname="map thunks - utils getInitMapPosition should return valid map position from query params " name="map thunks - utils getInitMapPosition should return valid map position from query params " time="0">
+    <testcase classname="BackgroundSelector - component query params should display default value when main background id is in query params" name="BackgroundSelector - component query params should display default value when main background id is in query params" time="0.006">
     </testcase>
-    <testcase classname="map thunks - utils getInitMapPosition should return valid map position if query params do not include position" name="map thunks - utils getInitMapPosition should return valid map position if query params do not include position" time="0">
+    <testcase classname="BackgroundSelector - component query params should display correct background when background id is in query params" name="BackgroundSelector - component query params should display correct background when background id is in query params" time="0.002">
     </testcase>
-    <testcase classname="map thunks - utils getInitMapPosition should return default map position" name="map thunks - utils getInitMapPosition should return default map position" time="0.001">
+    <testcase classname="BackgroundSelector - component query params should set backgroundid in query on selecting background" name="BackgroundSelector - component query params should set backgroundid in query on selecting background" time="0">
+      <skipped/>
     </testcase>
-    <testcase classname="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelid when modelId is provided in queryData" name="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelid when modelId is provided in queryData" time="0">
+  </testsuite>
+  <testsuite name="LegendHeader - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.444" tests="3">
+    <testcase classname="LegendHeader - component should render legend title" name="LegendHeader - component should render legend title" time="0.023">
     </testcase>
-    <testcase classname="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelId if query params do not include modelId" name="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelId if query params do not include modelId" time="0">
+    <testcase classname="LegendHeader - component should render legend close button" name="LegendHeader - component should render legend close button" time="0.01">
     </testcase>
-    <testcase classname="map thunks - utils getOpenedMaps  should return main map only" name="map thunks - utils getOpenedMaps  should return main map only" time="0">
+    <testcase classname="LegendHeader - component should close legend on close button click" name="LegendHeader - component should close legend on close button click" time="0.022">
+    </testcase>
+  </testsuite>
+  <testsuite name="Columns - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.356" tests="2">
+    <testcase classname="Columns - component should display select column accordion" name="Columns - component should display select column accordion" time="0.048">
     </testcase>
-    <testcase classname="map thunks - utils getOpenedMaps  should return main map and opened submap" name="map thunks - utils getOpenedMaps  should return main map and opened submap" time="0">
+    <testcase classname="Columns - component should display columns checkboxes" name="Columns - component should display columns checkboxes" time="0.041">
     </testcase>
   </testsuite>
-  <testsuite name="onMapPositionChange - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.277" tests="2">
-    <testcase classname="onMapPositionChange - util should set map data position to valid one" name="onMapPositionChange - util should set map data position to valid one" time="0.011">
+  <testsuite name="useOverviewImageLinkConfigs - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.379" tests="3">
+    <testcase classname="useOverviewImageLinkConfigs - hook when currentImage is undefined should return empty array" name="useOverviewImageLinkConfigs - hook when currentImage is undefined should return empty array" time="0.002">
+    </testcase>
+    <testcase classname="useOverviewImageLinkConfigs - hook when sizeFactor is zero should return empty array" name="useOverviewImageLinkConfigs - hook when sizeFactor is zero should return empty array" time="0">
     </testcase>
-    <testcase classname="onMapPositionChange - util should set map data position to valid one" name="onMapPositionChange - util should set map data position to valid one" time="0.002">
+    <testcase classname="useOverviewImageLinkConfigs - hook when all args are valid should return correct value" name="useOverviewImageLinkConfigs - hook when all args are valid should return correct value" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="NavBar - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.311" tests="1">
-    <testcase classname="NavBar - component Should contain navigation buttons and logos with powered by info" name="NavBar - component Should contain navigation buttons and logos with powered by info" time="0.026">
+  <testsuite name="OverlaySelector component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.334" tests="2">
+    <testcase classname="OverlaySelector component renders the component with initial values" name="OverlaySelector component renders the component with initial values" time="0.031">
+    </testcase>
+    <testcase classname="OverlaySelector component opens the dropdown and selects an item" name="OverlaySelector component opens the dropdown and selects an item" time="0.033">
     </testcase>
   </testsuite>
-  <testsuite name="bioEntity reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.33" tests="4">
-    <testcase classname="bioEntity reducer should match initial state" name="bioEntity reducer should match initial state" time="0.003">
+  <testsuite name="handleReactionResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.46" tests="4">
+    <testcase classname="handleReactionResults - util should run getReactionsByIds as first action" name="handleReactionResults - util should run getReactionsByIds as first action" time="0.003">
     </testcase>
-    <testcase classname="bioEntity reducer should update store after succesfull getBioEntity query" name="bioEntity reducer should update store after succesfull getBioEntity query" time="0.013">
+    <testcase classname="handleReactionResults - util should run openReactionDrawerById to empty array as second action" name="handleReactionResults - util should run openReactionDrawerById to empty array as second action" time="0.001">
     </testcase>
-    <testcase classname="bioEntity reducer should update store after failed getBioEntity query" name="bioEntity reducer should update store after failed getBioEntity query" time="0.079">
+    <testcase classname="handleReactionResults - util should run setBioEntityContent to empty array as third action" name="handleReactionResults - util should run setBioEntityContent to empty array as third action" time="0">
     </testcase>
-    <testcase classname="bioEntity reducer should update store on loading getBioEntity query" name="bioEntity reducer should update store on loading getBioEntity query" time="0.008">
+    <testcase classname="handleReactionResults - util should run getBioEntity as fourth action" name="handleReactionResults - util should run getBioEntity as fourth action" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="backgrounds reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.246" tests="4">
-    <testcase classname="backgrounds reducer should match initial state" name="backgrounds reducer should match initial state" time="0.011">
+  <testsuite name="MapAdditionalOptions - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.466" tests="3">
+    <testcase classname="MapAdditionalOptions - component should display background selector" name="MapAdditionalOptions - component should display background selector" time="0.039">
     </testcase>
-    <testcase classname="backgrounds reducer should update store after succesfull getAllBackgroundsByProjectId query" name="backgrounds reducer should update store after succesfull getAllBackgroundsByProjectId query" time="0.005">
+    <testcase classname="MapAdditionalOptions - component should render browse overview images button" name="MapAdditionalOptions - component should render browse overview images button" time="0.003">
     </testcase>
-    <testcase classname="backgrounds reducer should update store after failed getAllBackgroundsByProjectId query" name="backgrounds reducer should update store after failed getAllBackgroundsByProjectId query" time="0.077">
+    <testcase classname="MapAdditionalOptions - component should open overview image modal on button click" name="MapAdditionalOptions - component should open overview image modal on button click" time="0.005">
     </testcase>
-    <testcase classname="backgrounds reducer should update store on loading getAllBackgroundsByProjectId query" name="backgrounds reducer should update store on loading getAllBackgroundsByProjectId query" time="0.001">
+  </testsuite>
+  <testsuite name="useReduxBusQueryManager - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.399" tests="3">
+    <testcase classname="useReduxBusQueryManager - util on init when data is NOT loaded should not update query" name="useReduxBusQueryManager - util on init when data is NOT loaded should not update query" time="0.01">
+    </testcase>
+    <testcase classname="useReduxBusQueryManager - util on init when data is loaded should update query" name="useReduxBusQueryManager - util on init when data is loaded should update query" time="0.007">
+    </testcase>
+    <testcase classname="useReduxBusQueryManager - util on init when data is loaded should update query params to valid ones" name="useReduxBusQueryManager - util on init when data is loaded should update query params to valid ones" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="drugs reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.314" tests="4">
-    <testcase classname="drugs reducer should match initial state" name="drugs reducer should match initial state" time="0.002">
+  <testsuite name="Types Component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.433" tests="1">
+    <testcase classname="Types Component renders without crashing" name="Types Component renders without crashing" time="0.038">
     </testcase>
-    <testcase classname="drugs reducer should update store after succesfull getDrugs query" name="drugs reducer should update store after succesfull getDrugs query" time="0.016">
+  </testsuite>
+  <testsuite name="IconButton - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.284" tests="3">
+    <testcase classname="IconButton - component should render IconButton" name="IconButton - component should render IconButton" time="0.034">
     </testcase>
-    <testcase classname="drugs reducer should update store after failed getDrugs query" name="drugs reducer should update store after failed getDrugs query" time="0.099">
+    <testcase classname="IconButton - component should render IconButton with plugin icon" name="IconButton - component should render IconButton with plugin icon" time="0.002">
     </testcase>
-    <testcase classname="drugs reducer should update store on loading getDrugs query" name="drugs reducer should update store on loading getDrugs query" time="0.014">
+    <testcase classname="IconButton - component should render IconButton as active" name="IconButton - component should render IconButton as active" time="0.002">
     </testcase>
   </testsuite>
-  <testsuite name="IconButton - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.232" tests="3">
-    <testcase classname="IconButton - component should render IconButton" name="IconButton - component should render IconButton" time="0.013">
+  <testsuite name="statistics reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.404" tests="3">
+    <testcase classname="statistics reducer should match initial state" name="statistics reducer should match initial state" time="0.002">
+    </testcase>
+    <testcase classname="statistics reducer should update store after successful getStatisticById query" name="statistics reducer should update store after successful getStatisticById query" time="0.005">
     </testcase>
-    <testcase classname="IconButton - component should render IconButton with plugin icon" name="IconButton - component should render IconButton with plugin icon" time="0.01">
+    <testcase classname="statistics reducer should update store after failed getStatisticById query" name="statistics reducer should update store after failed getStatisticById query" time="0.119">
     </testcase>
-    <testcase classname="IconButton - component should render IconButton as active" name="IconButton - component should render IconButton as active" time="0.004">
+  </testsuite>
+  <testsuite name="useOverviewImageUrl - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.381" tests="2">
+    <testcase classname="useOverviewImageUrl - hook when currentImage data is valid should return valid url" name="useOverviewImageUrl - hook when currentImage data is valid should return valid url" time="0.008">
+    </testcase>
+    <testcase classname="useOverviewImageUrl - hook when currentImage data is valid should return valid url" name="useOverviewImageUrl - hook when currentImage data is valid should return valid url" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="chemicals reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:22" time="0.279" tests="4">
-    <testcase classname="chemicals reducer should match initial state" name="chemicals reducer should match initial state" time="0.004">
+  <testsuite name="PerfectMatchSwitch - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.459" tests="4">
+    <testcase classname="PerfectMatchSwitch - component should initialy be set to false when perfectMatch is not in query or set to false" name="PerfectMatchSwitch - component should initialy be set to false when perfectMatch is not in query or set to false" time="0.036">
     </testcase>
-    <testcase classname="chemicals reducer should update store after succesfull getChemicals query" name="chemicals reducer should update store after succesfull getChemicals query" time="0.025">
+    <testcase classname="PerfectMatchSwitch - component should initialy be set to true when perfectMatch query is set to true" name="PerfectMatchSwitch - component should initialy be set to true when perfectMatch query is set to true" time="0.018">
     </testcase>
-    <testcase classname="chemicals reducer should update store after failed getChemicals query" name="chemicals reducer should update store after failed getChemicals query" time="0.077">
+    <testcase classname="PerfectMatchSwitch - component should set checkbox to true and update store" name="PerfectMatchSwitch - component should set checkbox to true and update store" time="0.014">
     </testcase>
-    <testcase classname="chemicals reducer should update store on loading getChemicals query" name="chemicals reducer should update store on loading getChemicals query" time="0.011">
+    <testcase classname="PerfectMatchSwitch - component should set checkbox to false and update store" name="PerfectMatchSwitch - component should set checkbox to false and update store" time="0.02">
     </testcase>
   </testsuite>
-  <testsuite name="handleDataReset" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.226" tests="1">
-    <testcase classname="handleDataReset should dispatch reset actions" name="handleDataReset should dispatch reset actions" time="0.006">
+  <testsuite name="DrawerHeading - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.401" tests="2">
+    <testcase classname="DrawerHeading - component should display passed title" name="DrawerHeading - component should display passed title" time="0.02">
+    </testcase>
+    <testcase classname="DrawerHeading - component should call class drawer on close button click" name="DrawerHeading - component should call class drawer on close button click" time="0.023">
     </testcase>
   </testsuite>
-  <testsuite name="overlays reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.249" tests="4">
-    <testcase classname="overlays reducer should match initial state" name="overlays reducer should match initial state" time="0.002">
+  <testsuite name="useEmptyBackground - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:45" time="0.464" tests="2">
+    <testcase classname="useEmptyBackground - hook returns setEmptyBackground function should not set background to &quot;Empty&quot; if its not available" name="useEmptyBackground - hook returns setEmptyBackground function should not set background to &quot;Empty&quot; if its not available" time="0.012">
     </testcase>
-    <testcase classname="overlays reducer should update store after succesfull getAllPublicOverlaysByProjectId query" name="overlays reducer should update store after succesfull getAllPublicOverlaysByProjectId query" time="0.005">
+    <testcase classname="useEmptyBackground - hook returns setEmptyBackground function should set background to &quot;Empty&quot; if its available" name="useEmptyBackground - hook returns setEmptyBackground function should set background to &quot;Empty&quot; if its available" time="0.004">
     </testcase>
-    <testcase classname="overlays reducer should update store after failed getAllPublicOverlaysByProjectId query" name="overlays reducer should update store after failed getAllPublicOverlaysByProjectId query" time="0.092">
+  </testsuite>
+  <testsuite name="onMapPositionChange - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.449" tests="2">
+    <testcase classname="onMapPositionChange - util should set map data position to valid one" name="onMapPositionChange - util should set map data position to valid one" time="0.022">
     </testcase>
-    <testcase classname="overlays reducer should update store on loading getAllPublicOverlaysByProjectId query" name="overlays reducer should update store on loading getAllPublicOverlaysByProjectId query" time="0.007">
+    <testcase classname="onMapPositionChange - util should set map data position to valid one" name="onMapPositionChange - util should set map data position to valid one" time="0.007">
     </testcase>
   </testsuite>
-  <testsuite name="models reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.242" tests="4">
-    <testcase classname="models reducer should match initial state" name="models reducer should match initial state" time="0.002">
+  <testsuite name="NavBar - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.387" tests="1">
+    <testcase classname="NavBar - component Should contain navigation buttons and logos with powered by info" name="NavBar - component Should contain navigation buttons and logos with powered by info" time="0.067">
     </testcase>
-    <testcase classname="models reducer should update store after succesfull getModels query" name="models reducer should update store after succesfull getModels query" time="0.007">
+  </testsuite>
+  <testsuite name="CookieBanner component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.373" tests="3">
+    <testcase classname="CookieBanner component renders cookie banner correctly first time" name="CookieBanner component renders cookie banner correctly first time" time="0.029">
     </testcase>
-    <testcase classname="models reducer should update store after failed getModels query" name="models reducer should update store after failed getModels query" time="0.074">
+    <testcase classname="CookieBanner component hides the banner after accepting cookies" name="CookieBanner component hides the banner after accepting cookies" time="0.013">
     </testcase>
-    <testcase classname="models reducer should update store on loading getModels query" name="models reducer should update store on loading getModels query" time="0.003">
+    <testcase classname="CookieBanner component does not render the cookies banner when cookies are accepted" name="CookieBanner component does not render the cookies banner when cookies are accepted" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="UserAvatar - component " errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.245" tests="1">
-    <testcase classname="UserAvatar - component  should render placeholder image" name="UserAvatar - component  should render placeholder image" time="0.014">
+  <testsuite name="drugs reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.387" tests="4">
+    <testcase classname="drugs reducer should match initial state" name="drugs reducer should match initial state" time="0.011">
+    </testcase>
+    <testcase classname="drugs reducer should update store after succesfull getDrugs query" name="drugs reducer should update store after succesfull getDrugs query" time="0.027">
+    </testcase>
+    <testcase classname="drugs reducer should update store after failed getDrugs query" name="drugs reducer should update store after failed getDrugs query" time="0.106">
+    </testcase>
+    <testcase classname="drugs reducer should update store on loading getDrugs query" name="drugs reducer should update store on loading getDrugs query" time="0.025">
     </testcase>
   </testsuite>
-  <testsuite name="map middleware" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.244" tests="3">
-    <testcase classname="map middleware on listen when model is valid and different than current should dispatch setMapData, map/setMapData" name="map middleware on listen when model is valid and different than current should dispatch setMapData, map/setMapData" time="0.002">
+  <testsuite name="OverlaySingleLegend - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.374" tests="2">
+    <testcase classname="OverlaySingleLegend - component should render title with overlay name" name="OverlaySingleLegend - component should render title with overlay name" time="0.031">
     </testcase>
-    <testcase classname="map middleware on listen when model is valid and identical with current should NOT dispatch setMapData" name="map middleware on listen when model is valid and identical with current should NOT dispatch setMapData" time="0.001">
+    <testcase classname="OverlaySingleLegend - component should render image with valid src and alt" name="OverlaySingleLegend - component should render image with valid src and alt" time="0.003">
     </testcase>
-    <testcase classname="map middleware on listen when model is NOT valid should NOT dispatch setMapData" name="map middleware on listen when model is NOT valid should NOT dispatch setMapData" time="0">
+  </testsuite>
+  <testsuite name="Button - component " errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.327" tests="1">
+    <testcase classname="Button - component  should render name Button" name="Button - component  should render name Button" time="0.032">
     </testcase>
   </testsuite>
-  <testsuite name="Button - component " errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.252" tests="1">
-    <testcase classname="Button - component  should render name Button" name="Button - component  should render name Button" time="0.014">
+  <testsuite name="useOverviewImage - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.436" tests="3">
+    <testcase classname="useOverviewImage - hook when image data is invalid should return default size of image and empty imageUrl" name="useOverviewImage - hook when image data is invalid should return default size of image and empty imageUrl" time="0.003">
+    </testcase>
+    <testcase classname="useOverviewImage - hook when containerReact is undefined should return default size of image and valid imageUrl" name="useOverviewImage - hook when containerReact is undefined should return default size of image and valid imageUrl" time="0">
+    </testcase>
+    <testcase classname="useOverviewImage - hook when containerReact is valid should return size of image and valid imageUrl" name="useOverviewImage - hook when containerReact is valid should return size of image and valid imageUrl" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="bioEntityContents thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.252" tests="2">
-    <testcase classname="bioEntityContents thunks getBioEntityContents should return data when data response from API is valid" name="bioEntityContents thunks getBioEntityContents should return data when data response from API is valid" time="0.014">
+  <testsuite name="Input - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.268" tests="8">
+    <testcase classname="Input - component should render with proper testid" name="Input - component should render with proper testid" time="0.012">
+    </testcase>
+    <testcase classname="Input - component should apply the default style and size variants when none are provided" name="Input - component should apply the default style and size variants when none are provided" time="0.001">
+    </testcase>
+    <testcase classname="Input - component should apply the specified style variant" name="Input - component should apply the specified style variant" time="0.001">
+    </testcase>
+    <testcase classname="Input - component should apply the specified size variant" name="Input - component should apply the specified size variant" time="0.001">
+    </testcase>
+    <testcase classname="Input - component should merge custom class with style and size variant classes" name="Input - component should merge custom class with style and size variant classes" time="0.001">
     </testcase>
-    <testcase classname="bioEntityContents thunks getBioEntityContents should return undefined when data response from API is not valid " name="bioEntityContents thunks getBioEntityContents should return undefined when data response from API is not valid " time="0.018">
+    <testcase classname="Input - component  should handle onChange event" name="Input - component  should handle onChange event" time="0.003">
+    </testcase>
+    <testcase classname="Input - component should render with a placeholder" name="Input - component should render with a placeholder" time="0.002">
+    </testcase>
+    <testcase classname="Input - component should render with a default value" name="Input - component should render with a default value" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="reactions thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.181" tests="3">
-    <testcase classname="reactions thunks getReactionsByIds should return data when data response from API is valid" name="reactions thunks getReactionsByIds should return data when data response from API is valid" time="0.008">
+  <testsuite name="Textarea - Component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.308" tests="7">
+    <testcase classname="Textarea - Component should render with proper testid" name="Textarea - Component should render with proper testid" time="0.015">
+    </testcase>
+    <testcase classname="Textarea - Component should apply the default style variant when none is provided" name="Textarea - Component should apply the default style variant when none is provided" time="0.002">
+    </testcase>
+    <testcase classname="Textarea - Component should apply the specified style variant" name="Textarea - Component should apply the specified style variant" time="0.001">
     </testcase>
-    <testcase classname="reactions thunks getReactionsByIds should return undefined when data response from API is not valid " name="reactions thunks getReactionsByIds should return undefined when data response from API is not valid " time="0.007">
+    <testcase classname="Textarea - Component should merge custom class with style variant classes" name="Textarea - Component should merge custom class with style variant classes" time="0.001">
     </testcase>
-    <testcase classname="reactions thunks getReactionsByIds should return empty array when data response from API is empty" name="reactions thunks getReactionsByIds should return empty array when data response from API is empty" time="0.013">
+    <testcase classname="Textarea - Component should handle onChange event" name="Textarea - Component should handle onChange event" time="0.007">
+    </testcase>
+    <testcase classname="Textarea - Component should render with a placeholder" name="Textarea - Component should render with a placeholder" time="0.001">
+    </testcase>
+    <testcase classname="Textarea - Component should render with a default value" name="Textarea - Component should render with a default value" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="user reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.188" tests="4">
-    <testcase classname="user reducer should match initial state" name="user reducer should match initial state" time="0.003">
+  <testsuite name="useOverviewImageSize - hook" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.414" tests="3">
+    <testcase classname="useOverviewImageSize - hook when currentImage is not valid should return default value" name="useOverviewImageSize - hook when currentImage is not valid should return default value" time="0.002">
     </testcase>
-    <testcase classname="user reducer should update store after successful login query" name="user reducer should update store after successful login query" time="0.003">
+    <testcase classname="useOverviewImageSize - hook when containerRect is not valid should return default value" name="useOverviewImageSize - hook when containerRect is not valid should return default value" time="0">
     </testcase>
-    <testcase classname="user reducer should update store on loading login query" name="user reducer should update store on loading login query" time="0.002">
+    <testcase classname="useOverviewImageSize - hook when data is valid should return calculated height, width, sizeFactor" name="useOverviewImageSize - hook when data is valid should return calculated height, width, sizeFactor" time="0">
     </testcase>
-    <testcase classname="user reducer should update store after successful getSessionValid query" name="user reducer should update store after successful getSessionValid query" time="0.001">
+  </testsuite>
+  <testsuite name="TabNavigator - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.34" tests="3">
+    <testcase classname="TabNavigator - component should render TabNavigator with correct tabs" name="TabNavigator - component should render TabNavigator with correct tabs" time="0.019">
+    </testcase>
+    <testcase classname="TabNavigator - component should change tabs correctly" name="TabNavigator - component should change tabs correctly" time="0.005">
+    </testcase>
+    <testcase classname="TabNavigator - component should set initial active tab" name="TabNavigator - component should set initial active tab" time="0.028">
     </testcase>
   </testsuite>
-  <testsuite name="drugs thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.236" tests="2">
-    <testcase classname="drugs thunks getDrugs should return data when data response from API is valid" name="drugs thunks getDrugs should return data when data response from API is valid" time="0.033">
+  <testsuite name="models reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.319" tests="4">
+    <testcase classname="models reducer should match initial state" name="models reducer should match initial state" time="0.004">
+    </testcase>
+    <testcase classname="models reducer should update store after succesfull getModels query" name="models reducer should update store after succesfull getModels query" time="0.006">
     </testcase>
-    <testcase classname="drugs thunks getDrugs should return undefined when data response from API is not valid " name="drugs thunks getDrugs should return undefined when data response from API is not valid " time="0.006">
+    <testcase classname="models reducer should update store after failed getModels query" name="models reducer should update store after failed getModels query" time="0.097">
+    </testcase>
+    <testcase classname="models reducer should update store on loading getModels query" name="models reducer should update store on loading getModels query" time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="project reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.276" tests="4">
-    <testcase classname="project reducer should match initial state" name="project reducer should match initial state" time="0.002">
+  <testsuite name="TabButton - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.278" tests="4">
+    <testcase classname="TabButton - component should render TabButton with custom label" name="TabButton - component should render TabButton with custom label" time="0.021">
     </testcase>
-    <testcase classname="project reducer should update store after succesfull getProjectById query" name="project reducer should update store after succesfull getProjectById query" time="0.005">
+    <testcase classname="TabButton - component should handle click event" name="TabButton - component should handle click event" time="0.006">
     </testcase>
-    <testcase classname="project reducer should update store after failed getProjectById query" name="project reducer should update store after failed getProjectById query" time="0.089">
+    <testcase classname="TabButton - component should indicate active tab correctly" name="TabButton - component should indicate active tab correctly" time="0.015">
     </testcase>
-    <testcase classname="project reducer should update store on loading getProjectById query" name="project reducer should update store on loading getProjectById query" time="0.002">
+    <testcase classname="TabButton - component should indicate not active tab correctly" name="TabButton - component should indicate not active tab correctly" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="login thunk" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.148" tests="2">
-    <testcase classname="login thunk dispatches closeModal action on successful login with valid data" name="login thunk dispatches closeModal action on successful login with valid data" time="0.002">
+  <testsuite name="bioEntity reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.334" tests="4">
+    <testcase classname="bioEntity reducer should match initial state" name="bioEntity reducer should match initial state" time="0.002">
     </testcase>
-    <testcase classname="login thunk does not dispatch closeModal action on failed login with invalid data" name="login thunk does not dispatch closeModal action on failed login with invalid data" time="0">
+    <testcase classname="bioEntity reducer should update store after succesfull getBioEntity query" name="bioEntity reducer should update store after succesfull getBioEntity query" time="0.022">
+    </testcase>
+    <testcase classname="bioEntity reducer should update store after failed getBioEntity query" name="bioEntity reducer should update store after failed getBioEntity query" time="0.093">
+    </testcase>
+    <testcase classname="bioEntity reducer should update store on loading getBioEntity query" name="bioEntity reducer should update store on loading getBioEntity query" time="0.01">
     </testcase>
   </testsuite>
-  <testsuite name="getHexTricolorGradientColorWithAlpha" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.258" tests="9">
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: -1 } should return #FF0000ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: -1 } should return #FF0000ff" time="0.002">
+  <testsuite name="FileUpload component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.309" tests="2">
+    <testcase classname="FileUpload component renders correctly with default state" name="FileUpload component renders correctly with default state" time="0.019">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 0.8, position: -0.75 } should return #BF4000cc" name="getHexTricolorGradientColorWithAlpha and position { alpha: 0.8, position: -0.75 } should return #BF4000cc" time="0">
+    <testcase classname="FileUpload component renders filename when file type is correct" name="FileUpload component renders filename when file type is correct" time="0.002">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 0.5, position: -0.5 } should return #80800080" name="getHexTricolorGradientColorWithAlpha and position { alpha: 0.5, position: -0.5 } should return #80800080" time="0">
+  </testsuite>
+  <testsuite name="ReactionDrawer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.463" tests="3">
+    <testcase classname="ReactionDrawer - component should show reference group with source=" name="ReactionDrawer - component should show reference group with source=" time="0.023">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 0, position: -0.25 } should return #40BF0000" name="getHexTricolorGradientColorWithAlpha and position { alpha: 0, position: -0.25 } should return #40BF0000" time="0.001">
+    <testcase classname="ReactionDrawer - component should show reference group with source=source1" name="ReactionDrawer - component should show reference group with source=source1" time="0.006">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0 } should return #00FF00ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0 } should return #00FF00ff" time="0">
+    <testcase classname="ReactionDrawer - component should show reference group with source=source2" name="ReactionDrawer - component should show reference group with source=source2" time="0.002">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.25 } should return #00BF40ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.25 } should return #00BF40ff" time="0">
+  </testsuite>
+  <testsuite name="getCompartmentPathwaysCheckboxElements" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.153" tests="5">
+    <testcase classname="getCompartmentPathwaysCheckboxElements should return an empty array when given an empty items array" name="getCompartmentPathwaysCheckboxElements should return an empty array when given an empty items array" time="0.003">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.5 } should return #008080ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.5 } should return #008080ff" time="0">
+    <testcase classname="getCompartmentPathwaysCheckboxElements should correctly extract unique names and corresponding ids from items" name="getCompartmentPathwaysCheckboxElements should correctly extract unique names and corresponding ids from items" time="0.001">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.75 } should return #0040BFff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.75 } should return #0040BFff" time="0">
+    <testcase classname="getCompartmentPathwaysCheckboxElements should correctly extract unique names and corresponding ids from items and sorts them alphabetically" name="getCompartmentPathwaysCheckboxElements should correctly extract unique names and corresponding ids from items and sorts them alphabetically" time="0">
+    </testcase>
+    <testcase classname="getModelsIds should return an empty array if models are not provided" name="getModelsIds should return an empty array if models are not provided" time="0">
     </testcase>
-    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 1 } should return #0000FFff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 1 } should return #0000FFff" time="0.001">
+    <testcase classname="getModelsIds should return an array of model IDs" name="getModelsIds should return an array of model IDs" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="getElementsByPoint - utils" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.181" tests="3">
-    <testcase classname="getElementsByPoint - utils should return data when data response from API is valid" name="getElementsByPoint - utils should return data when data response from API is valid" time="0.004">
+  <testsuite name="getPolygonLatitudeCoordinates" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.149" tests="3">
+    <testcase classname="getPolygonLatitudeCoordinates should return the correct latitude coordinates for width=80, nOverlays=3, xMin=2137.5, and overlayIndexBasedOnOrder=2" name="getPolygonLatitudeCoordinates should return the correct latitude coordinates for width=80, nOverlays=3, xMin=2137.5, and overlayIndexBasedOnOrder=2" time="0.001">
     </testcase>
-    <testcase classname="getElementsByPoint - utils should return undefined when data response from API is not valid " name="getElementsByPoint - utils should return undefined when data response from API is not valid " time="0.006">
+    <testcase classname="getPolygonLatitudeCoordinates should return the correct latitude coordinates for width=120, nOverlays=6, xMin=2137.5, and overlayIndexBasedOnOrder=5" name="getPolygonLatitudeCoordinates should return the correct latitude coordinates for width=120, nOverlays=6, xMin=2137.5, and overlayIndexBasedOnOrder=5" time="0">
     </testcase>
-    <testcase classname="getElementsByPoint - utils should return empty array when data response from API is empty" name="getElementsByPoint - utils should return empty array when data response from API is empty" time="0.001">
+    <testcase classname="getPolygonLatitudeCoordinates should return the correct latitude coordinates for width=40, nOverlays=1, xMin=2137.5, and overlayIndexBasedOnOrder=0" name="getPolygonLatitudeCoordinates should return the correct latitude coordinates for width=40, nOverlays=1, xMin=2137.5, and overlayIndexBasedOnOrder=0" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="chemicals thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.223" tests="2">
-    <testcase classname="chemicals thunks getChemiclas should return data when data response from API is valid" name="chemicals thunks getChemiclas should return data when data response from API is valid" time="0.019">
+  <testsuite name="map middleware" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.348" tests="3">
+    <testcase classname="map middleware on listen when model is valid and different than current should dispatch setMapData, map/setMapData" name="map middleware on listen when model is valid and different than current should dispatch setMapData, map/setMapData" time="0.002">
+    </testcase>
+    <testcase classname="map middleware on listen when model is valid and identical with current should NOT dispatch setMapData" name="map middleware on listen when model is valid and identical with current should NOT dispatch setMapData" time="0">
     </testcase>
-    <testcase classname="chemicals thunks getChemiclas should return undefined when data response from API is not valid " name="chemicals thunks getChemiclas should return undefined when data response from API is not valid " time="0.007">
+    <testcase classname="map middleware on listen when model is NOT valid should NOT dispatch setMapData" name="map middleware on listen when model is NOT valid should NOT dispatch setMapData" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getUpdatedMapData - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.17" tests="3">
-    <testcase classname="getUpdatedMapData - util when model does not have default values should return correct value" name="getUpdatedMapData - util when model does not have default values should return correct value" time="0.001">
+  <testsuite name="UserAvatar - component " errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.287" tests="1">
+    <testcase classname="UserAvatar - component  should render placeholder image" name="UserAvatar - component  should render placeholder image" time="0.014">
     </testcase>
-    <testcase classname="getUpdatedMapData - util when model has default falsy values should return correct value" name="getUpdatedMapData - util when model has default falsy values should return correct value" time="0">
+  </testsuite>
+  <testsuite name="checkIfIsActionValid - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.141" tests="3">
+    <testcase classname="checkIfIsActionValid - util when action payload has model id equal to current should return false" name="checkIfIsActionValid - util when action payload has model id equal to current should return false" time="0.001">
     </testcase>
-    <testcase classname="getUpdatedMapData - util when model has default truthy values should return correct value" name="getUpdatedMapData - util when model has default truthy values should return correct value" time="0">
+    <testcase classname="checkIfIsActionValid - util when action payload has model id different than current should return true" name="checkIfIsActionValid - util when action payload has model id different than current should return true" time="0">
+    </testcase>
+    <testcase classname="checkIfIsActionValid - util when action payload has NOT model id should return true" name="checkIfIsActionValid - util when action payload has NOT model id should return true" time="0">
+    </testcase>
+  </testsuite>
+  <testsuite name="compartmentPathways reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:46" time="0.264" tests="4">
+    <testcase classname="compartmentPathways reducer should match initial state" name="compartmentPathways reducer should match initial state" time="0.002">
+    </testcase>
+    <testcase classname="compartmentPathways reducer should update store on loading getCompartmentPathways query" name="compartmentPathways reducer should update store on loading getCompartmentPathways query" time="0.002">
+    </testcase>
+    <testcase classname="compartmentPathways reducer should update store after succesful getCompartmentPathways query" name="compartmentPathways reducer should update store after succesful getCompartmentPathways query" time="0.006">
+    </testcase>
+    <testcase classname="compartmentPathways reducer should update store after failed getCompartmentPathways query" name="compartmentPathways reducer should update store after failed getCompartmentPathways query" time="0.073">
+    </testcase>
+  </testsuite>
+  <testsuite name="roundToTwoDiggits" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.13" tests="5">
+    <testcase classname="roundToTwoDiggits should round a positive number with more than two decimal places to two decimal places" name="roundToTwoDiggits should round a positive number with more than two decimal places to two decimal places" time="0.013">
+    </testcase>
+    <testcase classname="roundToTwoDiggits should round a negative number with more than two decimal places to two decimal places" name="roundToTwoDiggits should round a negative number with more than two decimal places to two decimal places" time="0">
+    </testcase>
+    <testcase classname="roundToTwoDiggits should round a number with exactly two decimal places to two decimal places" name="roundToTwoDiggits should round a number with exactly two decimal places to two decimal places" time="0.001">
+    </testcase>
+    <testcase classname="roundToTwoDiggits should round a number with less than two decimal places to two decimal places" name="roundToTwoDiggits should round a number with less than two decimal places to two decimal places" time="0">
+    </testcase>
+    <testcase classname="roundToTwoDiggits should round zero to two decimal places" name="roundToTwoDiggits should round zero to two decimal places" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getCanvasIcon - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.256" tests="13">
+  <testsuite name="getCanvasIcon - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.13" tests="13">
     <testcase classname="getCanvasIcon - util getTextWidth - subUtil on value=1 should return 6.25" name="getCanvasIcon - util getTextWidth - subUtil on value=1 should return 6.25" time="0.001">
     </testcase>
     <testcase classname="getCanvasIcon - util getTextWidth - subUtil on value=7 should return 8.333" name="getCanvasIcon - util getTextWidth - subUtil on value=7 should return 8.333" time="0">
@@ -694,13 +996,13 @@
     </testcase>
     <testcase classname="getCanvasIcon - util getTextPosition - subUtil on textWidth=532 textHeight=443 should return x=-253.5 y=-164.4" name="getCanvasIcon - util getTextPosition - subUtil on textWidth=532 textHeight=443 should return x=-253.5 y=-164.4" time="0">
     </testcase>
-    <testcase classname="getCanvasIcon - util getTextPosition - subUtil on textWidth=10 textHeight=0 should return x=7.5 y=12.8" name="getCanvasIcon - util getTextPosition - subUtil on textWidth=10 textHeight=0 should return x=7.5 y=12.8" time="0.001">
+    <testcase classname="getCanvasIcon - util getTextPosition - subUtil on textWidth=10 textHeight=0 should return x=7.5 y=12.8" name="getCanvasIcon - util getTextPosition - subUtil on textWidth=10 textHeight=0 should return x=7.5 y=12.8" time="0">
     </testcase>
     <testcase classname="getCanvasIcon - util getTextPosition - subUtil on textWidth=0 textHeight=10 should return x=12.5 y=8.8" name="getCanvasIcon - util getTextPosition - subUtil on textWidth=0 textHeight=10 should return x=12.5 y=8.8" time="0.001">
     </testcase>
     <testcase classname="getCanvasIcon - util getTextPosition - subUtil on textWidth=0 textHeight=0 should return x=12.5 y=12.8" name="getCanvasIcon - util getTextPosition - subUtil on textWidth=0 textHeight=0 should return x=12.5 y=12.8" time="0">
     </testcase>
-    <testcase classname="getCanvasIcon - util drawPinOnCanvas - subUtil should run set fillStyle with color" name="getCanvasIcon - util drawPinOnCanvas - subUtil should run set fillStyle with color" time="0.004">
+    <testcase classname="getCanvasIcon - util drawPinOnCanvas - subUtil should run set fillStyle with color" name="getCanvasIcon - util drawPinOnCanvas - subUtil should run set fillStyle with color" time="0.001">
     </testcase>
     <testcase classname="getCanvasIcon - util drawPinOnCanvas - subUtil should run fill method with valid arguments" name="getCanvasIcon - util drawPinOnCanvas - subUtil should run fill method with valid arguments" time="0.001">
     </testcase>
@@ -709,53 +1011,61 @@
     <testcase classname="getCanvasIcon - util drawNumberOnCanvas - subUtil should run fillText once with valid args" name="getCanvasIcon - util drawNumberOnCanvas - subUtil should run fillText once with valid args" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="expandHexToFullFormatIfItsShorthanded" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.128" tests="11">
-    <testcase classname="expandHexToFullFormatIfItsShorthanded should expand short-handed hex string to full format" name="expandHexToFullFormatIfItsShorthanded should expand short-handed hex string to full format" time="0.002">
+  <testsuite name="chemicals thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.189" tests="2">
+    <testcase classname="chemicals thunks getChemiclas should return data when data response from API is valid" name="chemicals thunks getChemiclas should return data when data response from API is valid" time="0.029">
     </testcase>
-    <testcase classname="expandHexToFullFormatIfItsShorthanded should not modify full-format hex string" name="expandHexToFullFormatIfItsShorthanded should not modify full-format hex string" time="0">
+    <testcase classname="chemicals thunks getChemiclas should return undefined when data response from API is not valid " name="chemicals thunks getChemiclas should return undefined when data response from API is not valid " time="0.005">
     </testcase>
-    <testcase classname="expandHexToFullFormatIfItsShorthanded should handle hex string without leading #" name="expandHexToFullFormatIfItsShorthanded should handle hex string without leading #" time="0">
+  </testsuite>
+  <testsuite name="bioEntityContents thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.272" tests="2">
+    <testcase classname="bioEntityContents thunks getBioEntityContents should return data when data response from API is valid" name="bioEntityContents thunks getBioEntityContents should return data when data response from API is valid" time="0.016">
     </testcase>
-    <testcase classname="expandHexToFullFormatIfItsShorthanded should return original string if it does not match short-hand regex" name="expandHexToFullFormatIfItsShorthanded should return original string if it does not match short-hand regex" time="0">
+    <testcase classname="bioEntityContents thunks getBioEntityContents should return undefined when data response from API is not valid " name="bioEntityContents thunks getBioEntityContents should return undefined when data response from API is not valid " time="0.013">
     </testcase>
-    <testcase classname="hexToRgb should convert valid hex string to RGB object" name="hexToRgb should convert valid hex string to RGB object" time="0">
+  </testsuite>
+  <testsuite name="calculateOverlaysOrder" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.144" tests="5">
+    <testcase classname="calculateOverlaysOrder should return valid overlays order" name="calculateOverlaysOrder should return valid overlays order" time="0.011">
     </testcase>
-    <testcase classname="hexToRgb should return null for invalid hex string" name="hexToRgb should return null for invalid hex string" time="0.001">
+    <testcase classname="calculateOverlaysOrder should return valid overlays order" name="calculateOverlaysOrder should return valid overlays order" time="0.001">
     </testcase>
-    <testcase classname="hexToRgb should handle hex string without leading #" name="hexToRgb should handle hex string without leading #" time="0">
+    <testcase classname="calculateOverlaysOrder should return valid overlays order" name="calculateOverlaysOrder should return valid overlays order" time="0">
     </testcase>
-    <testcase classname="hexToRgb should return null for hex string with invalid characters" name="hexToRgb should return null for hex string with invalid characters" time="0">
+    <testcase classname="calculateOverlaysOrder should return valid overlays order" name="calculateOverlaysOrder should return valid overlays order" time="0">
     </testcase>
-    <testcase classname="hexToRgb should convert short-handed RGB hex string without leading # to RGB object" name="hexToRgb should convert short-handed RGB hex string without leading # to RGB object" time="0">
+    <testcase classname="calculateOverlaysOrder should return valid overlays order" name="calculateOverlaysOrder should return valid overlays order" time="0">
     </testcase>
-    <testcase classname="hexToRgb should handle short-handed RGB hex string with invalid characters" name="hexToRgb should handle short-handed RGB hex string with invalid characters" time="0">
+  </testsuite>
+  <testsuite name="processOverlayContentChange" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.128" tests="2">
+    <testcase classname="processOverlayContentChange should parse overlay file content and invoke the handleOverlayChange callback for valid lines" name="processOverlayContentChange should parse overlay file content and invoke the handleOverlayChange callback for valid lines" time="0.006">
     </testcase>
-    <testcase classname="hexToRgb should handle short-handed RGB hex string with invalid characters and without leading #" name="hexToRgb should handle short-handed RGB hex string with invalid characters and without leading #" time="0.001">
+    <testcase classname="processOverlayContentChange should handle lines with invalid format without calling handleOverlayChange" name="processOverlayContentChange should handle lines with invalid format without calling handleOverlayChange" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="drawer reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.187" tests="10">
-    <testcase classname="drawer reducer should match initial state" name="drawer reducer should match initial state" time="0.002">
-    </testcase>
-    <testcase classname="drawer reducer should update the store after openDrawer action" name="drawer reducer should update the store after openDrawer action" time="0.002">
+  <testsuite name="reactions thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.196" tests="3">
+    <testcase classname="reactions thunks getReactionsByIds should return data when data response from API is valid" name="reactions thunks getReactionsByIds should return data when data response from API is valid" time="0.017">
     </testcase>
-    <testcase classname="drawer reducer should update the store after openSearchDrawerWithSelectedTab action" name="drawer reducer should update the store after openSearchDrawerWithSelectedTab action" time="0.001">
+    <testcase classname="reactions thunks getReactionsByIds should return undefined when data response from API is not valid " name="reactions thunks getReactionsByIds should return undefined when data response from API is not valid " time="0.006">
     </testcase>
-    <testcase classname="drawer reducer should update the store after openSubmapsDrawer action" name="drawer reducer should update the store after openSubmapsDrawer action" time="0">
+    <testcase classname="reactions thunks getReactionsByIds should return empty array when data response from API is empty" name="reactions thunks getReactionsByIds should return empty array when data response from API is empty" time="0.001">
     </testcase>
-    <testcase classname="drawer reducer should update the store after selectTab action" name="drawer reducer should update the store after selectTab action" time="0.001">
+  </testsuite>
+  <testsuite name="degreesToRadians - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.137" tests="3">
+    <testcase classname="degreesToRadians - util coverts positive degree to close positive radians" name="degreesToRadians - util coverts positive degree to close positive radians" time="0.001">
     </testcase>
-    <testcase classname="drawer reducer should update the store after closeDrawerReducer action" name="drawer reducer should update the store after closeDrawerReducer action" time="0.001">
+    <testcase classname="degreesToRadians - util coverts negative degree to close negative radians" name="degreesToRadians - util coverts negative degree to close negative radians" time="0.001">
     </testcase>
-    <testcase classname="drawer reducer should update the store after displayDrugsList action" name="drawer reducer should update the store after displayDrugsList action" time="0.001">
+    <testcase classname="degreesToRadians - util coverts zero degree to zero radians" name="degreesToRadians - util coverts zero degree to zero radians" time="0">
     </testcase>
-    <testcase classname="drawer reducer should update the store after displayChemicalsList action" name="drawer reducer should update the store after displayChemicalsList action" time="0.001">
+  </testsuite>
+  <testsuite name="compartmentPathways thunk" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.232" tests="3">
+    <testcase classname="compartmentPathways thunk should handle query getCompartmentPathways properly when models are undefined" name="compartmentPathways thunk should handle query getCompartmentPathways properly when models are undefined" time="0.004">
     </testcase>
-    <testcase classname="drawer reducer should update the store after displayGroupedSearchResults action" name="drawer reducer should update the store after displayGroupedSearchResults action" time="0">
+    <testcase classname="compartmentPathways thunk should handle sendCompartmentPathwaysIds request properly if it is more than 100 ids" name="compartmentPathways thunk should handle sendCompartmentPathwaysIds request properly if it is more than 100 ids" time="0.009">
     </testcase>
-    <testcase classname="drawer reducer should update the store after displayEntityDetails action" name="drawer reducer should update the store after displayEntityDetails action" time="0.002">
+    <testcase classname="compartmentPathways thunk should not do a network request sendCompartmentPathwaysIds if it is less than 100 ids" name="compartmentPathways thunk should not do a network request sendCompartmentPathwaysIds if it is less than 100 ids" time="0.002">
     </testcase>
   </testsuite>
-  <testsuite name="getSearchResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.195" tests="3">
+  <testsuite name="getSearchResults - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.189" tests="3">
     <testcase classname="getSearchResults - util when results type is ALIAS returns valid array of objects" name="getSearchResults - util when results type is ALIAS returns valid array of objects" time="0.003">
     </testcase>
     <testcase classname="getSearchResults - util when results type is REACTION returns valid array of objects" name="getSearchResults - util when results type is REACTION returns valid array of objects" time="0.001">
@@ -763,256 +1073,300 @@
     <testcase classname="getSearchResults - util when results type is invalid should return undefined" name="getSearchResults - util when results type is invalid should return undefined" time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="models thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.178" tests="2">
-    <testcase classname="models thunks getModels should return data when data response from API is valid" name="models thunks getModels should return data when data response from API is valid" time="0.008">
+  <testsuite name="handleDataReset" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.267" tests="1">
+    <testcase classname="handleDataReset should dispatch reset actions" name="handleDataReset should dispatch reset actions" time="0.002">
     </testcase>
-    <testcase classname="models thunks getModels should return undefined when data response from API is not valid " name="models thunks getModels should return undefined when data response from API is not valid " time="0.009">
+  </testsuite>
+  <testsuite name="drugs thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.253" tests="2">
+    <testcase classname="drugs thunks getDrugs should return data when data response from API is valid" name="drugs thunks getDrugs should return data when data response from API is valid" time="0.025">
+    </testcase>
+    <testcase classname="drugs thunks getDrugs should return undefined when data response from API is not valid " name="drugs thunks getDrugs should return undefined when data response from API is not valid " time="0.005">
     </testcase>
   </testsuite>
-  <testsuite name="getColorByAvailableProperties" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.169" tests="4">
-    <testcase classname="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value equal to 0" name="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value equal to 0" time="0.005">
+  <testsuite name="backgrounds reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.303" tests="4">
+    <testcase classname="backgrounds reducer should match initial state" name="backgrounds reducer should match initial state" time="0.002">
     </testcase>
-    <testcase classname="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value" name="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value" time="0">
+    <testcase classname="backgrounds reducer should update store after succesfull getAllBackgroundsByProjectId query" name="backgrounds reducer should update store after succesfull getAllBackgroundsByProjectId query" time="0.005">
     </testcase>
-    <testcase classname="getColorByAvailableProperties should return the result of convertDecimalToHex if entity has a color" name="getColorByAvailableProperties should return the result of convertDecimalToHex if entity has a color" time="0">
+    <testcase classname="backgrounds reducer should update store after failed getAllBackgroundsByProjectId query" name="backgrounds reducer should update store after failed getAllBackgroundsByProjectId query" time="0.09">
     </testcase>
-    <testcase classname="getColorByAvailableProperties should return the default color if entity has neither a value nor a color" name="getColorByAvailableProperties should return the default color if entity has neither a value nor a color" time="0">
+    <testcase classname="backgrounds reducer should update store on loading getAllBackgroundsByProjectId query" name="backgrounds reducer should update store on loading getAllBackgroundsByProjectId query" time="0.003">
     </testcase>
   </testsuite>
-  <testsuite name="interpolateColor" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.156" tests="5">
-    <testcase classname="interpolateColor should return color1 for position 0" name="interpolateColor should return color1 for position 0" time="0.003">
-    </testcase>
-    <testcase classname="interpolateColor should return color2 for position 1" name="interpolateColor should return color2 for position 1" time="0">
+  <testsuite name="models thunks" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.212" tests="2">
+    <testcase classname="models thunks getModels should return data when data response from API is valid" name="models thunks getModels should return data when data response from API is valid" time="0.011">
     </testcase>
-    <testcase classname="interpolateColor should interpolate colors for position 0.25" name="interpolateColor should interpolate colors for position 0.25" time="0.001">
+    <testcase classname="models thunks getModels should return undefined when data response from API is not valid " name="models thunks getModels should return undefined when data response from API is not valid " time="0.008">
     </testcase>
-    <testcase classname="interpolateColor should interpolate colors for position 0.5" name="interpolateColor should interpolate colors for position 0.5" time="0">
+  </testsuite>
+  <testsuite name="createOverlayGeometryFeature" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.212" tests="2">
+    <testcase classname="createOverlayGeometryFeature should create a feature with the correct geometry and style" name="createOverlayGeometryFeature should create a feature with the correct geometry and style" time="0.003">
     </testcase>
-    <testcase classname="interpolateColor should interpolate colors for position 0.75" name="interpolateColor should interpolate colors for position 0.75" time="0">
+    <testcase classname="createOverlayGeometryFeature should create a feature with the correct geometry and style when using a different color" name="createOverlayGeometryFeature should create a feature with the correct geometry and style when using a different color" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="getUpdatedModel - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.15" tests="3">
-    <testcase classname="getUpdatedModel - util when payload has valid modelId returns model object" name="getUpdatedModel - util when payload has valid modelId returns model object" time="0.002">
+  <testsuite name="project reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.311" tests="4">
+    <testcase classname="project reducer should match initial state" name="project reducer should match initial state" time="0.004">
     </testcase>
-    <testcase classname="getUpdatedModel - util when payload has invalid modelId returns undefined" name="getUpdatedModel - util when payload has invalid modelId returns undefined" time="0">
+    <testcase classname="project reducer should update store after succesfull getProjectById query" name="project reducer should update store after succesfull getProjectById query" time="0.006">
     </testcase>
-    <testcase classname="getUpdatedModel - util when payload does not have modelId returns undefined" name="getUpdatedModel - util when payload does not have modelId returns undefined" time="0">
+    <testcase classname="project reducer should update store after failed getProjectById query" name="project reducer should update store after failed getProjectById query" time="0.1">
+    </testcase>
+    <testcase classname="project reducer should update store on loading getProjectById query" name="project reducer should update store on loading getProjectById query" time="0.006">
     </testcase>
   </testsuite>
-  <testsuite name="rgbToHex - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.16" tests="2">
-    <testcase classname="rgbToHex - util should convert RGB values to hex format" name="rgbToHex - util should convert RGB values to hex format" time="0.001">
+  <testsuite name="drawer reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.236" tests="10">
+    <testcase classname="drawer reducer should match initial state" name="drawer reducer should match initial state" time="0.008">
     </testcase>
-    <testcase classname="rgbToHex - util should handle invalid input values" name="rgbToHex - util should handle invalid input values" time="0.005">
+    <testcase classname="drawer reducer should update the store after openDrawer action" name="drawer reducer should update the store after openDrawer action" time="0.002">
     </testcase>
-  </testsuite>
-  <testsuite name="getFilteredReferences - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.171" tests="3">
-    <testcase classname="getFilteredReferences - subUtil should return valid filtered references" name="getFilteredReferences - subUtil should return valid filtered references" time="0.001">
+    <testcase classname="drawer reducer should update the store after openSearchDrawerWithSelectedTab action" name="drawer reducer should update the store after openSearchDrawerWithSelectedTab action" time="0.001">
     </testcase>
-    <testcase classname="getFilteredReferences - subUtil should return valid filtered references" name="getFilteredReferences - subUtil should return valid filtered references" time="0">
+    <testcase classname="drawer reducer should update the store after openSubmapsDrawer action" name="drawer reducer should update the store after openSubmapsDrawer action" time="0.001">
     </testcase>
-    <testcase classname="getFilteredReferences - subUtil should return valid filtered references" name="getFilteredReferences - subUtil should return valid filtered references" time="0.001">
+    <testcase classname="drawer reducer should update the store after selectTab action" name="drawer reducer should update the store after selectTab action" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="getFinalImageSize - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.138" tests="4">
-    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0.001">
+    <testcase classname="drawer reducer should update the store after closeDrawerReducer action" name="drawer reducer should update the store after closeDrawerReducer action" time="0.001">
     </testcase>
-    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0.001">
+    <testcase classname="drawer reducer should update the store after displayDrugsList action" name="drawer reducer should update the store after displayDrugsList action" time="0">
     </testcase>
-    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0">
+    <testcase classname="drawer reducer should update the store after displayChemicalsList action" name="drawer reducer should update the store after displayChemicalsList action" time="0.001">
     </testcase>
-    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0">
+    <testcase classname="drawer reducer should update the store after displayGroupedSearchResults action" name="drawer reducer should update the store after displayGroupedSearchResults action" time="0.001">
+    </testcase>
+    <testcase classname="drawer reducer should update the store after displayEntityDetails action" name="drawer reducer should update the store after displayEntityDetails action" time="0.002">
     </testcase>
   </testsuite>
-  <testsuite name="validateDataUsingZodSchema - utils" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.163" tests="2">
-    <testcase classname="validateDataUsingZodSchema - utils should return true for given cases" name="validateDataUsingZodSchema - utils should return true for given cases" time="0.002">
+  <testsuite name="getPointOffset - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.158" tests="3">
+    <testcase classname="getPointOffset - util when all args are valid should return valid point origin and shifted values" name="getPointOffset - util when all args are valid should return valid point origin and shifted values" time="0.002">
     </testcase>
-    <testcase classname="validateDataUsingZodSchema - utils should return false for given cases" name="validateDataUsingZodSchema - utils should return false for given cases" time="0.005">
+    <testcase classname="getPointOffset - util when all args are valid should not throw error" name="getPointOffset - util when all args are valid should not throw error" time="0">
+    </testcase>
+    <testcase classname="getPointOffset - util when mapSize arg is invalid should throw error" name="getPointOffset - util when mapSize arg is invalid should throw error" time="0.008">
     </testcase>
   </testsuite>
-  <testsuite name="handleSearchResultAction - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.125" tests="2">
-    <testcase classname="handleSearchResultAction - util on ALIAS search results should fire handleAliasResults" name="handleSearchResultAction - util on ALIAS search results should fire handleAliasResults" time="0.001">
+  <testsuite name="convertDecimalToHexColor - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.127" tests="2">
+    <testcase classname="convertDecimalToHexColor - util should convert small decimal" name="convertDecimalToHexColor - util should convert small decimal" time="0.001">
     </testcase>
-    <testcase classname="handleSearchResultAction - util on REACTION search results should fire handleReactionResults" name="handleSearchResultAction - util on REACTION search results should fire handleReactionResults" time="0">
+    <testcase classname="convertDecimalToHexColor - util should convert negative decimal" name="convertDecimalToHexColor - util should convert negative decimal" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="cookieBanner reducers" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.138" tests="4">
-    <testcase classname="cookieBanner reducers should match initial state" name="cookieBanner reducers should match initial state" time="0.003">
+  <testsuite name="getCanvas" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.108" tests="1">
+    <testcase classname="getCanvas should return HTMLCanvasElement with valid size on positive params" name="getCanvas should return HTMLCanvasElement with valid size on positive params" time="0.002">
     </testcase>
-    <testcase classname="cookieBanner reducers should handle showBanner action" name="cookieBanner reducers should handle showBanner action" time="0.001">
+  </testsuite>
+  <testsuite name="map thunks - utils" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.275" tests="10">
+    <testcase classname="map thunks - utils getBackgroundId should return backgroundId value from queryData" name="map thunks - utils getBackgroundId should return backgroundId value from queryData" time="0.001">
     </testcase>
-    <testcase classname="cookieBanner reducers should handle hideBanner action" name="cookieBanner reducers should handle hideBanner action" time="0">
+    <testcase classname="map thunks - utils getBackgroundId should return main map background id if query param does not include background id" name="map thunks - utils getBackgroundId should return main map background id if query param does not include background id" time="0">
     </testcase>
-    <testcase classname="cookieBanner reducers should handle acceptCookies action" name="cookieBanner reducers should handle acceptCookies action" time="0">
+    <testcase classname="map thunks - utils getBackgroundId should return default value (0) if query data does not include backgroundId and could not find main background in the store" name="map thunks - utils getBackgroundId should return default value (0) if query data does not include backgroundId and could not find main background in the store" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="getMapTileUrl - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.14" tests="2">
-    <testcase classname="getMapTileUrl - util when projectDirectory is empty should return empty value" name="getMapTileUrl - util when projectDirectory is empty should return empty value" time="0">
+    <testcase classname="map thunks - utils getInitMapPosition should return valid map position from query params " name="map thunks - utils getInitMapPosition should return valid map position from query params " time="0">
     </testcase>
-    <testcase classname="getMapTileUrl - util when all args are valid should return correct value" name="getMapTileUrl - util when all args are valid should return correct value" time="0">
+    <testcase classname="map thunks - utils getInitMapPosition should return valid map position if query params do not include position" name="map thunks - utils getInitMapPosition should return valid map position if query params do not include position" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="getGroupedReferences - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.123" tests="3">
-    <testcase classname="getGroupedReferences - util should return correct grouped references" name="getGroupedReferences - util should return correct grouped references" time="0.001">
+    <testcase classname="map thunks - utils getInitMapPosition should return default map position" name="map thunks - utils getInitMapPosition should return default map position" time="0.001">
     </testcase>
-    <testcase classname="getGroupedReferences - util should return correct grouped references" name="getGroupedReferences - util should return correct grouped references" time="0">
+    <testcase classname="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelid when modelId is provided in queryData" name="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelid when modelId is provided in queryData" time="0">
     </testcase>
-    <testcase classname="getGroupedReferences - util should return correct grouped references" name="getGroupedReferences - util should return correct grouped references" time="0">
+    <testcase classname="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelId if query params do not include modelId" name="map thunks - utils getInitMapSizeAndModelId should return correct mapsize and modelId if query params do not include modelId" time="0">
+    </testcase>
+    <testcase classname="map thunks - utils getOpenedMaps  should return main map only" name="map thunks - utils getOpenedMaps  should return main map only" time="0">
+    </testcase>
+    <testcase classname="map thunks - utils getOpenedMaps  should return main map and opened submap" name="map thunks - utils getOpenedMaps  should return main map and opened submap" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="checkIfIsActionValid - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.117" tests="3">
-    <testcase classname="checkIfIsActionValid - util when action payload has model id equal to current should return false" name="checkIfIsActionValid - util when action payload has model id equal to current should return false" time="0.001">
+  <testsuite name="interpolateThreeColors - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.123" tests="9">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -1 should return { r: 255, g: 0, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -1 should return { r: 255, g: 0, b: 0 }" time="0.001">
     </testcase>
-    <testcase classname="checkIfIsActionValid - util when action payload has model id different than current should return true" name="checkIfIsActionValid - util when action payload has model id different than current should return true" time="0">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.75 should return { r: 191, g: 64, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.75 should return { r: 191, g: 64, b: 0 }" time="0">
     </testcase>
-    <testcase classname="checkIfIsActionValid - util when action payload has NOT model id should return true" name="checkIfIsActionValid - util when action payload has NOT model id should return true" time="0">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.5 should return { r: 128, g: 128, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.5 should return { r: 128, g: 128, b: 0 }" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="getSearchValuesArray - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.126" tests="6">
-    <testcase classname="getSearchValuesArray - util should return array of values when string has ; separator" name="getSearchValuesArray - util should return array of values when string has ; separator" time="0.001">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.25 should return { r: 64, g: 191, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.25 should return { r: 64, g: 191, b: 0 }" time="0">
     </testcase>
-    <testcase classname="getSearchValuesArray - util should trim values to seven if more values are provided" name="getSearchValuesArray - util should trim values to seven if more values are provided" time="0">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0 should return { r: 0, g: 255, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0 should return { r: 0, g: 255, b: 0 }" time="0">
     </testcase>
-    <testcase classname="getSearchValuesArray - util should return single value in array if no ; was passed in string" name="getSearchValuesArray - util should return single value in array if no ; was passed in string" time="0.001">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.25 should return { r: 0, g: 191, b: 64 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.25 should return { r: 0, g: 191, b: 64 }" time="0">
     </testcase>
-    <testcase classname="getDefaultSearchTab for [ &apos;nadh&apos;, &apos;o2&apos;, &apos;mp3&apos; ] should return nadh" name="getDefaultSearchTab for [ &apos;nadh&apos;, &apos;o2&apos;, &apos;mp3&apos; ] should return nadh" time="0">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.5 should return { r: 0, g: 128, b: 128 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.5 should return { r: 0, g: 128, b: 128 }" time="0">
     </testcase>
-    <testcase classname="getDefaultSearchTab for [ &apos;o2&apos; ] should return o2" name="getDefaultSearchTab for [ &apos;o2&apos; ] should return o2" time="0">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.75 should return { r: 0, g: 64, b: 191 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.75 should return { r: 0, g: 64, b: 191 }" time="0">
     </testcase>
-    <testcase classname="getDefaultSearchTab for [ &apos;&apos; ] should return " name="getDefaultSearchTab for [ &apos;&apos; ] should return " time="0">
+    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 1 should return { r: 0, g: 0, b: 255 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 1 should return { r: 0, g: 0, b: 255 }" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="boundNumber - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.116" tests="3">
-    <testcase classname="boundNumber - util should return valid bounded number | v = 1, minMax = (0, 2), final = 1" name="boundNumber - util should return valid bounded number | v = 1, minMax = (0, 2), final = 1" time="0.001">
+  <testsuite name="radiansToDegrees - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.103" tests="3">
+    <testcase classname="radiansToDegrees - util coverts positive radian to close positive degrees" name="radiansToDegrees - util coverts positive radian to close positive degrees" time="0.001">
     </testcase>
-    <testcase classname="boundNumber - util should return valid bounded number | v = 1, minMax = (2, 2), final = 2" name="boundNumber - util should return valid bounded number | v = 1, minMax = (2, 2), final = 2" time="0">
+    <testcase classname="radiansToDegrees - util coverts negative radian to close negative degrees" name="radiansToDegrees - util coverts negative radian to close negative degrees" time="0">
     </testcase>
-    <testcase classname="boundNumber - util should return valid bounded number | v = 2, minMax = (0, 1), final = 1" name="boundNumber - util should return valid bounded number | v = 2, minMax = (0, 1), final = 1" time="0">
+    <testcase classname="radiansToDegrees - util coverts zero radian to zero degrees" name="radiansToDegrees - util coverts zero radian to zero degrees" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getCanvas" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.111" tests="1">
-    <testcase classname="getCanvas should return HTMLCanvasElement with valid size on positive params" name="getCanvas should return HTMLCanvasElement with valid size on positive params" time="0.003">
+  <testsuite name="parseQueryToTypes" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.124" tests="1">
+    <testcase classname="parseQueryToTypes should return valid data" name="parseQueryToTypes should return valid data" time="0.002">
     </testcase>
   </testsuite>
-  <testsuite name="getTruthyObjectOrUndefined - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.124" tests="4">
-    <testcase classname="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is truthy" name="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is truthy" time="0.001">
+  <testsuite name="cookieBanner reducers" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.109" tests="4">
+    <testcase classname="cookieBanner reducers should match initial state" name="cookieBanner reducers should match initial state" time="0.003">
     </testcase>
-    <testcase classname="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is empty" name="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is empty" time="0">
+    <testcase classname="cookieBanner reducers should handle showBanner action" name="cookieBanner reducers should handle showBanner action" time="0">
     </testcase>
-    <testcase classname="getTruthyObjectOrUndefined - util shoud return undefined if the object is partially truthy" name="getTruthyObjectOrUndefined - util shoud return undefined if the object is partially truthy" time="0">
+    <testcase classname="cookieBanner reducers should handle hideBanner action" name="cookieBanner reducers should handle hideBanner action" time="0">
     </testcase>
-    <testcase classname="getTruthyObjectOrUndefined - util shoud return undefined if the objects&apos;s nested objects is partially truthy" name="getTruthyObjectOrUndefined - util shoud return undefined if the objects&apos;s nested objects is partially truthy" time="0">
+    <testcase classname="cookieBanner reducers should handle acceptCookies action" name="cookieBanner reducers should handle acceptCookies action" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="pointToLatLng - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.149" tests="3">
-    <testcase classname="pointToLatLng - util when mapSize arg is undefined should return fallback value" name="pointToLatLng - util when mapSize arg is undefined should return fallback value" time="0.018">
+  <testsuite name="groupBy - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.099" tests="2">
+    <testcase classname="groupBy - util should return valid data basing on predicate" name="groupBy - util should return valid data basing on predicate" time="0.002">
     </testcase>
-    <testcase classname="pointToLatLng - util when mapSize arg is invalid should return fallback value" name="pointToLatLng - util when mapSize arg is invalid should return fallback value" time="0.001">
+    <testcase classname="groupBy - util should return valid data basing on predicate" name="groupBy - util should return valid data basing on predicate" time="0">
     </testcase>
-    <testcase classname="pointToLatLng - util when all args are valid should return valid lat lng value" name="pointToLatLng - util when all args are valid should return valid lat lng value" time="0">
+  </testsuite>
+  <testsuite name="getElementsByPoint - utils" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.16" tests="3">
+    <testcase classname="getElementsByPoint - utils should return data when data response from API is valid" name="getElementsByPoint - utils should return data when data response from API is valid" time="0.003">
+    </testcase>
+    <testcase classname="getElementsByPoint - utils should return undefined when data response from API is not valid " name="getElementsByPoint - utils should return undefined when data response from API is not valid " time="0.004">
+    </testcase>
+    <testcase classname="getElementsByPoint - utils should return empty array when data response from API is empty" name="getElementsByPoint - utils should return empty array when data response from API is empty" time="0.014">
     </testcase>
   </testsuite>
-  <testsuite name="getPointOffset - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.125" tests="3">
-    <testcase classname="getPointOffset - util when all args are valid should return valid point origin and shifted values" name="getPointOffset - util when all args are valid should return valid point origin and shifted values" time="0.002">
+  <testsuite name="validateDataUsingZodSchema - utils" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.129" tests="2">
+    <testcase classname="validateDataUsingZodSchema - utils should return true for given cases" name="validateDataUsingZodSchema - utils should return true for given cases" time="0.002">
     </testcase>
-    <testcase classname="getPointOffset - util when all args are valid should not throw error" name="getPointOffset - util when all args are valid should not throw error" time="0">
+    <testcase classname="validateDataUsingZodSchema - utils should return false for given cases" name="validateDataUsingZodSchema - utils should return false for given cases" time="0.009">
     </testcase>
-    <testcase classname="getPointOffset - util when mapSize arg is invalid should throw error" name="getPointOffset - util when mapSize arg is invalid should throw error" time="0.005">
+  </testsuite>
+  <testsuite name="getFinalImageSize - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.128" tests="4">
+    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0.001">
+    </testcase>
+    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0.001">
+    </testcase>
+    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0">
+    </testcase>
+    <testcase classname="getFinalImageSize - util should return valid size and size factor" name="getFinalImageSize - util should return valid size and size factor" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="addAlphaToHexString" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.125" tests="5">
-    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, undefined ] should return #ff0000ff" name="addAlphaToHexString for [ &apos;#ff0000&apos;, undefined ] should return #ff0000ff" time="0.002">
+  <testsuite name="getHexTricolorGradientColorWithAlpha" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.145" tests="9">
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: -1 } should return #FF0000ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: -1 } should return #FF0000ff" time="0.003">
     </testcase>
-    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 1 ] should return #ff0000ff" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 1 ] should return #ff0000ff" time="0">
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 0.8, position: -0.75 } should return #BF4000cc" name="getHexTricolorGradientColorWithAlpha and position { alpha: 0.8, position: -0.75 } should return #BF4000cc" time="0">
     </testcase>
-    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.8 ] should return #ff0000cc" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.8 ] should return #ff0000cc" time="0">
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 0.5, position: -0.5 } should return #80800080" name="getHexTricolorGradientColorWithAlpha and position { alpha: 0.5, position: -0.5 } should return #80800080" time="0">
+    </testcase>
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 0, position: -0.25 } should return #40BF0000" name="getHexTricolorGradientColorWithAlpha and position { alpha: 0, position: -0.25 } should return #40BF0000" time="0">
+    </testcase>
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0 } should return #00FF00ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0 } should return #00FF00ff" time="0">
+    </testcase>
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.25 } should return #00BF40ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.25 } should return #00BF40ff" time="0">
     </testcase>
-    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.5 ] should return #ff000080" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.5 ] should return #ff000080" time="0.001">
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.5 } should return #008080ff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.5 } should return #008080ff" time="0.001">
     </testcase>
-    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 0 ] should return #ff000000" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 0 ] should return #ff000000" time="0">
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.75 } should return #0040BFff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 0.75 } should return #0040BFff" time="0">
+    </testcase>
+    <testcase classname="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 1 } should return #0000FFff" name="getHexTricolorGradientColorWithAlpha and position { alpha: 1, position: 1 } should return #0000FFff" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="interpolateThreeColors - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.161" tests="9">
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -1 should return { r: 255, g: 0, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -1 should return { r: 255, g: 0, b: 0 }" time="0.002">
+  <testsuite name="login thunk" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.169" tests="2">
+    <testcase classname="login thunk dispatches closeModal action on successful login with valid data" name="login thunk dispatches closeModal action on successful login with valid data" time="0.002">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.75 should return { r: 191, g: 64, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.75 should return { r: 191, g: 64, b: 0 }" time="0">
+    <testcase classname="login thunk does not dispatch closeModal action on failed login with invalid data" name="login thunk does not dispatch closeModal action on failed login with invalid data" time="0.003">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.5 should return { r: 128, g: 128, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.5 should return { r: 128, g: 128, b: 0 }" time="0.001">
+  </testsuite>
+  <testsuite name="getColorByAvailableProperties" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.156" tests="4">
+    <testcase classname="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value equal to 0" name="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value equal to 0" time="0.002">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.25 should return { r: 64, g: 191, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position -0.25 should return { r: 64, g: 191, b: 0 }" time="0">
+    <testcase classname="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value" name="getColorByAvailableProperties should return the result of getHexTricolorGradientColorWithAlpha if entity has a value" time="0">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0 should return { r: 0, g: 255, b: 0 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0 should return { r: 0, g: 255, b: 0 }" time="0">
+    <testcase classname="getColorByAvailableProperties should return the result of convertDecimalToHex if entity has a color" name="getColorByAvailableProperties should return the result of convertDecimalToHex if entity has a color" time="0">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.25 should return { r: 0, g: 191, b: 64 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.25 should return { r: 0, g: 191, b: 64 }" time="0">
+    <testcase classname="getColorByAvailableProperties should return the default color if entity has neither a value nor a color" name="getColorByAvailableProperties should return the default color if entity has neither a value nor a color" time="0.001">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.5 should return { r: 0, g: 128, b: 128 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.5 should return { r: 0, g: 128, b: 128 }" time="0.001">
+  </testsuite>
+  <testsuite name="pointToLatLng - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.183" tests="3">
+    <testcase classname="pointToLatLng - util when mapSize arg is undefined should return fallback value" name="pointToLatLng - util when mapSize arg is undefined should return fallback value" time="0.011">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.75 should return { r: 0, g: 64, b: 191 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 0.75 should return { r: 0, g: 64, b: 191 }" time="0">
+    <testcase classname="pointToLatLng - util when mapSize arg is invalid should return fallback value" name="pointToLatLng - util when mapSize arg is invalid should return fallback value" time="0.001">
     </testcase>
-    <testcase classname="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 1 should return { r: 0, g: 0, b: 255 }" name="interpolateThreeColors - util for linear gradient with range [-1,0,1]: left color (-1) {&quot;r&quot;:255,&quot;g&quot;:0,&quot;b&quot;:0}, middle color (0) {&quot;r&quot;:0,&quot;g&quot;:255,&quot;b&quot;:0} and right Color (1) {&quot;r&quot;:0,&quot;g&quot;:0,&quot;b&quot;:255} and position 1 should return { r: 0, g: 0, b: 255 }" time="0">
+    <testcase classname="pointToLatLng - util when all args are valid should return valid lat lng value" name="pointToLatLng - util when all args are valid should return valid lat lng value" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getOverviewImageLinkSize - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:23" time="0.132" tests="5">
-    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0.001">
+  <testsuite name="Overlay Bio Entity Reducers" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.216" tests="1">
+    <testcase classname="Overlay Bio Entity Reducers getOverlayBioEntityReducer should update the state correctly when getOverlayBioEntity action is dispatched" name="Overlay Bio Entity Reducers getOverlayBioEntityReducer should update the state correctly when getOverlayBioEntity action is dispatched" time="0.007">
     </testcase>
-    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0">
+  </testsuite>
+  <testsuite name="latLngToPoint - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.152" tests="4">
+    <testcase classname="latLngToPoint - util on map with default tileSize = 256 should return valid point" name="latLngToPoint - util on map with default tileSize = 256 should return valid point" time="0.002">
     </testcase>
-    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0.001">
+    <testcase classname="latLngToPoint - util on map with default tileSize = 256 should return valid point" name="latLngToPoint - util on map with default tileSize = 256 should return valid point" time="0">
     </testcase>
-    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0">
+    <testcase classname="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" name="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" time="0.001">
     </testcase>
-    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0">
+    <testcase classname="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" name="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getPointMerged" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.131" tests="3">
-    <testcase classname="getPointMerged should return valid merged point" name="getPointMerged should return valid merged point" time="0.002">
+  <testsuite name="getFilteredReferences - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.148" tests="3">
+    <testcase classname="getFilteredReferences - subUtil should return valid filtered references" name="getFilteredReferences - subUtil should return valid filtered references" time="0.001">
     </testcase>
-    <testcase classname="getPointMerged should return valid merged point" name="getPointMerged should return valid merged point" time="0.001">
+    <testcase classname="getFilteredReferences - subUtil should return valid filtered references" name="getFilteredReferences - subUtil should return valid filtered references" time="0.001">
     </testcase>
-    <testcase classname="getPointMerged should return valid merged point" name="getPointMerged should return valid merged point" time="0">
+    <testcase classname="getFilteredReferences - subUtil should return valid filtered references" name="getFilteredReferences - subUtil should return valid filtered references" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="convertDecimalToHexColor - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.159" tests="2">
-    <testcase classname="convertDecimalToHexColor - util should convert small decimal" name="convertDecimalToHexColor - util should convert small decimal" time="0.001">
+  <testsuite name="handleSearchResultForRightClickAction - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.154" tests="2">
+    <testcase classname="handleSearchResultForRightClickAction - util on ALIAS search results should fire handleBioEntityResults" name="handleSearchResultForRightClickAction - util on ALIAS search results should fire handleBioEntityResults" time="0.001">
     </testcase>
-    <testcase classname="convertDecimalToHexColor - util should convert negative decimal" name="convertDecimalToHexColor - util should convert negative decimal" time="0.001">
+    <testcase classname="handleSearchResultForRightClickAction - util on REACTION search results should fire handleReactionResults" name="handleSearchResultForRightClickAction - util on REACTION search results should fire handleReactionResults" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="parseQueryToTypes" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.16" tests="1">
-    <testcase classname="parseQueryToTypes should return valid data" name="parseQueryToTypes should return valid data" time="0.002">
+  <testsuite name="getUpdatedMapData - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.149" tests="3">
+    <testcase classname="getUpdatedMapData - util when model does not have default values should return correct value" name="getUpdatedMapData - util when model does not have default values should return correct value" time="0.002">
+    </testcase>
+    <testcase classname="getUpdatedMapData - util when model has default falsy values should return correct value" name="getUpdatedMapData - util when model has default falsy values should return correct value" time="0.001">
+    </testcase>
+    <testcase classname="getUpdatedMapData - util when model has default truthy values should return correct value" name="getUpdatedMapData - util when model has default truthy values should return correct value" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="api path" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.138" tests="3">
-    <testcase classname="api path should return url string for drugs" name="api path should return url string for drugs" time="0.001">
+  <testsuite name="getCheckboxElements" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.133" tests="4">
+    <testcase classname="getCheckboxElements should return an empty array when elementTypes is undefined" name="getCheckboxElements should return an empty array when elementTypes is undefined" time="0.001">
     </testcase>
-    <testcase classname="api path should return url string for bio entity content" name="api path should return url string for bio entity content" time="0">
+    <testcase classname="getCheckboxElements should map elementTypes to MappedElementTypes and exclude duplicates based on name and parentClass" name="getCheckboxElements should map elementTypes to MappedElementTypes and exclude duplicates based on name and parentClass" time="0.001">
     </testcase>
-    <testcase classname="api path should return url string for bio entity content" name="api path should return url string for bio entity content" time="0">
+    <testcase classname="getCheckboxElements should handle an empty array of elementTypes" name="getCheckboxElements should handle an empty array of elementTypes" time="0">
+    </testcase>
+    <testcase classname="getCheckboxElements should return an empty array when elementTypes is undefined" name="getCheckboxElements should return an empty array when elementTypes is undefined" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="latLngToPoint - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.152" tests="4">
-    <testcase classname="latLngToPoint - util on map with default tileSize = 256 should return valid point" name="latLngToPoint - util on map with default tileSize = 256 should return valid point" time="0.001">
+  <testsuite name="getOverviewImageLinkSize - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.115" tests="5">
+    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0.001">
     </testcase>
-    <testcase classname="latLngToPoint - util on map with default tileSize = 256 should return valid point" name="latLngToPoint - util on map with default tileSize = 256 should return valid point" time="0">
+    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0">
     </testcase>
-    <testcase classname="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" name="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" time="0">
+    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0">
     </testcase>
-    <testcase classname="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" name="latLngToPoint - util on map with non-default tileSize = 128 should return valid point" time="0.001">
+    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0">
+    </testcase>
+    <testcase classname="getOverviewImageLinkSize - util should return valid link config size" name="getOverviewImageLinkSize - util should return valid link config size" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="handleSearchResultForRightClickAction - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.118" tests="2">
-    <testcase classname="handleSearchResultForRightClickAction - util on ALIAS search results should fire handleBioEntityResults" name="handleSearchResultForRightClickAction - util on ALIAS search results should fire handleBioEntityResults" time="0.002">
+  <testsuite name="handleSearchResultAction - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.13" tests="2">
+    <testcase classname="handleSearchResultAction - util on ALIAS search results should fire handleAliasResults" name="handleSearchResultAction - util on ALIAS search results should fire handleAliasResults" time="0.002">
     </testcase>
-    <testcase classname="handleSearchResultForRightClickAction - util on REACTION search results should fire handleReactionResults" name="handleSearchResultForRightClickAction - util on REACTION search results should fire handleReactionResults" time="0">
+    <testcase classname="handleSearchResultAction - util on REACTION search results should fire handleReactionResults" name="handleSearchResultAction - util on REACTION search results should fire handleReactionResults" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="groupBy - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.132" tests="2">
-    <testcase classname="groupBy - util should return valid data basing on predicate" name="groupBy - util should return valid data basing on predicate" time="0.002">
+  <testsuite name="getUpdatedModel - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.175" tests="3">
+    <testcase classname="getUpdatedModel - util when payload has valid modelId returns model object" name="getUpdatedModel - util when payload has valid modelId returns model object" time="0.003">
     </testcase>
-    <testcase classname="groupBy - util should return valid data basing on predicate" name="groupBy - util should return valid data basing on predicate" time="0">
+    <testcase classname="getUpdatedModel - util when payload has invalid modelId returns undefined" name="getUpdatedModel - util when payload has invalid modelId returns undefined" time="0">
+    </testcase>
+    <testcase classname="getUpdatedModel - util when payload does not have modelId returns undefined" name="getUpdatedModel - util when payload does not have modelId returns undefined" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getFontSizeToFit" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.153" tests="5">
-    <testcase classname="getFontSizeToFit on text=Hello, fontFace=Helvetica, maxWidth=50 it should return value 10" name="getFontSizeToFit on text=Hello, fontFace=Helvetica, maxWidth=50 it should return value 10" time="0.003">
+  <testsuite name="getFontSizeToFit" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.132" tests="5">
+    <testcase classname="getFontSizeToFit on text=Hello, fontFace=Helvetica, maxWidth=50 it should return value 10" name="getFontSizeToFit on text=Hello, fontFace=Helvetica, maxWidth=50 it should return value 10" time="0.002">
     </testcase>
     <testcase classname="getFontSizeToFit on text=123, fontFace=Arial, maxWidth=48 it should return value 16" name="getFontSizeToFit on text=123, fontFace=Arial, maxWidth=48 it should return value 16" time="0.001">
     </testcase>
@@ -1020,121 +1374,141 @@
     </testcase>
     <testcase classname="getFontSizeToFit on text=Text, fontFace=, maxWidth=0 it should return value 0" name="getFontSizeToFit on text=Text, fontFace=, maxWidth=0 it should return value 0" time="0.001">
     </testcase>
-    <testcase classname="getFontSizeToFit on text=, fontFace=, maxWidth=0 it should return value 0" name="getFontSizeToFit on text=, fontFace=, maxWidth=0 it should return value 0" time="0">
+    <testcase classname="getFontSizeToFit on text=, fontFace=, maxWidth=0 it should return value 0" name="getFontSizeToFit on text=, fontFace=, maxWidth=0 it should return value 0" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="radiansToDegrees - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.144" tests="3">
-    <testcase classname="radiansToDegrees - util coverts positive radian to close positive degrees" name="radiansToDegrees - util coverts positive radian to close positive degrees" time="0.001">
+  <testsuite name="getGroupedReferences - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.133" tests="3">
+    <testcase classname="getGroupedReferences - util should return correct grouped references" name="getGroupedReferences - util should return correct grouped references" time="0.002">
     </testcase>
-    <testcase classname="radiansToDegrees - util coverts negative radian to close negative degrees" name="radiansToDegrees - util coverts negative radian to close negative degrees" time="0">
+    <testcase classname="getGroupedReferences - util should return correct grouped references" name="getGroupedReferences - util should return correct grouped references" time="0.001">
     </testcase>
-    <testcase classname="radiansToDegrees - util coverts zero radian to zero degrees" name="radiansToDegrees - util coverts zero radian to zero degrees" time="0">
+    <testcase classname="getGroupedReferences - util should return correct grouped references" name="getGroupedReferences - util should return correct grouped references" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="degreesToRadians - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.133" tests="3">
-    <testcase classname="degreesToRadians - util coverts positive degree to close positive radians" name="degreesToRadians - util coverts positive degree to close positive radians" time="0.001">
+  <testsuite name="addAlphaToHexString" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.133" tests="5">
+    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, undefined ] should return #ff0000ff" name="addAlphaToHexString for [ &apos;#ff0000&apos;, undefined ] should return #ff0000ff" time="0.008">
     </testcase>
-    <testcase classname="degreesToRadians - util coverts negative degree to close negative radians" name="degreesToRadians - util coverts negative degree to close negative radians" time="0">
+    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 1 ] should return #ff0000ff" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 1 ] should return #ff0000ff" time="0.001">
     </testcase>
-    <testcase classname="degreesToRadians - util coverts zero degree to zero radians" name="degreesToRadians - util coverts zero degree to zero radians" time="0">
+    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.8 ] should return #ff0000cc" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.8 ] should return #ff0000cc" time="0">
+    </testcase>
+    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.5 ] should return #ff000080" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 0.5 ] should return #ff000080" time="0">
+    </testcase>
+    <testcase classname="addAlphaToHexString for [ &apos;#ff0000&apos;, 0 ] should return #ff000000" name="addAlphaToHexString for [ &apos;#ff0000&apos;, 0 ] should return #ff000000" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="getPinStyle - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.416" tests="3">
+  <testsuite name="user reducer" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:47" time="0.198" tests="4">
+    <testcase classname="user reducer should match initial state" name="user reducer should match initial state" time="0.003">
+    </testcase>
+    <testcase classname="user reducer should update store after successful login query" name="user reducer should update store after successful login query" time="0.007">
+    </testcase>
+    <testcase classname="user reducer should update store on loading login query" name="user reducer should update store on loading login query" time="0.001">
+    </testcase>
+    <testcase classname="user reducer should update store after successful getSessionValid query" name="user reducer should update store after successful getSessionValid query" time="0.001">
+    </testcase>
+  </testsuite>
+  <testsuite name="getPinStyle - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.166" tests="3">
     <testcase classname="getPinStyle - subUtil should return instance of Style" name="getPinStyle - subUtil should return instance of Style" time="0.001">
     </testcase>
-    <testcase classname="getPinStyle - subUtil should return image object with displacament of pin size height" name="getPinStyle - subUtil should return image object with displacament of pin size height" time="0.007">
+    <testcase classname="getPinStyle - subUtil should return image object with displacament of pin size height" name="getPinStyle - subUtil should return image object with displacament of pin size height" time="0">
     </testcase>
     <testcase classname="getPinStyle - subUtil should return image of pin size" name="getPinStyle - subUtil should return image of pin size" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="createOverlayGeometryFeature" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.399" tests="2">
-    <testcase classname="createOverlayGeometryFeature should create a feature with the correct geometry and style" name="createOverlayGeometryFeature should create a feature with the correct geometry and style" time="0.002">
+  <testsuite name="getMapTileUrl - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.136" tests="2">
+    <testcase classname="getMapTileUrl - util when projectDirectory is empty should return empty value" name="getMapTileUrl - util when projectDirectory is empty should return empty value" time="0.001">
     </testcase>
-    <testcase classname="createOverlayGeometryFeature should create a feature with the correct geometry and style when using a different color" name="createOverlayGeometryFeature should create a feature with the correct geometry and style when using a different color" time="0">
+    <testcase classname="getMapTileUrl - util when all args are valid should return correct value" name="getMapTileUrl - util when all args are valid should return correct value" time="0.001">
     </testcase>
   </testsuite>
-  <testsuite name="getLineFeature" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="1.064" tests="2">
-    <testcase classname="getLineFeature should return valid Feature object" name="getLineFeature should return valid Feature object" time="0.003">
+  <testsuite name="interpolateColor" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.141" tests="5">
+    <testcase classname="interpolateColor should return color1 for position 0" name="interpolateColor should return color1 for position 0" time="0.001">
     </testcase>
-    <testcase classname="getLineFeature should return valid Feature object with LineString geometry" name="getLineFeature should return valid Feature object with LineString geometry" time="0.011">
+    <testcase classname="interpolateColor should return color2 for position 1" name="interpolateColor should return color2 for position 1" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="useOlMapReactionsLayer - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="1.078" tests="2">
-    <testcase classname="useOlMapReactionsLayer - util should return VectorLayer" name="useOlMapReactionsLayer - util should return VectorLayer" time="0.01">
+    <testcase classname="interpolateColor should interpolate colors for position 0.25" name="interpolateColor should interpolate colors for position 0.25" time="0.001">
+    </testcase>
+    <testcase classname="interpolateColor should interpolate colors for position 0.5" name="interpolateColor should interpolate colors for position 0.5" time="0">
     </testcase>
-    <testcase classname="useOlMapReactionsLayer - util should return VectorLayer with valid Style" name="useOlMapReactionsLayer - util should return VectorLayer with valid Style" time="0.01">
+    <testcase classname="interpolateColor should interpolate colors for position 0.75" name="interpolateColor should interpolate colors for position 0.75" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getPinFeature - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="1.04" tests="3">
-    <testcase classname="getPinFeature - subUtil should return instance of Feature" name="getPinFeature - subUtil should return instance of Feature" time="0.001">
+  <testsuite name="api path" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.125" tests="3">
+    <testcase classname="api path should return url string for drugs" name="api path should return url string for drugs" time="0.001">
     </testcase>
-    <testcase classname="getPinFeature - subUtil should return id as name" name="getPinFeature - subUtil should return id as name" time="0.001">
+    <testcase classname="api path should return url string for bio entity content" name="api path should return url string for bio entity content" time="0.001">
     </testcase>
-    <testcase classname="getPinFeature - subUtil should return point parsed with point to projection" name="getPinFeature - subUtil should return point parsed with point to projection" time="0.001">
+    <testcase classname="api path should return url string for bio entity content" name="api path should return url string for bio entity content" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="getBioEntitySingleFeature - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="1.057" tests="6">
-    <testcase classname="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=bioEntity" name="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=bioEntity" time="0.012">
+  <testsuite name="expandHexToFullFormatIfItsShorthanded" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.124" tests="11">
+    <testcase classname="expandHexToFullFormatIfItsShorthanded should expand short-handed hex string to full format" name="expandHexToFullFormatIfItsShorthanded should expand short-handed hex string to full format" time="0.001">
     </testcase>
-    <testcase classname="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=drugs" name="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=drugs" time="0.001">
+    <testcase classname="expandHexToFullFormatIfItsShorthanded should not modify full-format hex string" name="expandHexToFullFormatIfItsShorthanded should not modify full-format hex string" time="0">
     </testcase>
-    <testcase classname="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=chemicals" name="getBioEntitySingleFeature - subUtil should return instance of Feature with Style type=chemicals" time="0.001">
+    <testcase classname="expandHexToFullFormatIfItsShorthanded should handle hex string without leading #" name="expandHexToFullFormatIfItsShorthanded should handle hex string without leading #" time="0">
     </testcase>
-    <testcase classname="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=bioEntity" name="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=bioEntity" time="0.003">
+    <testcase classname="expandHexToFullFormatIfItsShorthanded should return original string if it does not match short-hand regex" name="expandHexToFullFormatIfItsShorthanded should return original string if it does not match short-hand regex" time="0">
     </testcase>
-    <testcase classname="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=drugs" name="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=drugs" time="0.002">
+    <testcase classname="hexToRgb should convert valid hex string to RGB object" name="hexToRgb should convert valid hex string to RGB object" time="0">
     </testcase>
-    <testcase classname="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=chemicals" name="getBioEntitySingleFeature - subUtil should run getPinStyle with valid args for type=chemicals" time="0.002">
+    <testcase classname="hexToRgb should return null for invalid hex string" name="hexToRgb should return null for invalid hex string" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="useOlMapPinsLayer - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="1.068" tests="1">
-    <testcase classname="useOlMapPinsLayer - util should return VectorLayer" name="useOlMapPinsLayer - util should return VectorLayer" time="0.025">
+    <testcase classname="hexToRgb should handle hex string without leading #" name="hexToRgb should handle hex string without leading #" time="0.001">
     </testcase>
-  </testsuite>
-  <testsuite name="getBioEntitiesFeatures - subUtil" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.992" tests="3">
-    <testcase classname="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=bioEntity" name="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=bioEntity" time="0.024">
+    <testcase classname="hexToRgb should return null for hex string with invalid characters" name="hexToRgb should return null for hex string with invalid characters" time="0">
     </testcase>
-    <testcase classname="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=drugs" name="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=drugs" time="0.005">
+    <testcase classname="hexToRgb should convert short-handed RGB hex string without leading # to RGB object" name="hexToRgb should convert short-handed RGB hex string without leading # to RGB object" time="0">
     </testcase>
-    <testcase classname="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=chemicals" name="getBioEntitiesFeatures - subUtil should return array of instances of Feature with Style type=chemicals" time="0.005">
+    <testcase classname="hexToRgb should handle short-handed RGB hex string with invalid characters" name="hexToRgb should handle short-handed RGB hex string with invalid characters" time="0">
+    </testcase>
+    <testcase classname="hexToRgb should handle short-handed RGB hex string with invalid characters and without leading #" name="hexToRgb should handle short-handed RGB hex string with invalid characters and without leading #" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="useOlMapListeners - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="1.012" tests="2">
-    <testcase classname="useOlMapListeners - util on change:center view event should run onMapPositionChange event" name="useOlMapListeners - util on change:center view event should run onMapPositionChange event" time="0.01">
+  <testsuite name="getPointMerged" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.117" tests="3">
+    <testcase classname="getPointMerged should return valid merged point" name="getPointMerged should return valid merged point" time="0.001">
     </testcase>
-    <testcase classname="useOlMapListeners - util on singleclick view event should run onMapPositionChange event" name="useOlMapListeners - util on singleclick view event should run onMapPositionChange event" time="0.001">
+    <testcase classname="getPointMerged should return valid merged point" name="getPointMerged should return valid merged point" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="useOlMapTileLayer - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="0.859" tests="1">
-    <testcase classname="useOlMapTileLayer - util should return valid TileLayer instance" name="useOlMapTileLayer - util should return valid TileLayer instance" time="0.013">
+    <testcase classname="getPointMerged should return valid merged point" name="getPointMerged should return valid merged point" time="0">
     </testcase>
   </testsuite>
-  <testsuite name="useOlMapView - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:24" time="1.067" tests="2">
-    <testcase classname="useOlMapView - util should modify view of the map instance on INITIAL position config change" name="useOlMapView - util should modify view of the map instance on INITIAL position config change" time="0.047">
+  <testsuite name="getSearchValuesArray - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.119" tests="6">
+    <testcase classname="getSearchValuesArray - util should return array of values when string has ; separator" name="getSearchValuesArray - util should return array of values when string has ; separator" time="0.002">
     </testcase>
-    <testcase classname="useOlMapView - util should return valid View instance" name="useOlMapView - util should return valid View instance" time="0.007">
+    <testcase classname="getSearchValuesArray - util should trim values to seven if more values are provided" name="getSearchValuesArray - util should trim values to seven if more values are provided" time="0">
     </testcase>
-  </testsuite>
-  <testsuite name="useOlMapLayers - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:25" time="0.469" tests="4">
-    <testcase classname="useOlMapLayers - util should modify layers of the map instance on init" name="useOlMapLayers - util should modify layers of the map instance on init" time="0.029">
+    <testcase classname="getSearchValuesArray - util should return single value in array if no ; was passed in string" name="getSearchValuesArray - util should return single value in array if no ; was passed in string" time="0">
     </testcase>
-    <testcase classname="useOlMapLayers - util should return valid TileLayer instance [1]" name="useOlMapLayers - util should return valid TileLayer instance [1]" time="0.01">
+    <testcase classname="getDefaultSearchTab for [ &apos;nadh&apos;, &apos;o2&apos;, &apos;mp3&apos; ] should return nadh" name="getDefaultSearchTab for [ &apos;nadh&apos;, &apos;o2&apos;, &apos;mp3&apos; ] should return nadh" time="0">
     </testcase>
-    <testcase classname="useOlMapLayers - util should return valid VectorLayer instance [2]" name="useOlMapLayers - util should return valid VectorLayer instance [2]" time="0.009">
+    <testcase classname="getDefaultSearchTab for [ &apos;o2&apos; ] should return o2" name="getDefaultSearchTab for [ &apos;o2&apos; ] should return o2" time="0.001">
     </testcase>
-    <testcase classname="useOlMapLayers - util should return valid VectorLayer instance [3]" name="useOlMapLayers - util should return valid VectorLayer instance [3]" time="0.006">
+    <testcase classname="getDefaultSearchTab for [ &apos;&apos; ] should return " name="getDefaultSearchTab for [ &apos;&apos; ] should return " time="0">
     </testcase>
   </testsuite>
-  <testsuite name="useOlMap - util" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:25" time="0.455" tests="2">
-    <testcase classname="useOlMap - util when initializing should set map instance" name="useOlMap - util when initializing should set map instance" time="0.033">
+  <testsuite name="rgbToHex - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.123" tests="2">
+    <testcase classname="rgbToHex - util should convert RGB values to hex format" name="rgbToHex - util should convert RGB values to hex format" time="0.001">
     </testcase>
-    <testcase classname="useOlMap - util when initializing should render content inside the target element" name="useOlMap - util when initializing should render content inside the target element" time="0.006">
+    <testcase classname="rgbToHex - util should handle invalid input values" name="rgbToHex - util should handle invalid input values" time="0.004">
     </testcase>
   </testsuite>
-  <testsuite name="MapViewer - component" errors="0" failures="0" skipped="0" timestamp="2024-01-03T15:35:25" time="0.482" tests="2">
-    <testcase classname="MapViewer - component should render component container" name="MapViewer - component should render component container" time="0.045">
+  <testsuite name="boundNumber - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.103" tests="3">
+    <testcase classname="boundNumber - util should return valid bounded number | v = 1, minMax = (0, 2), final = 1" name="boundNumber - util should return valid bounded number | v = 1, minMax = (0, 2), final = 1" time="0.001">
+    </testcase>
+    <testcase classname="boundNumber - util should return valid bounded number | v = 1, minMax = (2, 2), final = 2" name="boundNumber - util should return valid bounded number | v = 1, minMax = (2, 2), final = 2" time="0">
+    </testcase>
+    <testcase classname="boundNumber - util should return valid bounded number | v = 2, minMax = (0, 1), final = 1" name="boundNumber - util should return valid bounded number | v = 2, minMax = (0, 1), final = 1" time="0">
     </testcase>
-    <testcase classname="MapViewer - component should render openlayers map inside the component" name="MapViewer - component should render openlayers map inside the component" time="0.008">
+  </testsuite>
+  <testsuite name="getTruthyObjectOrUndefined - util" errors="0" failures="0" skipped="0" timestamp="2024-01-12T14:39:48" time="0.095" tests="4">
+    <testcase classname="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is truthy" name="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is truthy" time="0.001">
+    </testcase>
+    <testcase classname="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is empty" name="getTruthyObjectOrUndefined - util shoud return a truthy object if the object is empty" time="0">
+    </testcase>
+    <testcase classname="getTruthyObjectOrUndefined - util shoud return undefined if the object is partially truthy" name="getTruthyObjectOrUndefined - util shoud return undefined if the object is partially truthy" time="0.001">
+    </testcase>
+    <testcase classname="getTruthyObjectOrUndefined - util shoud return undefined if the objects&apos;s nested objects is partially truthy" name="getTruthyObjectOrUndefined - util shoud return undefined if the objects&apos;s nested objects is partially truthy" time="0">
     </testcase>
   </testsuite>
 </testsuites>
\ No newline at end of file
diff --git a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.component.test.tsx b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.component.test.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..a30986f5e018ce2af17e0dfd92dcf99a029c0bad
--- /dev/null
+++ b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.component.test.tsx
@@ -0,0 +1,149 @@
+import { FIRST_ARRAY_ELEMENT } from '@/constants/common';
+import { backgroundsFixture } from '@/models/fixtures/backgroundsFixture';
+import { configurationFixture } from '@/models/fixtures/configurationFixture';
+import { modelsFixture } from '@/models/fixtures/modelsFixture';
+import {
+  CONFIGURATION_FORMATS_MOCK,
+  CONFIGURATION_FORMATS_TYPES_MOCK,
+} from '@/models/mocks/configurationFormatsMock';
+import { INITIAL_STORE_STATE_MOCK } from '@/redux/root/root.fixtures';
+import { RootState, StoreType } from '@/redux/store';
+import {
+  InitialStoreState,
+  getReduxWrapperWithStore,
+} from '@/utils/testing/getReduxWrapperWithStore';
+import { act, render, renderHook, screen } from '@testing-library/react';
+import { DownloadSubmap } from './DownloadSubmap.component';
+import { GetSubmapDownloadUrl, useGetSubmapDownloadUrl } from './utils/useGetSubmapDownloadUrl';
+
+const VALID_MODEL_ID = 5052;
+const VALID_BACKGROUND_ID = 53;
+const VALID_MAX_ZOOM = 9;
+
+const getState = (): RootState => ({
+  ...INITIAL_STORE_STATE_MOCK,
+  map: {
+    ...INITIAL_STORE_STATE_MOCK.map,
+    data: {
+      ...INITIAL_STORE_STATE_MOCK.map.data,
+      modelId: VALID_MODEL_ID,
+      backgroundId: VALID_BACKGROUND_ID,
+      size: {
+        ...INITIAL_STORE_STATE_MOCK.map.data.size,
+        maxZoom: VALID_MAX_ZOOM,
+      },
+    },
+  },
+  models: {
+    ...INITIAL_STORE_STATE_MOCK.models,
+    data: [
+      {
+        ...modelsFixture[FIRST_ARRAY_ELEMENT],
+        idObject: VALID_MODEL_ID,
+      },
+    ],
+  },
+  backgrounds: {
+    ...INITIAL_STORE_STATE_MOCK.backgrounds,
+    data: [
+      {
+        ...backgroundsFixture[FIRST_ARRAY_ELEMENT],
+        id: VALID_BACKGROUND_ID,
+      },
+    ],
+  },
+  configuration: {
+    ...INITIAL_STORE_STATE_MOCK.configuration,
+    main: {
+      ...INITIAL_STORE_STATE_MOCK.configuration.main,
+      data: {
+        ...configurationFixture,
+        modelFormats: CONFIGURATION_FORMATS_MOCK,
+      },
+    },
+  },
+});
+
+const toggleListByButtonClick = (): void => {
+  const button = screen.getByTestId('download-submap-button');
+  act(() => {
+    button.click();
+  });
+};
+
+const getUtilGetSubmapDownloadUrl = (): GetSubmapDownloadUrl => {
+  const { Wrapper } = getReduxWrapperWithStore(getState());
+
+  const {
+    result: { current: getSubmapDownloadUrl },
+  } = renderHook(() => useGetSubmapDownloadUrl(), { wrapper: Wrapper });
+
+  return getSubmapDownloadUrl;
+};
+
+const renderComponent = (initialStoreState: InitialStoreState = {}): { store: StoreType } => {
+  const { Wrapper, store } = getReduxWrapperWithStore(initialStoreState);
+
+  return (
+    render(
+      <Wrapper>
+        <DownloadSubmap />
+      </Wrapper>,
+    ),
+    {
+      store,
+    }
+  );
+};
+
+describe('DownloadSubmap - component', () => {
+  it('should render download button', () => {
+    renderComponent(getState());
+    const button = screen.getByTestId('download-submap-button');
+    expect(button).toBeInTheDocument();
+  });
+
+  it('should open list on button click', () => {
+    renderComponent(getState());
+    toggleListByButtonClick();
+
+    const list = screen.getByTestId('download-submap-list');
+    expect(list).not.toHaveClass('hidden');
+  });
+
+  it('should close list on button click twice', () => {
+    renderComponent(getState());
+    const list = screen.getByTestId('download-submap-list');
+
+    // list should be opened
+    toggleListByButtonClick();
+    expect(list).not.toHaveClass('hidden');
+
+    // list should be closed
+    toggleListByButtonClick();
+    expect(list).toHaveClass('hidden');
+  });
+
+  it('should not show list when closed (default state)', () => {
+    renderComponent(getState());
+    const list = screen.getByTestId('download-submap-list');
+    expect(list).toHaveClass('hidden');
+  });
+
+  it('should render list elements with href and names when opened', () => {
+    const getSubmapDownloadUrl = getUtilGetSubmapDownloadUrl();
+    renderComponent(getState());
+    const list = screen.getByTestId('download-submap-list');
+
+    const validHrefs = CONFIGURATION_FORMATS_MOCK.map(({ handler }) =>
+      getSubmapDownloadUrl({ handler }),
+    );
+    const validNames = CONFIGURATION_FORMATS_TYPES_MOCK;
+    const allAnchors = [...list.getElementsByTagName('a')];
+
+    allAnchors.forEach(anchor => {
+      expect(validHrefs.includes(anchor.href)).toBeTruthy();
+      expect(validNames.includes(anchor.innerText)).toBeTruthy();
+    });
+  });
+});
diff --git a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.component.tsx b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.component.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..01587d62f8bbd459f9aff42cd0f7502c1051ec8a
--- /dev/null
+++ b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.component.tsx
@@ -0,0 +1,50 @@
+import { formatsHandlersSelector } from '@/redux/configuration/configuration.selectors';
+import { Button } from '@/shared/Button';
+import { useSelect } from 'downshift';
+import { useSelector } from 'react-redux';
+import { SUBMAP_DOWNLOAD_HANDLERS_NAMES } from './DownloadSubmap.constants';
+import { useGetSubmapDownloadUrl } from './utils/useGetSubmapDownloadUrl';
+
+export const DownloadSubmap = (): JSX.Element => {
+  const formatsHandlers = useSelector(formatsHandlersSelector);
+  const formatsHandlersItems = Object.entries(formatsHandlers);
+  const getSubmapDownloadUrl = useGetSubmapDownloadUrl();
+
+  const { isOpen, getToggleButtonProps, getMenuProps } = useSelect({
+    items: formatsHandlersItems,
+  });
+
+  return (
+    <div className="relative">
+      <Button
+        data-testid="download-submap-button"
+        variantStyles="ghost"
+        className="mr-4"
+        {...getToggleButtonProps()}
+      >
+        Download
+      </Button>
+      <ul
+        data-testid="download-submap-list"
+        className={`absolute left-[-50%] z-10 max-h-80 w-48 overflow-scroll rounded-sm border bg-white p-0 ps-0 ${
+          !isOpen && 'hidden'
+        }`}
+        {...getMenuProps()}
+      >
+        {isOpen &&
+          formatsHandlersItems.map(([formatId, handler]) => (
+            <li key={formatId}>
+              <a
+                className="flex flex-col border-t px-4 py-2 shadow-sm"
+                href={getSubmapDownloadUrl({ handler })}
+                target="_blank"
+                download
+              >
+                <span>{SUBMAP_DOWNLOAD_HANDLERS_NAMES[formatId]}</span>
+              </a>
+            </li>
+          ))}
+      </ul>
+    </div>
+  );
+};
diff --git a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.constants.ts b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.constants.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5bd478cc6117c4170772519a99f7e0ffe29e74ce
--- /dev/null
+++ b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/DownloadSubmap.constants.ts
@@ -0,0 +1,13 @@
+import {
+  CELL_DESIGNER_SBML_HANDLER_NAME_ID,
+  GPML_HANDLER_NAME_ID,
+  SBGN_ML_HANDLER_NAME_ID,
+  SBML_HANDLER_NAME_ID,
+} from '@/redux/configuration/configuration.constants';
+
+export const SUBMAP_DOWNLOAD_HANDLERS_NAMES: Record<string, string> = {
+  [GPML_HANDLER_NAME_ID]: 'GPML',
+  [SBML_HANDLER_NAME_ID]: 'SBML',
+  [CELL_DESIGNER_SBML_HANDLER_NAME_ID]: 'CellDesigner SBML',
+  [SBGN_ML_HANDLER_NAME_ID]: 'SBGN-ML',
+};
diff --git a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/index.ts b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..96d65c330502b30451ab503c4fa00e0a409887fa
--- /dev/null
+++ b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/index.ts
@@ -0,0 +1 @@
+export { DownloadSubmap } from './DownloadSubmap.component';
diff --git a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/utils/useGetSubmapDownloadUrl.test.ts b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/utils/useGetSubmapDownloadUrl.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c8f335bff701d4fdeef65f9f815dcfe6dbc1fab2
--- /dev/null
+++ b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/utils/useGetSubmapDownloadUrl.test.ts
@@ -0,0 +1,117 @@
+import { BASE_API_URL, PROJECT_ID } from '@/constants';
+import { FIRST_ARRAY_ELEMENT } from '@/constants/common';
+import { backgroundsFixture } from '@/models/fixtures/backgroundsFixture';
+import { modelsFixture } from '@/models/fixtures/modelsFixture';
+import { INITIAL_STORE_STATE_MOCK } from '@/redux/root/root.fixtures';
+import { RootState } from '@/redux/store';
+import { getReduxWrapperWithStore } from '@/utils/testing/getReduxWrapperWithStore';
+import { renderHook } from '@testing-library/react';
+import { useGetSubmapDownloadUrl } from './useGetSubmapDownloadUrl';
+
+const VALID_HANDLER = 'lcsb.mapviewer.wikipathway.GpmlParser';
+const VALID_MODEL_ID = 5052;
+const VALID_BACKGROUND_ID = 53;
+const VALID_MAX_ZOOM = 9;
+
+const getState = ({
+  modelId,
+  backgroundId,
+  mapSizeMaxZoom,
+}: {
+  modelId: number;
+  backgroundId: number;
+  mapSizeMaxZoom: number;
+}): RootState => ({
+  ...INITIAL_STORE_STATE_MOCK,
+  map: {
+    ...INITIAL_STORE_STATE_MOCK.map,
+    data: {
+      ...INITIAL_STORE_STATE_MOCK.map.data,
+      modelId,
+      backgroundId,
+      size: {
+        ...INITIAL_STORE_STATE_MOCK.map.data.size,
+        maxZoom: mapSizeMaxZoom,
+      },
+    },
+  },
+  models: {
+    ...INITIAL_STORE_STATE_MOCK.models,
+    data: [
+      {
+        ...modelsFixture[FIRST_ARRAY_ELEMENT],
+        idObject: VALID_MODEL_ID,
+      },
+    ],
+  },
+  backgrounds: {
+    ...INITIAL_STORE_STATE_MOCK.backgrounds,
+    data: [
+      {
+        ...backgroundsFixture[FIRST_ARRAY_ELEMENT],
+        id: VALID_BACKGROUND_ID,
+      },
+    ],
+  },
+});
+
+describe('useGetSubmapDownloadUrl - hook', () => {
+  describe('when not all params valid', () => {
+    const cases = [
+      {
+        modelId: 0,
+        backgroundId: VALID_BACKGROUND_ID,
+        mapSizeMaxZoom: VALID_MAX_ZOOM,
+        handler: VALID_HANDLER,
+      },
+      {
+        modelId: VALID_MODEL_ID,
+        backgroundId: 0,
+        mapSizeMaxZoom: VALID_MAX_ZOOM,
+        handler: VALID_HANDLER,
+      },
+      {
+        modelId: VALID_MODEL_ID,
+        backgroundId: VALID_BACKGROUND_ID,
+        mapSizeMaxZoom: 0,
+        handler: VALID_HANDLER,
+      },
+      {
+        modelId: VALID_MODEL_ID,
+        backgroundId: VALID_BACKGROUND_ID,
+        mapSizeMaxZoom: VALID_MAX_ZOOM,
+        handler: '',
+      },
+    ];
+
+    it.each(cases)('should return empty string', ({ handler, ...stateParams }) => {
+      const { Wrapper } = getReduxWrapperWithStore(getState(stateParams));
+
+      const {
+        result: { current: getSubmapDownloadUrl },
+      } = renderHook(() => useGetSubmapDownloadUrl(), { wrapper: Wrapper });
+
+      expect(getSubmapDownloadUrl({ handler })).toBe('');
+    });
+  });
+
+  describe('when all params valid', () => {
+    it('should return valid string', () => {
+      const { Wrapper } = getReduxWrapperWithStore(
+        getState({
+          modelId: VALID_MODEL_ID,
+          backgroundId: VALID_BACKGROUND_ID,
+          mapSizeMaxZoom: VALID_MAX_ZOOM,
+        }),
+      );
+
+      const {
+        result: { current: getSubmapDownloadUrl },
+      } = renderHook(() => useGetSubmapDownloadUrl(), { wrapper: Wrapper });
+
+      expect(getSubmapDownloadUrl({ handler: VALID_HANDLER })).toBe(
+        `${BASE_API_URL}/projects/${PROJECT_ID}/models/5052:downloadModel?backgroundOverlayId=53&handlerClass=lcsb.mapviewer.wikipathway.GpmlParser&zoomLevel=9`,
+      );
+    });
+  });
+});
diff --git a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/utils/useGetSubmapDownloadUrl.ts b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/utils/useGetSubmapDownloadUrl.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e003af360c856d2e254ea8f0a1252391c7e6610d
--- /dev/null
+++ b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/DownloadSubmap/utils/useGetSubmapDownloadUrl.ts
@@ -0,0 +1,27 @@
+import { BASE_API_URL, PROJECT_ID } from '@/constants';
+import { currentBackgroundSelector } from '@/redux/backgrounds/background.selectors';
+import { mapDataSizeSelector } from '@/redux/map/map.selectors';
+import { currentModelSelector } from '@/redux/models/models.selectors';
+import { useSelector } from 'react-redux';
+
+export type GetSubmapDownloadUrl = ({ handler }: { handler: string }) => string;
+
+export const useGetSubmapDownloadUrl = (): GetSubmapDownloadUrl => {
+  const model = useSelector(currentModelSelector);
+  const background = useSelector(currentBackgroundSelector);
+  const mapSize = useSelector(mapDataSizeSelector);
+
+  const getSubmapDownloadUrl: GetSubmapDownloadUrl = ({ handler }) => {
+    const allParamsValid = [model?.idObject, background?.id, mapSize.maxZoom, handler].reduce(
+      (a, b) => Boolean(a) && Boolean(b),
+      true,
+    );
+    if (!allParamsValid) {
+      return '';
+    }
+
+    return `${BASE_API_URL}/projects/${PROJECT_ID}/models/${model?.idObject}:downloadModel?backgroundOverlayId=${background?.id}&handlerClass=${handler}&zoomLevel=${mapSize.maxZoom}`;
+  };
+
+  return getSubmapDownloadUrl;
+};
diff --git a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/SubmapItem.component.tsx b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/SubmapItem.component.tsx
index e056671a444f93c2d528489ab00c9b5074e8a214..a7a38dfae9cb989d98e2bbb2e8be273f4b8cf0aa 100644
--- a/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/SubmapItem.component.tsx
+++ b/src/components/Map/Drawer/SubmapsDrawer/SubmapItem/SubmapItem.component.tsx
@@ -1,5 +1,5 @@
-import { Button } from '@/shared/Button';
 import { IconButton } from '@/shared/IconButton';
+import { DownloadSubmap } from './DownloadSubmap';
 
 interface SubmapItemProps {
   modelName: string;
@@ -10,9 +10,7 @@ export const SubmpamItem = ({ modelName, onOpenClick }: SubmapItemProps): JSX.El
   <div className="flex flex-row flex-nowrap items-center justify-between border-b py-6">
     {modelName}
     <div className="flex flex-row flex-nowrap items-center">
-      <Button variantStyles="ghost" className="mr-4">
-        Download
-      </Button>
+      <DownloadSubmap />
       <IconButton
         icon="chevron-right"
         className="h-6 w-6 bg-white-pearl"
diff --git a/src/models/configurationSchema.ts b/src/models/configurationSchema.ts
index db44bb5651921d33a73a75029205a2b30f5291eb..b3ec41d84ddccc28ed1e1fbc0628508a316e51b9 100644
--- a/src/models/configurationSchema.ts
+++ b/src/models/configurationSchema.ts
@@ -16,13 +16,7 @@ export const optionSchema = z.object({
   value: z.string().optional(),
 });
 
-export const imageFormatSchema = z.object({
-  name: z.string(),
-  handler: z.string(),
-  extension: z.string(),
-});
-
-export const modelFormatSchema = z.object({
+export const formatSchema = z.object({
   name: z.string(),
   handler: z.string(),
   extension: z.string(),
@@ -87,8 +81,8 @@ export const modificationStateTypeSchema = z.record(
 export const configurationSchema = z.object({
   elementTypes: z.array(elementTypeSchema),
   options: z.array(optionSchema),
-  imageFormats: z.array(imageFormatSchema),
-  modelFormats: z.array(modelFormatSchema),
+  imageFormats: z.array(formatSchema),
+  modelFormats: z.array(formatSchema),
   overlayTypes: z.array(overlayTypeSchema),
   reactionTypes: z.array(reactionTypeSchema),
   miriamTypes: miriamTypesSchema,
diff --git a/src/models/fixtures/configurationFixture.ts b/src/models/fixtures/configurationFixture.ts
new file mode 100644
index 0000000000000000000000000000000000000000..56e19f7adcb59678ca144fd6a63bb741c8e51876
--- /dev/null
+++ b/src/models/fixtures/configurationFixture.ts
@@ -0,0 +1,9 @@
+import { ZOD_SEED } from '@/constants';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { createFixture } from 'zod-fixture';
+import { configurationSchema } from '../configurationSchema';
+
+export const configurationFixture = createFixture(configurationSchema, {
+  seed: ZOD_SEED,
+  array: { min: 1, max: 1 },
+});
diff --git a/src/models/mocks/configurationFormatsMock.ts b/src/models/mocks/configurationFormatsMock.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8d6d4e8afa75491a2fcafee702da4320a633f1b9
--- /dev/null
+++ b/src/models/mocks/configurationFormatsMock.ts
@@ -0,0 +1,31 @@
+import { ConfigurationFormatSchema } from '@/types/models';
+
+export const CONFIGURATION_FORMATS_TYPES_MOCK: string[] = [
+  'CellDesigner SBML',
+  'SBGN-ML',
+  'SBML',
+  'GPML',
+];
+
+export const CONFIGURATION_FORMATS_MOCK: ConfigurationFormatSchema[] = [
+  {
+    name: 'CellDesigner SBML',
+    handler: 'lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser',
+    extension: 'xml',
+  },
+  {
+    name: 'SBGN-ML',
+    handler: 'lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter',
+    extension: 'sbgn',
+  },
+  {
+    name: 'SBML',
+    handler: 'lcsb.mapviewer.converter.model.sbml.SbmlParser',
+    extension: 'xml',
+  },
+  {
+    name: 'GPML',
+    handler: 'lcsb.mapviewer.wikipathway.GpmlParser',
+    extension: 'gpml',
+  },
+];
diff --git a/src/redux/configuration/configuration.constants.ts b/src/redux/configuration/configuration.constants.ts
index ebf80efa62cfa09dab7aa8a2b4d94167ab0b16c3..56448d47fce6e44bf31adfe19acd78b25b340453 100644
--- a/src/redux/configuration/configuration.constants.ts
+++ b/src/redux/configuration/configuration.constants.ts
@@ -10,3 +10,8 @@ export const LEGEND_FILE_NAMES_IDS = [
   'LEGEND_FILE_3',
   'LEGEND_FILE_4',
 ];
+
+export const GPML_HANDLER_NAME_ID = 'GPML';
+export const SBML_HANDLER_NAME_ID = 'SBML';
+export const CELL_DESIGNER_SBML_HANDLER_NAME_ID = 'CellDesigner SBML';
+export const SBGN_ML_HANDLER_NAME_ID = 'SBGN-ML';
diff --git a/src/redux/configuration/configuration.mock.ts b/src/redux/configuration/configuration.mock.ts
index 638005508ce7df45bd030cb6862ef23b4ae6b00a..07ee6ea998096fcad4a62772d50845021e074e18 100644
--- a/src/redux/configuration/configuration.mock.ts
+++ b/src/redux/configuration/configuration.mock.ts
@@ -1,8 +1,8 @@
 /* eslint-disable no-magic-numbers */
 import { DEFAULT_ERROR } from '@/constants/errors';
 import {
-  CONFIGURATION_OPTIONS_TYPES_MOCK,
   CONFIGURATION_OPTIONS_COLOURS_MOCK,
+  CONFIGURATION_OPTIONS_TYPES_MOCK,
 } from '@/models/mocks/configurationOptionMock';
 import { ConfigurationState } from './configuration.adapter';
 
diff --git a/src/redux/configuration/configuration.reducers.ts b/src/redux/configuration/configuration.reducers.ts
index 57e60a05a28eda8721332f80adbf4abeda5c56bd..f1f428a1a6b3d8704c67221227a56d410b7e8b02 100644
--- a/src/redux/configuration/configuration.reducers.ts
+++ b/src/redux/configuration/configuration.reducers.ts
@@ -1,6 +1,6 @@
 import { ActionReducerMapBuilder } from '@reduxjs/toolkit';
-import { getConfiguration, getConfigurationOptions } from './configuration.thunks';
 import { ConfigurationState, configurationAdapter } from './configuration.adapter';
+import { getConfiguration, getConfigurationOptions } from './configuration.thunks';
 
 export const getConfigurationOptionsReducer = (
   builder: ActionReducerMapBuilder<ConfigurationState>,
diff --git a/src/redux/configuration/configuration.selectors.ts b/src/redux/configuration/configuration.selectors.ts
index 3fc6d2e7118f93ef7c17d575fbdfb1ec6dd17b1b..451590bbca72cf44ab73bec01501175c15f96612 100644
--- a/src/redux/configuration/configuration.selectors.ts
+++ b/src/redux/configuration/configuration.selectors.ts
@@ -1,17 +1,24 @@
+import { ConfigurationFormatSchema } from '@/types/models';
 import { createSelector } from '@reduxjs/toolkit';
 import { rootSelector } from '../root/root.selectors';
 import { configurationAdapter } from './configuration.adapter';
 import {
+  CELL_DESIGNER_SBML_HANDLER_NAME_ID,
+  GPML_HANDLER_NAME_ID,
   LEGEND_FILE_NAMES_IDS,
   MAX_COLOR_VAL_NAME_ID,
   MIN_COLOR_VAL_NAME_ID,
   NEUTRAL_COLOR_VAL_NAME_ID,
   OVERLAY_OPACITY_NAME_ID,
+  SBGN_ML_HANDLER_NAME_ID,
+  SBML_HANDLER_NAME_ID,
   SIMPLE_COLOR_VAL_NAME_ID,
 } from './configuration.constants';
+import { ConfigurationHandlersIds } from './configuration.types';
 
 const configurationSelector = createSelector(rootSelector, state => state.configuration);
 const configurationOptionsSelector = createSelector(configurationSelector, state => state.options);
+const configurationMainSelector = createSelector(configurationSelector, state => state.main.data);
 
 const configurationAdapterSelectors = configurationAdapter.getSelectors();
 
@@ -46,12 +53,38 @@ export const defaultLegendImagesSelector = createSelector(configurationOptionsSe
   ).filter(legendImage => Boolean(legendImage)),
 );
 
-export const configurationMainSelector = createSelector(
-  configurationSelector,
-  state => state.main.data,
-);
-
 export const elementTypesSelector = createSelector(
   configurationMainSelector,
   state => state?.elementTypes,
 );
+
+export const modelFormatsSelector = createSelector(
+  configurationMainSelector,
+  state => state?.modelFormats,
+);
+
+export const formatsEntriesSelector = createSelector(
+  modelFormatsSelector,
+  (modelFormats): Record<string, ConfigurationFormatSchema> => {
+    return Object.fromEntries(
+      (modelFormats || [])
+        .flat()
+        .filter((format: ConfigurationFormatSchema): format is ConfigurationFormatSchema =>
+          Boolean(format),
+        )
+        .map((format: ConfigurationFormatSchema) => [format.name, format]),
+    );
+  },
+);
+
+export const formatsHandlersSelector = createSelector(
+  formatsEntriesSelector,
+  (formats): ConfigurationHandlersIds => {
+    return {
+      [GPML_HANDLER_NAME_ID]: formats[GPML_HANDLER_NAME_ID]?.handler,
+      [SBML_HANDLER_NAME_ID]: formats[SBML_HANDLER_NAME_ID]?.handler,
+      [CELL_DESIGNER_SBML_HANDLER_NAME_ID]: formats[CELL_DESIGNER_SBML_HANDLER_NAME_ID]?.handler,
+      [SBGN_ML_HANDLER_NAME_ID]: formats[SBGN_ML_HANDLER_NAME_ID]?.handler,
+    };
+  },
+);
diff --git a/src/redux/configuration/configuration.slice.ts b/src/redux/configuration/configuration.slice.ts
index 7758564a93148b091a89035997757284c363e5ca..5b71ec09cdf82f7578287f0888a4a2ed19346731 100644
--- a/src/redux/configuration/configuration.slice.ts
+++ b/src/redux/configuration/configuration.slice.ts
@@ -1,6 +1,6 @@
 import { createSlice } from '@reduxjs/toolkit';
-import { getConfigurationOptionsReducer, getConfigurationReducer } from './configuration.reducers';
 import { CONFIGURATION_INITIAL_STATE } from './configuration.adapter';
+import { getConfigurationOptionsReducer, getConfigurationReducer } from './configuration.reducers';
 
 export const configurationSlice = createSlice({
   name: 'configuration',
diff --git a/src/redux/configuration/configuration.types.ts b/src/redux/configuration/configuration.types.ts
index 086619ae0b02e56f9a8d4a9a21f26beaebfa4545..e797b88764723d2f18b1c2c7b2898c46d3ade799 100644
--- a/src/redux/configuration/configuration.types.ts
+++ b/src/redux/configuration/configuration.types.ts
@@ -1,4 +1,17 @@
 import { FetchDataState } from '@/types/fetchDataState';
 import { Configuration } from '@/types/models';
+import {
+  CELL_DESIGNER_SBML_HANDLER_NAME_ID,
+  GPML_HANDLER_NAME_ID,
+  SBGN_ML_HANDLER_NAME_ID,
+  SBML_HANDLER_NAME_ID,
+} from './configuration.constants';
 
 export type ConfigurationMainState = FetchDataState<Configuration>;
+
+export interface ConfigurationHandlersIds {
+  [GPML_HANDLER_NAME_ID]?: string;
+  [SBML_HANDLER_NAME_ID]?: string;
+  [CELL_DESIGNER_SBML_HANDLER_NAME_ID]?: string;
+  [SBGN_ML_HANDLER_NAME_ID]?: string;
+}
diff --git a/src/types/models.ts b/src/types/models.ts
index 23d350f7ec57208a8053061a8e61b966a441893e..dce27badd9f02dc755462a39205f5e52abfc7545 100644
--- a/src/types/models.ts
+++ b/src/types/models.ts
@@ -8,7 +8,7 @@ import {
   compartmentPathwaySchema,
 } from '@/models/compartmentPathwaySchema';
 import { configurationOptionSchema } from '@/models/configurationOptionSchema';
-import { configurationSchema } from '@/models/configurationSchema';
+import { configurationSchema, formatSchema } from '@/models/configurationSchema';
 import { disease } from '@/models/disease';
 import { drugSchema } from '@/models/drugSchema';
 import { elementSearchResult, elementSearchResultType } from '@/models/elementSearchResult';
@@ -63,6 +63,7 @@ export type SessionValid = z.infer<typeof sessionSchemaValid>;
 export type Login = z.infer<typeof loginSchema>;
 export type ConfigurationOption = z.infer<typeof configurationOptionSchema>;
 export type Configuration = z.infer<typeof configurationSchema>;
+export type ConfigurationFormatSchema = z.infer<typeof formatSchema>;
 export type OverlayBioEntity = z.infer<typeof overlayBioEntitySchema>;
 export type CreatedOverlayFile = z.infer<typeof createdOverlayFileSchema>;
 export type UploadedOverlayFileContent = z.infer<typeof uploadedOverlayFileContentSchema>;