diff --git a/src/mocks/mock_bibi_configuration.bibi b/src/mocks/mock_bibi_configuration.bibi
new file mode 100644
index 0000000000000000000000000000000000000000..5cf47527e7fb56a7212b821f7912536609e11d0a
--- /dev/null
+++ b/src/mocks/mock_bibi_configuration.bibi
@@ -0,0 +1,15 @@
+<ns1:bibi 
+  xmlns:ns1="http://schemas.humanbrainproject.eu/SP10/2014/BIBI" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <ns1:brainModel>
+    <ns1:file>braitenberg.py</ns1:file>
+    <ns1:populations from="0" population="sensors" to="5" xsi:type="ns1:Range" />
+    <ns1:populations from="5" population="actors" to="8" xsi:type="ns1:Range" />
+    <ns1:populations from="0" population="record" to="8" xsi:type="ns1:Range" />
+  </ns1:brainModel>
+  <ns1:bodyModel robotId="husky">husky_model/model.sdf</ns1:bodyModel>
+  <ns1:transferFunction src="all_neurons_spike_monitor.py" xsi:type="ns1:PythonTransferFunction" />
+  <ns1:transferFunction src="left_wheel_neuron_rate_monitor.py" xsi:type="ns1:PythonTransferFunction" />
+  <ns1:transferFunction src="linear_twist.py" xsi:type="ns1:PythonTransferFunction" />
+  <ns1:transferFunction src="eye_sensor_transmit.py" xsi:type="ns1:PythonTransferFunction" />
+</ns1:bibi>
\ No newline at end of file
diff --git a/src/mocks/mock_experiment_configuration.exc b/src/mocks/mock_experiment_configuration.exc
new file mode 100644
index 0000000000000000000000000000000000000000..c818ddfdf805b3f8ce72f84337db5b538a83bd0b
--- /dev/null
+++ b/src/mocks/mock_experiment_configuration.exc
@@ -0,0 +1,26 @@
+<ExD 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+  xmlns="http://schemas.humanbrainproject.eu/SP10/2014/ExDConfig" xsi:schemaLocation="http://schemas.humanbrainproject.eu/SP10/2014/ExDConfig ../ExDConfFile.xsd">
+  <name>Holodeck Husky Braitenberg experiment</name>
+  <thumbnail>ExDXMLExample.jpg</thumbnail>
+  <description>This experiment loads the Husky robot from Clearpath Robotics in the Holodeck environment.
+        If the user starts the experiment, the Braitenberg vehicle network is executed
+        and the robot will turn around itself in place, until the camera detects a red color. Then,
+        the robot will move towards the colored object. In this experiment, the user can interact
+        and change the color of both screens by clicking on them with the right mouse button.</description>
+  <tags>husky robotics holodeck braitenberg</tags>
+  <timeout>840</timeout>
+  <configuration type="3d-settings" src="ExDXMLExample.ini" />
+  <configuration type="brainvisualizer" src="brainvisualizer.json" />
+  <configuration type="user-interaction-settings" src="ExDXMLExample.uis" />
+  <maturity>production</maturity>
+  <environmentModel src="virtual_room.sdf">
+    <robotPose robotId="husky" x="0.0" y="0.0" z="0.5" roll="0.0" pitch="-0.0" yaw="3.14159265359" />
+  </environmentModel>
+  <bibiConf src="bibi_configuration.bibi" />
+  <cameraPose>
+    <cameraPosition x="5.056825994369357" y="-1.0210998541555323" z="2.697598759953974" />
+    <cameraLookAt x="0" y="0" z="0.49999" />
+  </cameraPose>
+  <cloneDate>2021-07-05T15:20:29</cloneDate>
+</ExD>
\ No newline at end of file
diff --git a/src/mocks/mock_husky_event.json b/src/mocks/mock_husky_event.json
new file mode 100644
index 0000000000000000000000000000000000000000..89e1ad9cb985355da42a7619574084fd65ae3516
--- /dev/null
+++ b/src/mocks/mock_husky_event.json
@@ -0,0 +1,10 @@
+[
+  {
+    "webkitRelativePath": "./mock_experiment_configuration.exc",
+    "type": "exc"
+  },
+  {
+    "webkitRelativePath": "./mock_bibi_configuration.bibi",
+    "type": "bibi"
+  }
+]
\ No newline at end of file
diff --git a/src/mocks/mock_scan_storage_response.json b/src/mocks/mock_scan_storage_response.json
new file mode 100644
index 0000000000000000000000000000000000000000..afd252ca68505ea50bfbfee034c3c318579ef324
--- /dev/null
+++ b/src/mocks/mock_scan_storage_response.json
@@ -0,0 +1,4 @@
+{
+  "deletedFolders":[0,1],
+  "addedFolders": [2]
+}
\ No newline at end of file
diff --git a/src/mocks/mock_zip_responses.json b/src/mocks/mock_zip_responses.json
new file mode 100644
index 0000000000000000000000000000000000000000..a255a0985dcef21706bbc399693f53d7006be465
--- /dev/null
+++ b/src/mocks/mock_zip_responses.json
@@ -0,0 +1,11 @@
+[
+  {
+    "zipBaseFolderName": "0",
+    "destFolderName": "1"
+
+  },
+  {
+    "zipBaseFolderName": "0",
+    "destFolderName": "2"
+  }
+]
\ No newline at end of file
diff --git a/src/services/__tests__/dialog-service.test.js b/src/services/__tests__/dialog-service.test.js
index dce12befa2b01295109d20924aba3cb0fad7d527..5f384e40fc433245f4c830d07aff878a56bdd150 100644
--- a/src/services/__tests__/dialog-service.test.js
+++ b/src/services/__tests__/dialog-service.test.js
@@ -27,7 +27,7 @@ test('should emit an event on network error', () => {
   jest.spyOn(DialogService.instance, 'networkError').mockImplementation(() => {
     return Promise.resolve();
   });
-  let NetworkError = MockDialog
+  let NetworkError = MockDialog;
 
   let confirmNetworkError = (startingNetwork) => {
     expect(startingNetwork).toEqual(NetworkError);
@@ -47,7 +47,7 @@ test('should emit an event on data error', () => {
   jest.spyOn(DialogService.instance, 'dataError').mockImplementation(() => {
     return Promise.resolve();
   });
-  let DataError = MockDialog
+  let DataError = MockDialog;
 
   let confirmDataError = (startingData) => {
     expect(startingData).toEqual(DataError);
@@ -67,7 +67,7 @@ test('should emit an event on simulation error', () => {
   jest.spyOn(DialogService.instance, 'simulationError').mockImplementation(() => {
     return Promise.resolve();
   });
-  let SimulationError = MockDialog
+  let SimulationError = MockDialog;
 
   let confirmSimulationError = (startingSimulation) => {
     expect(startingSimulation).toEqual(SimulationError);
@@ -87,7 +87,7 @@ test('should emit an event on progress notification', () => {
   jest.spyOn(DialogService.instance, 'progressNotification').mockImplementation(() => {
     return Promise.resolve();
   });
-  let ProgressNotification = MockDialog
+  let ProgressNotification = MockDialog;
 
   let confirmProgressNotification = (startingProgress) => {
     expect(startingProgress).toEqual(ProgressNotification);
@@ -107,8 +107,7 @@ test('should emit an event on warning notification', () => {
   jest.spyOn(DialogService.instance, 'warningNotification').mockImplementation(() => {
     return Promise.resolve();
   });
-
-  let WarningNotification = MockDialog
+  let WarningNotification = MockDialog;
 
   let confirmWarningNotification = (startingWarning) => {
     expect(startingWarning).toEqual(WarningNotification);
diff --git a/src/services/experiments/files/__tests__/import-experiment-service.test.js b/src/services/experiments/files/__tests__/import-experiment-service.test.js
index b6163b4d7e67a98829db4b38b5dd41cedd332e0f..e48cefb9b8a5810a223767cb932222f0d0c69757 100644
--- a/src/services/experiments/files/__tests__/import-experiment-service.test.js
+++ b/src/services/experiments/files/__tests__/import-experiment-service.test.js
@@ -5,9 +5,9 @@ import '@testing-library/jest-dom';
 import 'jest-fetch-mock';
 
 import ImportExperimentService from '../import-experiment-service';
-import MockEvent from '../../../../mocks/mock-event'
-import MockResponse from '../../../../mocks/mock-response'
-import MockResponses from '../../../../mocks/mock-responses'
+
+import MockScanStorageResponse from '../../../../mocks/mock_scan_storage_response.json';
+import MockZipResponses from '../../../../mocks/mock_zip_responses.json';
 
 test('makes sure that invoking the constructor fails with the right message', () => {
   expect(() => {
@@ -18,3 +18,14 @@ test('makes sure that invoking the constructor fails with the right message', ()
   }).toThrowError(Error('Use ImportExperimentService.instance'));
 });
 
+test('makes sure zip responses are encapsulated in an object', async () => {
+  let importZipResponses = {zipBaseFolderName:['0', '0'], destFolderName:['1', '2'], numberOfZips: 2};
+  expect(await ImportExperimentService.instance.getImportZipResponses(
+    MockZipResponses.map((response) => new Response(JSON.stringify(response))))).toStrictEqual(importZipResponses);
+});
+
+test('makes sure storage response is prepared', async () => {
+  let scanStorageResponse = {deletedFoldersNumber:2, addedFoldersNumber:1, deletedFolders:'0, 1', addedFolders:'2' };
+  expect(await ImportExperimentService.instance.getScanStorageResponse(
+    new Response(JSON.stringify(MockScanStorageResponse)))).toStrictEqual(scanStorageResponse);
+});
\ No newline at end of file
diff --git a/src/services/experiments/files/import-experiment-service.js b/src/services/experiments/files/import-experiment-service.js
index e726c3a9c3dffcf6e1b8713634c4c9000275d842..28ea5bf2f392ca08144d87c592ae0b9b09e10c97 100644
--- a/src/services/experiments/files/import-experiment-service.js
+++ b/src/services/experiments/files/import-experiment-service.js
@@ -9,7 +9,7 @@ const scanStorageURL = `${config.api.proxy.url}${endpoints.proxy.storage.scanSto
 
 /**
  * The Import Experiment Service performs the requests (Extract),
- * processes data such as zip or folder (Transform), 
+ * processes data such as zip or folder (Transform),
  * and passes them to the Import Experiment Component (Load).
  * Errors are handled by communicating witht he Error Handler Service.
  */
@@ -53,13 +53,13 @@ export default class ImportExperimentService extends HttpService {
     return _instance;
   }
 
-  getImportZipResponses(responses) {
+  async getImportZipResponses(responses) {
     let importZipResponses = {
       zipBaseFolderName: [],
       destFolderName: []
     };
     importZipResponses.numberOfZips = responses.length;
-    responses.forEach(async response =>{
+    await responses.forEach(async response =>{
       response = await response.json();
       importZipResponses['zipBaseFolderName'].push(response['zipBaseFolderName']);
       importZipResponses['destFolderName'].push(response['destFolderName']);
@@ -91,6 +91,7 @@ export default class ImportExperimentService extends HttpService {
     }
     let promises = [];
     Array.from(files).forEach(file => {
+      console.log(file);
       promises.push(
         new Promise((resolve, reject) => {
           let reader = new FileReader();
@@ -140,7 +141,7 @@ export default class ImportExperimentService extends HttpService {
     });
   }
 
-  readZippedExperimentExperiment(event) {
+  readZippedExperiment(event) {
     let files = event.target.files;
     let zipFiles = [];
     Array.from(files).forEach(file => {
@@ -157,7 +158,7 @@ export default class ImportExperimentService extends HttpService {
   }
 
   importZippedExperiment(event) {
-    let promises = this.readZippedExperimentExperiment(event)
+    let promises = this.readZippedExperiment(event)
       .then(zipContents =>
         zipContents.map(zipContent =>
           this.httpRequestPOST(importExperimentURL, zipContent, options)