Add new code new version
[sdc.git] / openecomp-ui / test / nfvo-components / panel / VersionController / versionControllerUtils.test.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 import expect from 'expect';
22 import deepFreeze from 'deep-freeze';
23 import Configuration from 'sdc-app/config/Configuration.js';
24 import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
25 import {statusEnum} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
26
27 const status = 'testStatus';
28
29 describe('versionController UI Component', () => {
30
31         it('function does exist', () => {
32                 expect(VersionControllerUtils).toExist();
33         });
34
35         it('validating getCheckOutStatusKindByUserID - without "UserID"', () => {
36                 var result = VersionControllerUtils.getCheckOutStatusKindByUserID(status);
37                 expect(result.status).toBe(status);
38                 expect(result.isCheckedOut).toBe(true);
39         });
40
41         it('validating getCheckOutStatusKindByUserID - without "UserID" with locking user', () => {
42                 var result = VersionControllerUtils.getCheckOutStatusKindByUserID(status, 'locking user');
43                 expect(result.status).toBe(statusEnum.LOCK_STATUS);
44                 expect(result.isCheckedOut).toBe(false);
45         });
46
47         it('validating getCheckOutStatusKindByUserID - with "UserID" with configuration set', () => {
48                 const userId = 'att';
49
50                 Configuration.set('ATTUserID', userId);
51                 var result = VersionControllerUtils.getCheckOutStatusKindByUserID(status, userId);
52                 Configuration.set('ATTUserID', undefined);
53
54                 expect(result.status).toBe(status);
55                 expect(result.isCheckedOut).toBe(true);
56         });
57
58
59
60         it('validating isCheckedOutByCurrentUser - when resource is not checked out', () => {
61                 const currentUser = 'current';
62                 const resource = deepFreeze({
63                         version: '0.6',
64                         viewableVersions: ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'],
65                         status: 'Final'
66                 });
67
68                 Configuration.set('ATTUserID', currentUser);
69                 const result = VersionControllerUtils.isCheckedOutByCurrentUser(resource);
70                 Configuration.set('ATTUserID', undefined);
71
72                 expect(result).toBe(false);
73         });
74
75         it('validating isCheckedOutByCurrentUser - when resource is checked out', () => {
76                 const currentUser = 'current';
77                 const resource = deepFreeze({
78                         version: '0.6',
79                         viewableVersions: ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'],
80                         status: 'Locked',
81                         lockingUser: 'current'
82                 });
83
84                 Configuration.set('ATTUserID', currentUser);
85                 const result = VersionControllerUtils.isCheckedOutByCurrentUser(resource);
86                 Configuration.set('ATTUserID', undefined);
87
88                 expect(result).toBe(true);
89         });
90
91         it('validating isCheckedOutByCurrentUser - when resource is checked out by another user', () => {
92                 const currentUser = 'current';
93                 const resource = deepFreeze({
94                         version: '0.6',
95                         viewableVersions: ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'],
96                         status: 'Locked',
97                         lockingUser: 'another'
98                 });
99
100                 Configuration.set('ATTUserID', currentUser);
101                 const result = VersionControllerUtils.isCheckedOutByCurrentUser(resource);
102                 Configuration.set('ATTUserID', undefined);
103
104                 expect(result).toBe(false);
105         });
106
107
108
109         it('validating isReadOnly - when resource is not checked out', () => {
110                 const currentUser = 'current';
111                 const resource = deepFreeze({
112                         version: '0.6',
113                         viewableVersions: ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'],
114                         status: 'Final'
115                 });
116
117                 Configuration.set('ATTUserID', currentUser);
118                 const result = VersionControllerUtils.isReadOnly(resource);
119                 Configuration.set('ATTUserID', undefined);
120
121                 expect(result).toBe(true);
122         });
123
124         it('validating isReadOnly - when resource is checked out', () => {
125                 const currentUser = 'current';
126                 const resource = deepFreeze({
127                         version: '0.6',
128                         viewableVersions: ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'],
129                         status: 'Locked',
130                         lockingUser: 'current'
131                 });
132
133                 Configuration.set('ATTUserID', currentUser);
134                 const result = VersionControllerUtils.isReadOnly(resource);
135                 Configuration.set('ATTUserID', undefined);
136
137                 expect(result).toBe(false);
138         });
139
140         it('validating isReadOnly - when version of resource is not latest', () => {
141                 const currentUser = 'current';
142                 const resource = deepFreeze({
143                         version: '0.2',
144                         viewableVersions: ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'],
145                         status: 'Locked',
146                         lockingUser: 'current'
147                 });
148
149                 Configuration.set('ATTUserID', currentUser);
150                 const result = VersionControllerUtils.isReadOnly(resource);
151                 Configuration.set('ATTUserID', undefined);
152
153                 expect(result).toBe(true);
154         });
155
156         it('validating isReadOnly - when resource is checked out by another user', () => {
157                 const currentUser = 'current';
158                 const resource = deepFreeze({
159                         version: '0.6',
160                         viewableVersions: ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'],
161                         status: 'Locked',
162                         lockingUser: 'another'
163                 });
164
165                 Configuration.set('ATTUserID', currentUser);
166                 const result = VersionControllerUtils.isReadOnly(resource);
167                 Configuration.set('ATTUserID', undefined);
168
169                 expect(result).toBe(true);
170         });
171 });
172