diff --git a/vid-webpack-master/cypress/integration/shared/error.message.popup.e2e.ts b/vid-webpack-master/cypress/integration/shared/error.message.popup.e2e.ts
new file mode 100644
index 0000000..8e78067
--- /dev/null
+++ b/vid-webpack-master/cypress/integration/shared/error.message.popup.e2e.ts
@@ -0,0 +1,33 @@
+///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
+/// <reference types="Cypress" />
+
+import { JsonBuilder } from '../../support/jsonBuilders/jsonBuilder';
+import { AsyncInstantiationModel } from '../../support/jsonBuilders/models/asyncInstantiation.model';
+
+describe('Error message popup', function () {
+  describe('show error on status 500', () => {
+    var jsonBuilderInstantiationBuilder : JsonBuilder<AsyncInstantiationModel> = new JsonBuilder<AsyncInstantiationModel>();
+    beforeEach(() => {
+      cy.window().then((win) => {
+        win.sessionStorage.clear();
+        cy.setReduxState();
+        cy.preventErrorsOnLoading();
+        cy.initAAIMock();
+        cy.initVidMock();
+        cy.login();
+      })
+    });
+
+    it('spinner should display after api call', function () {
+      // adding call with delay of 2000 sec
+      cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json').then((res) => {
+        jsonBuilderInstantiationBuilder.basicJson(res, Cypress.config('baseUrl') + "/asyncInstantiation**", 500,0, "error 500 asyncInstantiation");
+
+        cy.openIframe('app/ui/#/instantiationStatus');
+        cy.get('div.title')
+          .contains('Server not available');
+
+      });
+    });
+  });
+});
diff --git a/vid-webpack-master/cypress/integration/shared/spinner.e2e.ts b/vid-webpack-master/cypress/integration/shared/spinner.e2e.ts
new file mode 100644
index 0000000..35f386f
--- /dev/null
+++ b/vid-webpack-master/cypress/integration/shared/spinner.e2e.ts
@@ -0,0 +1,36 @@
+///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
+/// <reference types="Cypress" />
+import { JsonBuilder } from '../../support/jsonBuilders/jsonBuilder';
+import { AsyncInstantiationModel } from '../../support/jsonBuilders/models/asyncInstantiation.model';
+
+describe('Spinner', function () {
+  describe('spinner', () => {
+    var jsonBuilderInstantiationBuilder : JsonBuilder<AsyncInstantiationModel> = new JsonBuilder<AsyncInstantiationModel>();
+    beforeEach(() => {
+      cy.window().then((win) => {
+        win.sessionStorage.clear();
+        cy.setReduxState();
+        cy.preventErrorsOnLoading();
+        cy.initAAIMock();
+        cy.initVidMock();
+        cy.login();
+      })
+    });
+
+    it('spinner should display after api call', function () {
+      cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json').then((res) => {
+
+        jsonBuilderInstantiationBuilder.basicJson(res,
+          Cypress.config('baseUrl') + "/asyncInstantiation**",
+          200,
+          2000,
+          "error 500 asyncInstantiation");
+        cy.openIframe('app/ui/#/instantiationStatus');
+
+        cy.get('.spinner')
+          .and('be.visible');
+
+      });
+    });
+  });
+});
