Add collaboration feature
Issue-ID: SDC-767
Change-Id: I14fb4c1f54086ed03a56a7ff7fab9ecd40381795
Signed-off-by: talig <talig@amdocs.com>
diff --git a/openecomp-ui/test-utils/MockRest.js b/openecomp-ui/test-utils/MockRest.js
index c49d53d..6cc676a 100644
--- a/openecomp-ui/test-utils/MockRest.js
+++ b/openecomp-ui/test-utils/MockRest.js
@@ -76,5 +76,19 @@
resetQueue() {
initQueue();
+ },
+
+ checkEmptyQueue() {
+ let isEmpty = true;
+ let message = 'Check following calls: ';
+ for (let operationType in queue) {
+ if (queue[operationType].length > 0) {
+ isEmpty = false;
+ message += operationType;
+ }
+ }
+ if (!isEmpty) {
+ throw new Error('Queue is not empty, ' + message);
+ }
}
};
diff --git a/openecomp-ui/test-utils/ShowMore.js b/openecomp-ui/test-utils/ShowMore.js
new file mode 100644
index 0000000..a01ae6a
--- /dev/null
+++ b/openecomp-ui/test-utils/ShowMore.js
@@ -0,0 +1,10 @@
+import React from 'react';
+
+const ShowMore = ({children}) => {
+ if (children.length > 50) {
+ return (<div>Show Message With More Mock</div>);
+ } else {
+ return (<div>Show Message Mock</div>);
+ }
+};
+export default ShowMore;
\ No newline at end of file
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 0000000..8301a27
--- /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);
+ });
diff --git a/openecomp-ui/test-utils/factories/common/VersionFactory.js b/openecomp-ui/test-utils/factories/common/VersionFactory.js
new file mode 100644
index 0000000..66db6d6
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/common/VersionFactory.js
@@ -0,0 +1,31 @@
+/*!
+ * 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 IdMixin from '../mixins/IdMixin.js';
+
+export default new Factory()
+ .extend(IdMixin)
+ .option('isCertified', false)
+ .attrs({
+ baseId: () => randomstring.generate(),
+ description: () => randomstring.generate(),
+ name: () => randomstring.generate(),
+ creationTime: () => new Date().getTime(),
+ modificationTime: () => new Date().getTime(),
+ additionalInfo: () => { return {OptionalCreationMethods: ['major', 'minor']}; }
+ })
+ .attr('status', ['isCertified'], (isCertified) => {return isCertified ? 'Certified' : 'Draft'; });
diff --git a/openecomp-ui/test-utils/factories/licenseModel/LicenseModelFactories.js b/openecomp-ui/test-utils/factories/licenseModel/LicenseModelFactories.js
index 716eb15..7cda105 100644
--- a/openecomp-ui/test-utils/factories/licenseModel/LicenseModelFactories.js
+++ b/openecomp-ui/test-utils/factories/licenseModel/LicenseModelFactories.js
@@ -17,7 +17,6 @@
import { selectedButton } from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js';
import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
import randomstring from 'randomstring';
-import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
Factory.define('LicenseModelBaseFactory')
.attrs({
@@ -29,7 +28,7 @@
export const LicenseModelCreationFactory = new Factory()
.attrs({
data: {
- vendorName: () => randomstring.generate(),
+ name: () => randomstring.generate(),
description: () => randomstring.generate()
}
});
@@ -48,13 +47,8 @@
export const FinalizedLicenseModelFactory = new Factory()
.extend(IdMixin)
.attrs({
- vendorName: randomstring.generate(),
- description: randomstring.generate(),
- iconRef: 'iconRef_lBpEgzhuiY1',
- version: {id: '1.0', label: '1.0'},
- status: 'Final',
- viewableVersion: [{id: '1.0', label: '1.0'}],
- finalVersions: [{id: '1.0', label: '1.0'}]
+ name: randomstring.generate(),
+ description: randomstring.generate()
});
export const LicenseModelOverviewFactory = new Factory()
@@ -62,8 +56,10 @@
licenseModelEditor: {
data: {
...Factory.attributes('LicenseModelBaseFactory'),
- id: () => Math.floor(Math.random() * (1000 - 1) + 1),
- ...VersionControllerUtilsFactory.build()
+ id: () => Math.floor(Math.random() * 1000 + 1),
+ version: {
+ id: Math.floor(Math.random() * 1000 + 1)
+ }
}
},
entitlementPool: {},
diff --git a/openecomp-ui/test-utils/factories/revisions/RevisionsFactories.js b/openecomp-ui/test-utils/factories/revisions/RevisionsFactories.js
new file mode 100644
index 0000000..57c5e70
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/revisions/RevisionsFactories.js
@@ -0,0 +1,30 @@
+/*!
+ * 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 IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+
+
+export const RevisionsPagePropsFactory = new Factory()
+ .sequence('user')
+ .attr('message', 'message')
+ .attr('date', new Date().getTime())
+ .extend(IdMixin).after(function(revisions) {
+ let longMessage = revisions.user % 2;
+ revisions.user = 'Carlos Santana';
+ revisions.message = (longMessage) ? randomstring.generate(60) : randomstring.generate(10);
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
index 550e1a6..8cb2221 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
@@ -26,13 +26,10 @@
.option('createPoll', false)
.option('createVes', false)
- .attr(trap, ['createTrap'], (createTrap) => {return (createTrap) ? randomstring.generate() : undefined})
- .attr(poll, ['createPoll'], (createPoll) => {return (createPoll) ? randomstring.generate() : undefined})
- .attr(ves, ['createVes'], (createVes) => {return (createVes) ? randomstring.generate() : undefined});
+ .attr(trap, ['createTrap'], (createTrap) => createTrap ? randomstring.generate() : undefined)
+ .attr(poll, ['createPoll'], (createPoll) => createPoll ? randomstring.generate() : undefined)
+ .attr(ves, ['createVes'], (createVes) => createVes ? randomstring.generate() : undefined);
export const VSPComponentsMonitoringViewFactory = new Factory()
.extend(VSPComponentsMonitoringRestFactory);
-// .after(monitoring => {
-
-// });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js
index 6521c58..fab3f5f 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js
@@ -23,10 +23,10 @@
.attrs({ sourceId: () => randomstring.generate(),
targetId: () => randomstring.generate(),
relationType: relationTypes.DEPENDS_ON
- });
+ }).extend(IdMixin);
export const SoftwareProductDependenciesResponseFactory = new Factory()
- .extend(SoftwareProductDependenciesBaseFactory);
+ .extend(SoftwareProductDependenciesBaseFactory).extend(IdMixin);
export const SoftwareProductDependenciesStoreFactory = new Factory()
.extend(SoftwareProductDependenciesBaseFactory)
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js
index 5c59361..a820b70 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js
@@ -16,7 +16,6 @@
import {Factory} from 'rosie';
import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
import randomstring from 'randomstring';
-import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
Factory.define('VSPBaseFactory')
.attrs(
@@ -30,7 +29,7 @@
licensingVersion: {id: '1', label: '1'},
licensingData: {},
icon: 'icon',
- version: {id: '1', label: '1'}
+ version: {id: '123'}
}
);
@@ -46,7 +45,6 @@
export const VSPEditorFactory = new Factory()
.extend('VSPBaseFactory')
- .extend(VersionControllerUtilsFactory)
.extend(IdMixin);
export const VSPEditorPostFactory = new Factory()
@@ -54,7 +52,6 @@
export const VSPEditorFactoryWithLicensingData = new Factory()
.extend('VSPBaseFactory')
- .extend(VersionControllerUtilsFactory)
.extend('LicensingDataMixin')
.extend(IdMixin);
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js
index 8c96407..ba3946b 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js
@@ -14,17 +14,9 @@
* permissions and limitations under the License.
*/
import {Factory} from 'rosie';
-import {statusEnum} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
export default new Factory()
.attrs({
version: { id: '1.2', label: '1.2'},
- viewableVersions: [{id: '1.0', label: '1.0'}, {id: '1.1', label: '1.1'}, {id: '1.2', label: '1.2'}],
- status: statusEnum.CHECK_OUT_STATUS,
- lockingUser: 'current'
- }).after(function(inst) {
- if (inst.status !== statusEnum.CHECK_OUT_STATUS) {
- delete inst.lockingUser;
- }
+ viewableVersions: [{id: '1.0', label: '1.0'}, {id: '1.1', label: '1.1'}, {id: '1.2', label: '1.2'}]
});
-
diff --git a/openecomp-ui/test-utils/factories/users/UsersFactories.js b/openecomp-ui/test-utils/factories/users/UsersFactories.js
new file mode 100644
index 0000000..cbafbe0
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/users/UsersFactories.js
@@ -0,0 +1,35 @@
+/*!
+ * 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';
+
+Factory.define('UserFactory')
+ .attrs(
+ {
+ firstName: () => randomstring.generate(5),
+ lastName: () => randomstring.generate(6),
+ userId: () => randomstring.generate(11),
+ email: randomstring.generate(5) + '@' + randomstring.generate(6) + '.com',
+ role: 'OPS',
+ lastLoginTime: 0,
+ status: 'ACTIVE',
+ fullName: () => randomstring.generate(5) + ' ' + randomstring.generate(6),
+ }
+);
+
+
+export const UserFactory = new Factory()
+ .extend('UserFactory');
\ No newline at end of file
diff --git a/openecomp-ui/test-utils/factories/versionsPage/VersionsPageCreationFactories.js b/openecomp-ui/test-utils/factories/versionsPage/VersionsPageCreationFactories.js
new file mode 100644
index 0000000..c57ac87
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/versionsPage/VersionsPageCreationFactories.js
@@ -0,0 +1,38 @@
+/*!
+ * 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';
+
+export const VersionsPageCreationFactory = new Factory()
+ .attrs({
+ name: () => randomstring.generate(),
+ description: () => randomstring.generate(),
+ creationMethod: () => ['major', 'minor'][Math.round(Math.random())]
+ });
+
+export const VersionsPageCreationFieldInfoFactory = new Factory()
+ .attrs({
+ description: () => ({
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'required', data: true}, {type: 'maxLength', data: 1000}]
+ }),
+ creationMethod: () => ({
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'required', data: true}]
+ })
+ });
diff --git a/openecomp-ui/test-utils/factories/versionsPage/VersionsPageFactories.js b/openecomp-ui/test-utils/factories/versionsPage/VersionsPageFactories.js
new file mode 100644
index 0000000..49ceddc
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/versionsPage/VersionsPageFactories.js
@@ -0,0 +1,27 @@
+/*!
+ * 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 'test-utils/factories/common/VersionFactory.js';
+
+export const VersionsPageAdditionalPropsFactory = new Factory()
+ .attrs({
+ itemId: () => randomstring.generate(),
+ itemType: () => 'vendor-license-models',
+ additionalProps: () => {},
+ baseVersion: () => VersionFactory.build()
+ });
diff --git a/openecomp-ui/test-utils/failedTestReport.js b/openecomp-ui/test-utils/failedTestReport.js
index 9520cc9..ed88ccd 100644
--- a/openecomp-ui/test-utils/failedTestReport.js
+++ b/openecomp-ui/test-utils/failedTestReport.js
@@ -22,7 +22,7 @@
console.log('Failure Summary: \n');
}
report.testResults.forEach((suite) => {
- if(suite.status == 'failed') {
+ if(suite.status === 'failed') {
console.log('Suite: ' + suite.name);
suite.assertionResults.forEach((test) => {
if (test.status === 'failed') {