aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-ui/test-utils
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-02-19 12:57:33 +0200
committerMichael Lando <ml636r@att.com>2017-02-19 13:47:13 +0200
commitefa037d34be7b1570efdc767c79fad8d4005f10e (patch)
treecf1036ba2728dea8a61492b678fa91954e629403 /openecomp-ui/test-utils
parentf5f13c4f6b6fe3b4d98e349dfd7db59339803436 (diff)
Add new code new version
Change-Id: Ic02a76313503b526f17c3df29eb387a29fe6a42a Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'openecomp-ui/test-utils')
-rw-r--r--openecomp-ui/test-utils/MockRest.js85
-rw-r--r--openecomp-ui/test-utils/Util.js55
2 files changed, 140 insertions, 0 deletions
diff --git a/openecomp-ui/test-utils/MockRest.js b/openecomp-ui/test-utils/MockRest.js
new file mode 100644
index 0000000000..927da6030a
--- /dev/null
+++ b/openecomp-ui/test-utils/MockRest.js
@@ -0,0 +1,85 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+const queue = {
+ fetch: [],
+ save: [],
+ create: [],
+ destroy: []
+};
+
+const initQueue = () => {
+ queue['fetch'] = [];
+ queue['save'] = [];
+ queue['create'] = [];
+ queue['destroy'] = [];
+};
+
+const handleOperation = (handler, options) => {
+ if(typeof handler === 'function') {
+ return Promise.resolve(handler(options));
+ }
+ else {
+ return Promise.resolve(handler);
+ }
+};
+
+export default {
+
+ fetch(baseUrl, options) {
+ const {fetch} = queue;
+ if(!fetch.length) {
+ throw new Error(`Fetch operation was called without proper handler. baseUrl: '${baseUrl}' options: '${options}'`);
+ }
+ return handleOperation(fetch.shift(), {options, baseUrl});
+ },
+
+ save(baseUrl, data, options) {
+ const {save} = queue;
+ if(!save.length) {
+ throw new Error(`Save operation was called without proper handler. baseUrl: '${baseUrl}' options: '${options}'`);
+ }
+ return handleOperation(save.shift(), {data, options, baseUrl});
+ },
+
+ create(baseUrl, data, options) {
+ const {create} = queue;
+ if(!create.length) {
+ throw new Error(`Create operation was called without proper handler. baseUrl: '${baseUrl}' options: '${options}'`);
+ }
+ return handleOperation(create.shift(), {data, options, baseUrl});
+ },
+
+ destroy(baseUrl, options) {
+ const {destroy} = queue;
+ if(!destroy.length) {
+ throw new Error(`Destroy operation was called without proper handler. baseUrl: '${baseUrl}' options: '${options}'`);
+ }
+ return handleOperation(destroy.shift(), {options, baseUrl});
+ },
+
+ addHandler(operation, handler) {
+ queue[operation].push(handler);
+ },
+
+ resetQueue() {
+ initQueue();
+ }
+};
diff --git a/openecomp-ui/test-utils/Util.js b/openecomp-ui/test-utils/Util.js
new file mode 100644
index 0000000000..7146267afe
--- /dev/null
+++ b/openecomp-ui/test-utils/Util.js
@@ -0,0 +1,55 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+import deepFreeze from 'deep-freeze';
+import ReactTestUtils from 'react-addons-test-utils';
+
+//returned object should be treated as immutable.
+export const cloneAndSet = (obj, path, value) => {
+ let retVal = {...obj};
+ let inner = retVal;
+
+ if (typeof path === 'string') {
+ path = path.split('.');
+ }
+
+ for (let i = 0; i < path.length - 1; i++) {
+ inner[path[i]] = {
+ ...inner[path[i]]
+ };
+ inner = inner[path[i]];
+ }
+ inner[path[path.length - 1]] = value;
+ return deepFreeze(retVal);
+};
+
+/**
+ * array findAllRenderedDOMComponentsWithTestId(
+ ReactComponent tree,
+ function test
+ )
+ * @param tree - ReactComponent
+ * @param testId - string
+ * @returns {Array.<T>}
+ */
+export const findAllRenderedComponentsWithTestId = (tree, testId) => {
+ return ReactTestUtils.findAllInRenderedTree(tree, component => component.props.testId === testId);
+};
+