summaryrefslogtreecommitdiffstats
path: root/openecomp-ui/test-utils/factories/common/CurrentScreenFactory.js
diff options
context:
space:
mode:
authortalig <talig@amdocs.com>2017-12-20 14:30:43 +0200
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>2017-12-21 11:12:33 +0000
commit8e9c0653dd6c6862123c9609ae34e1206d86456e (patch)
tree5eeef00ec0677133baa439ca8d7ffd7aca4804b6 /openecomp-ui/test-utils/factories/common/CurrentScreenFactory.js
parent785ebcc95de3e064e843bec04ba7a209d854fc7c (diff)
Add collaboration feature
Issue-ID: SDC-767 Change-Id: I14fb4c1f54086ed03a56a7ff7fab9ecd40381795 Signed-off-by: talig <talig@amdocs.com>
Diffstat (limited to 'openecomp-ui/test-utils/factories/common/CurrentScreenFactory.js')
-rw-r--r--openecomp-ui/test-utils/factories/common/CurrentScreenFactory.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/openecomp-ui/test-utils/factories/common/CurrentScreenFactory.js b/openecomp-ui/test-utils/factories/common/CurrentScreenFactory.js
new file mode 100644
index 0000000000..8301a277cf
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/common/CurrentScreenFactory.js
@@ -0,0 +1,100 @@
+/*!
+ * 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.
+ */
+import {Factory} from 'rosie';
+import randomstring from 'randomstring';
+import VersionFactory from './VersionFactory.js';
+
+export const InitializedItemPermissionFactory = new Factory()
+ .attrs({
+ 'isCertified': false,
+ 'inMerge': false,
+ 'isCollaborator': true
+ });
+
+export const ItemPermissionFactory = new Factory()
+ .extend(InitializedItemPermissionFactory)
+ .attrs({
+ 'isDirty': false,
+ 'isOutOfSync': false,
+ 'isUpToDate': true
+ });
+
+
+export const CurrentScreenPropsFactory = new Factory()
+ .option('versionId', () => randomstring.generate())
+ .option('versionBaseId', () => randomstring.generate())
+ .attrs({
+ softwareProductId: () => randomstring.generate(),
+ licenseModelId: () => randomstring.generate(),
+ isReadOnlyMode: false
+ })
+ .attr('version', [
+ 'versionId', 'versionBaseId'
+ ], (id, baseId) =>
+ VersionFactory.build({id, baseId})
+ );
+
+
+Factory.define('InitializedCurrentScreenFactory')
+ .option('isCertified', false)
+ .option('inMerge', false)
+ .option('isCollaborator', true)
+ .option('isReadOnlyMode', ['isCertified', 'inMerge', 'isCollaborator'], (isCertified, inMerge, isCollaborator) =>
+ isCertified || inMerge || !isCollaborator
+ )
+ .attr('itemPermission', ['isCertified', 'inMerge', 'isCollaborator'], (isCertified, inMerge, isCollaborator) =>
+ InitializedItemPermissionFactory.build({isCollaborator, isCertified, inMerge})
+ )
+ .attr('props', ['isReadOnlyMode'], (isReadOnlyMode) => {
+ return {isReadOnlyMode};
+ });
+export const InitializedCurrentScreenFactory = new Factory().extend('InitializedCurrentScreenFactory');
+
+
+Factory.define('CurrentScreenFactory')
+ .extend('InitializedCurrentScreenFactory')
+ .option('isDirty', false)
+ .option('isOutOfSync', false)
+ .option('isUpToDate', true)
+ .option('version', ['isCertified'], (isCertified) => VersionFactory.build({isCertified}))
+ .attr('itemPermission', [
+ 'isCertified', 'inMerge', 'isCollaborator', 'isDirty', 'isOutOfSync', 'isUpToDate'
+ ], (isCertified, inMerge, isCollaborator, isDirty, isOutOfSync, isUpToDate) =>
+ ItemPermissionFactory.build({isCollaborator, isCertified, inMerge, isDirty, isOutOfSync, isUpToDate})
+ )
+ .attr('props', ['isReadOnlyMode', 'version'], (isReadOnlyMode, version) => {
+ return {isReadOnlyMode, version};
+ });
+export default new Factory().extend('CurrentScreenFactory');
+
+
+export const CurrentScreenFactoryWithProps = new Factory()
+ .extend('CurrentScreenFactory')
+ .option('versionId')
+ .option('versionBaseId')
+ .option('version')
+ .attr('props', [
+ 'isReadOnlyMode', 'versionId', 'versionBaseId', 'version'
+ ], (isReadOnlyMode, id, baseId, version) => {
+ let attrs = {isReadOnlyMode};
+ let options = {};
+
+ if (version !== undefined) { attrs['version'] = version; }
+ if (id !== undefined) { options['versionId'] = id; }
+ if (baseId !== undefined) { options['versionBaseId'] = baseId; }
+
+ return CurrentScreenPropsFactory.build(attrs, options);
+ });