Remove unused code
[aai/sparky-fe.git] / test / app / configurableViews / ConfigurableViewActions.test.js
diff --git a/test/app/configurableViews/ConfigurableViewActions.test.js b/test/app/configurableViews/ConfigurableViewActions.test.js
new file mode 100644 (file)
index 0000000..9d7bc9e
--- /dev/null
@@ -0,0 +1,208 @@
+import configureStore from 'redux-mock-store';
+import thunk from 'redux-thunk'
+import fetchMock from 'fetch-mock';
+import {
+  configurableViewsActionTypes
+} from 'app/configurableViews/ConfigurableViewConstants.js';
+import {
+  newCustomComponentsEvent,
+  setCustomRoutes,
+  getConfigurableViewConfigs
+} from 'app/configurableViews/ConfigurableViewActions.js'
+
+
+describe('ConfigurableViewActionTests', () => {
+  const sampleConfig = {
+    "id": "aggregateReport",
+    "title": "Aggregate Report",
+    "iconURL": "resources/images/sampleAggReportIcon.svg",
+    "iconHoverURL": "resources/images/sampleAggReportIconHover.svg",
+    "viewType": "ConfigurableCardView",
+    "layout": {
+      "draggable": true,
+      "resizable": true,
+      "rowHeight": 100,
+      "cardMargin": [
+        20,
+        20
+      ],
+      "cardPadding": [
+        20,
+        20
+      ],
+      "breakpoints": [
+        {
+          "id": "lg",
+          "col": 12,
+          "width": 1400
+        },
+        {
+          "id": "md",
+          "col": 8,
+          "width": 1200
+        },
+        {
+          "id": "sm",
+          "col": 6,
+          "width": 1024
+        }
+      ]
+    },
+    "components": [
+      {
+        "id": "visualization1",
+        "title": "Total VNFs",
+        "queryData": {
+          "eventId": "visualization1",
+          "api": "/get-component-data",
+          "method": "POST",
+          "headers": {
+            "accept": "application/json"
+          },
+          "componentDataDescriptor": {
+            "index": "aggregate_generic-vnf_index",
+            "queryType": "aggregation",
+            "query": {
+              "filter": {},
+              "queries": [],
+              "aggregations": [
+                {
+                  "name": "prov-status",
+                  "aggregation": {
+                    "group-by": {
+                      "field": "prov-status",
+                      "size": 0
+                    }
+                  }
+                },
+                {
+                  "name": "orchestration-status",
+                  "aggregation": {
+                    "group-by": {
+                      "field": "orchestration-status",
+                      "size": 0
+                    }
+                  }
+                },
+                {
+                  "name": "nf-type",
+                  "aggregation": {
+                    "group-by": {
+                      "field": "nf-type",
+                      "size": 0
+                    }
+                  }
+                },
+                {
+                  "name": "nf-role",
+                  "aggregation": {
+                    "group-by": {
+                      "field": "nf-role",
+                      "size": 0
+                    }
+                  }
+                }
+              ]
+            },
+            "responseTransformation": {
+              "type": "count",
+              "spec": {
+                "countType": "total",
+                "countResponseLabel": "display"
+              }
+            }
+          }
+        },
+        "containerData": {
+          "containerType": "NetworkQueryCard",
+          "visualizationType": "text",
+          "visualizationProp": {
+            "display": "",
+            "style": {
+              "textAlign": "center",
+              "fontSize": "50px",
+              "fontWeight": "bold",
+              "paddingTop": "50px"
+            }
+          },
+          "breakpoints": {
+            "lg": {
+              "w": 2,
+              "h": 2,
+              "x": 0,
+              "y": 0
+            },
+            "md": {
+              "w": 2,
+              "h": 2,
+              "x": 0,
+              "y": 0
+            },
+            "sm": {
+              "w": 6,
+              "h": 2,
+              "x": 0,
+              "y": 0
+            }
+          }
+        }
+      }
+    ]
+  };
+
+  it('newCustomComponentsEvent', () => {
+    const components = [
+      {
+        compId: 'someId',
+        compName: 'Some Name'
+      }
+    ];
+    const middlewares = [thunk];
+    const mockStore = configureStore(middlewares);
+    const store = mockStore({});
+    store.dispatch(newCustomComponentsEvent(components));
+    const actions = store.getActions();
+    expect(actions).toEqual([{
+      type: configurableViewsActionTypes.CUSTOM_COMPONENTS_RECEIVED,
+      data: components
+    }]);
+  });
+
+  it('setCustomRoutes', () => {
+    const routes = [
+      {
+        routeName: 'Some Custom Route',
+        path: 'some/route/path'
+      }
+    ];
+    const middlewares = [thunk];
+    const mockStore = configureStore(middlewares);
+    const store = mockStore({});
+    store.dispatch(setCustomRoutes(routes));
+    const actions = store.getActions();
+    expect(actions).toEqual([{
+      type: configurableViewsActionTypes.CUSTOM_ROUTES,
+      data: routes
+    }]);
+  });
+
+  it('getConfigurableViewConfigs', () => {
+    const middlewares = [thunk];
+    const mockStore = configureStore(middlewares);
+    const store = mockStore({});
+    const expectedActions = [
+      {
+        type: configurableViewsActionTypes.CONFIGURABLE_VIEWS_CONFIG_RECEIVED,
+        data: sampleConfig
+      }
+    ];
+    fetchMock.mock('*', sampleConfig);
+
+    return store.dispatch(getConfigurableViewConfigs())
+      .then( () => {
+        const actions = store.getActions();
+        expect(actions).toEqual(expectedActions);
+        fetchMock.restore();
+      });
+  });
+})