@amanat-qa/utils-frontend 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/API/baseAPI.js +119 -0
- package/dist/DB/baseDB.js +82 -0
- package/dist/data/JSONLoader.js +9 -0
- package/{src → dist}/data/dataUtils.js +69 -109
- package/{src → dist}/data/filesParser.js +21 -28
- package/dist/data/gitlabCIGenerator.js +37 -0
- package/{src → dist}/index.js +3 -1
- package/{src → dist}/log/logger.js +26 -19
- package/{src → dist}/random/randomizer.js +19 -57
- package/dist/str/strUtils.js +11 -0
- package/{src → dist}/time/timeUtils.js +17 -22
- package/package.json +30 -18
- package/src/API/baseAPI.js +0 -76
- package/src/DB/baseDB.js +0 -62
- package/src/data/JSONLoader.js +0 -8
- package/src/data/gitlabCIGenerator.js +0 -62
- package/src/str/strUtils.js +0 -14
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError("attempted to use private field on non-instance"); return e; }
|
|
4
|
+
var id = 0;
|
|
5
|
+
function _classPrivateFieldLooseKey(e) { return "__private_" + id++ + "_" + e; }
|
|
6
|
+
const axios = require('axios');
|
|
7
|
+
var _baseURL = /*#__PURE__*/_classPrivateFieldLooseKey("baseURL");
|
|
8
|
+
var _logString = /*#__PURE__*/_classPrivateFieldLooseKey("logString");
|
|
9
|
+
var _timeout = /*#__PURE__*/_classPrivateFieldLooseKey("timeout");
|
|
10
|
+
var _headers = /*#__PURE__*/_classPrivateFieldLooseKey("headers");
|
|
11
|
+
var _logBaseURL = /*#__PURE__*/_classPrivateFieldLooseKey("logBaseURL");
|
|
12
|
+
var _axiosInstance = /*#__PURE__*/_classPrivateFieldLooseKey("axiosInstance");
|
|
13
|
+
class BaseAPI {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
Object.defineProperty(this, _baseURL, {
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(this, _logString, {
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, _timeout, {
|
|
24
|
+
writable: true,
|
|
25
|
+
value: void 0
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, _headers, {
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(this, _logBaseURL, {
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, _axiosInstance, {
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
_classPrivateFieldLooseBase(this, _baseURL)[_baseURL] = options.baseURL;
|
|
40
|
+
_classPrivateFieldLooseBase(this, _logString)[_logString] = options.logString;
|
|
41
|
+
_classPrivateFieldLooseBase(this, _timeout)[_timeout] = options.timeout;
|
|
42
|
+
_classPrivateFieldLooseBase(this, _headers)[_headers] = options.headers;
|
|
43
|
+
_classPrivateFieldLooseBase(this, _axiosInstance)[_axiosInstance] = this.createInstance();
|
|
44
|
+
}
|
|
45
|
+
createInstance() {
|
|
46
|
+
if (_classPrivateFieldLooseBase(this, _logString)[_logString]) _classPrivateFieldLooseBase(this, _logBaseURL)[_logBaseURL] = `${_classPrivateFieldLooseBase(this, _logString)[_logString]} ${_classPrivateFieldLooseBase(this, _baseURL)[_baseURL]}`;
|
|
47
|
+
return axios.create({
|
|
48
|
+
baseURL: _classPrivateFieldLooseBase(this, _baseURL)[_baseURL],
|
|
49
|
+
timeout: _classPrivateFieldLooseBase(this, _timeout)[_timeout],
|
|
50
|
+
headers: _classPrivateFieldLooseBase(this, _headers)[_headers]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async get(endpoint, params) {
|
|
54
|
+
const logs = [`[req] ▶ get ${JSON.stringify(params || {})} from ${endpoint}:`];
|
|
55
|
+
if (_classPrivateFieldLooseBase(this, _logBaseURL)[_logBaseURL]) logs.unshift(_classPrivateFieldLooseBase(this, _logBaseURL)[_logBaseURL]);
|
|
56
|
+
try {
|
|
57
|
+
const response = await _classPrivateFieldLooseBase(this, _axiosInstance)[_axiosInstance].get(`/${endpoint}`, {
|
|
58
|
+
params
|
|
59
|
+
});
|
|
60
|
+
logs.push(`[res] status code: ${response.status}`);
|
|
61
|
+
return {
|
|
62
|
+
data: response.data,
|
|
63
|
+
status: response.status,
|
|
64
|
+
logs
|
|
65
|
+
};
|
|
66
|
+
} catch (error) {
|
|
67
|
+
logs.push(`[res] status code: ${error.response.status}`);
|
|
68
|
+
logs.push(`[res] body: ${JSON.stringify(error.response.data)}`);
|
|
69
|
+
return {
|
|
70
|
+
data: error.response.data,
|
|
71
|
+
status: error.response.status,
|
|
72
|
+
logs
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async post(endpoint, params) {
|
|
77
|
+
const logs = [`[req] ▶ post ${JSON.stringify(params || {})} to ${endpoint}:`];
|
|
78
|
+
if (_classPrivateFieldLooseBase(this, _logBaseURL)[_logBaseURL]) logs.unshift(_classPrivateFieldLooseBase(this, _logBaseURL)[_logBaseURL]);
|
|
79
|
+
try {
|
|
80
|
+
const response = await _classPrivateFieldLooseBase(this, _axiosInstance)[_axiosInstance].post(`/${endpoint}`, params);
|
|
81
|
+
logs.push(`[res] status code: ${response.status}`);
|
|
82
|
+
return {
|
|
83
|
+
data: response.data,
|
|
84
|
+
status: response.status,
|
|
85
|
+
logs
|
|
86
|
+
};
|
|
87
|
+
} catch (error) {
|
|
88
|
+
logs.push(`[res] status code: ${error.response.status}`);
|
|
89
|
+
logs.push(`[res] body: ${JSON.stringify(error.response.data)}`);
|
|
90
|
+
return {
|
|
91
|
+
data: error.response.data,
|
|
92
|
+
status: error.response.status,
|
|
93
|
+
logs
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async patch(endpoint, params) {
|
|
98
|
+
const logs = [`[req] ▶ patch ${JSON.stringify(params || {})} to ${endpoint}:`];
|
|
99
|
+
if (_classPrivateFieldLooseBase(this, _logBaseURL)[_logBaseURL]) logs.unshift(_classPrivateFieldLooseBase(this, _logBaseURL)[_logBaseURL]);
|
|
100
|
+
try {
|
|
101
|
+
const response = await _classPrivateFieldLooseBase(this, _axiosInstance)[_axiosInstance].patch(`/${endpoint}`, params);
|
|
102
|
+
logs.push(`[res] status code: ${response.status}`);
|
|
103
|
+
return {
|
|
104
|
+
data: response.data,
|
|
105
|
+
status: response.status,
|
|
106
|
+
logs
|
|
107
|
+
};
|
|
108
|
+
} catch (error) {
|
|
109
|
+
logs.push(`[res] status code: ${error.response.status}`);
|
|
110
|
+
logs.push(`[res] body: ${JSON.stringify(error.response.data)}`);
|
|
111
|
+
return {
|
|
112
|
+
data: error.response.data,
|
|
113
|
+
status: error.response.status,
|
|
114
|
+
logs
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
module.exports = BaseAPI;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError("attempted to use private field on non-instance"); return e; }
|
|
4
|
+
var id = 0;
|
|
5
|
+
function _classPrivateFieldLooseKey(e) { return "__private_" + id++ + "_" + e; }
|
|
6
|
+
const mysql = require('mysql2/promise');
|
|
7
|
+
var _host = /*#__PURE__*/_classPrivateFieldLooseKey("host");
|
|
8
|
+
var _user = /*#__PURE__*/_classPrivateFieldLooseKey("user");
|
|
9
|
+
var _port = /*#__PURE__*/_classPrivateFieldLooseKey("port");
|
|
10
|
+
var _password = /*#__PURE__*/_classPrivateFieldLooseKey("password");
|
|
11
|
+
var _database = /*#__PURE__*/_classPrivateFieldLooseKey("database");
|
|
12
|
+
var _connection = /*#__PURE__*/_classPrivateFieldLooseKey("connection");
|
|
13
|
+
class BaseDB {
|
|
14
|
+
constructor(host, user, password, database, port) {
|
|
15
|
+
Object.defineProperty(this, _host, {
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(this, _user, {
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, _port, {
|
|
24
|
+
writable: true,
|
|
25
|
+
value: void 0
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, _password, {
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(this, _database, {
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, _connection, {
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
_classPrivateFieldLooseBase(this, _host)[_host] = host;
|
|
40
|
+
_classPrivateFieldLooseBase(this, _user)[_user] = user;
|
|
41
|
+
_classPrivateFieldLooseBase(this, _password)[_password] = password;
|
|
42
|
+
_classPrivateFieldLooseBase(this, _database)[_database] = database;
|
|
43
|
+
_classPrivateFieldLooseBase(this, _port)[_port] = port;
|
|
44
|
+
}
|
|
45
|
+
async createConnection() {
|
|
46
|
+
const logs = [`[inf] ▶ connect to ${_classPrivateFieldLooseBase(this, _database)[_database]} database`];
|
|
47
|
+
_classPrivateFieldLooseBase(this, _connection)[_connection] = await mysql.createConnection({
|
|
48
|
+
host: _classPrivateFieldLooseBase(this, _host)[_host],
|
|
49
|
+
user: _classPrivateFieldLooseBase(this, _user)[_user],
|
|
50
|
+
password: _classPrivateFieldLooseBase(this, _password)[_password],
|
|
51
|
+
database: _classPrivateFieldLooseBase(this, _database)[_database],
|
|
52
|
+
port: _classPrivateFieldLooseBase(this, _port)[_port]
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
logs
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async closeConnection() {
|
|
59
|
+
const logs = [`[inf] ▶ close connection to ${_classPrivateFieldLooseBase(this, _database)[_database]} database`];
|
|
60
|
+
await _classPrivateFieldLooseBase(this, _connection)[_connection].end();
|
|
61
|
+
return {
|
|
62
|
+
logs
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async sqlQuery(query, values) {
|
|
66
|
+
const [rows] = await _classPrivateFieldLooseBase(this, _connection)[_connection].query(query, values);
|
|
67
|
+
return rows;
|
|
68
|
+
}
|
|
69
|
+
async sqlSelect(tableName, target = '*', conditions = '', values = [], options = {
|
|
70
|
+
hasLogger: true
|
|
71
|
+
}) {
|
|
72
|
+
const logs = [];
|
|
73
|
+
if (options.hasLogger) logs.push(`[inf] ▶ select ${target} from ${tableName} table`);
|
|
74
|
+
const query = `SELECT ${target} FROM ${tableName} ${conditions};`;
|
|
75
|
+
const rows = await this.sqlQuery(query, values);
|
|
76
|
+
return {
|
|
77
|
+
rows,
|
|
78
|
+
logs
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
module.exports = BaseDB;
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
const moment = require('moment');
|
|
2
|
-
const {
|
|
4
|
+
const {
|
|
5
|
+
parseStringPromise
|
|
6
|
+
} = require('xml2js');
|
|
3
7
|
const JSONLoader = require('./JSONLoader');
|
|
4
8
|
const StrUtils = require('../str/strUtils');
|
|
5
9
|
const TimeUtils = require('../time/timeUtils');
|
|
6
10
|
const Randomizer = require('../random/randomizer');
|
|
7
|
-
|
|
8
11
|
class DataUtils {
|
|
9
12
|
static async XMLToJSON(xml) {
|
|
10
13
|
return (await parseStringPromise(xml)).response;
|
|
11
14
|
}
|
|
12
|
-
|
|
13
15
|
static getFromRequests(url1, alias1, url2, alias2) {
|
|
14
16
|
cy.intercept(url1).as(alias1);
|
|
15
17
|
cy.intercept(url2).as(alias2);
|
|
16
18
|
return cy.wait([`@${alias1}`, `@${alias2}`]).then(([interception1, interception2]) => [interception1.response.body, interception2.response.body]);
|
|
17
19
|
}
|
|
18
|
-
|
|
19
20
|
static interceptPolicyList({
|
|
20
21
|
url,
|
|
21
22
|
sortColumn,
|
|
@@ -25,53 +26,44 @@ class DataUtils {
|
|
|
25
26
|
page,
|
|
26
27
|
perPage,
|
|
27
28
|
alias,
|
|
28
|
-
raw = false
|
|
29
|
+
raw = false
|
|
29
30
|
} = {}) {
|
|
30
31
|
if (raw) {
|
|
31
32
|
cy.intercept('GET', url).as(alias);
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
34
|
-
|
|
35
35
|
const query = {};
|
|
36
|
-
|
|
37
36
|
if (sortColumn) query['sort[column]'] = sortColumn;
|
|
38
37
|
if (sortValue) query['sort[value]'] = sortValue;
|
|
39
|
-
|
|
40
38
|
if (searchColumn && searchValue) {
|
|
41
39
|
query['search[column]'] = searchColumn;
|
|
42
40
|
query['search[value]'] = searchValue;
|
|
43
41
|
}
|
|
44
|
-
|
|
45
42
|
if (page) query.page = String(page);
|
|
46
43
|
if (perPage) query.per_page = String(perPage);
|
|
47
|
-
|
|
48
44
|
cy.intercept({
|
|
49
45
|
method: 'GET',
|
|
50
46
|
url,
|
|
51
|
-
query
|
|
47
|
+
query
|
|
52
48
|
}).as(alias);
|
|
53
49
|
}
|
|
54
|
-
|
|
55
50
|
static extractDataArray(interception) {
|
|
56
51
|
return interception.response.body.data || [];
|
|
57
52
|
}
|
|
58
|
-
|
|
59
53
|
static isSorted(arr, order = 'asc') {
|
|
60
|
-
const sorted = [...arr].sort((a, b) =>
|
|
54
|
+
const sorted = [...arr].sort((a, b) => order === 'asc' ? a - b : b - a);
|
|
61
55
|
return JSON.stringify(arr) === JSON.stringify(sorted);
|
|
62
56
|
}
|
|
63
|
-
|
|
64
57
|
static waitForPolicyList(alias, path) {
|
|
65
|
-
return cy.wait(`@${alias}`).then(
|
|
58
|
+
return cy.wait(`@${alias}`).then(interception => {
|
|
66
59
|
const parts = ['response', 'body', ...path.split('.')];
|
|
67
|
-
const result = parts.reduce((acc, key) =>
|
|
60
|
+
const result = parts.reduce((acc, key) => acc && typeof acc === 'object' ? acc[key] : {}, interception);
|
|
68
61
|
return result;
|
|
69
62
|
});
|
|
70
63
|
}
|
|
71
|
-
|
|
72
64
|
static getFromRequest(url, alias) {
|
|
73
65
|
cy.intercept(url).as(alias);
|
|
74
|
-
return cy.wait(`@${alias}`).then(
|
|
66
|
+
return cy.wait(`@${alias}`).then(interception => interception.response.body);
|
|
75
67
|
}
|
|
76
68
|
|
|
77
69
|
/**
|
|
@@ -89,135 +81,116 @@ class DataUtils {
|
|
|
89
81
|
* @param {boolean} options.isUnderSixtyYearsOld
|
|
90
82
|
*/
|
|
91
83
|
static filterClients(clients, options = {}) {
|
|
92
|
-
const {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const {
|
|
96
|
-
|
|
84
|
+
const {
|
|
85
|
+
isResident
|
|
86
|
+
} = options;
|
|
87
|
+
const {
|
|
88
|
+
hasPassport
|
|
89
|
+
} = options;
|
|
90
|
+
const {
|
|
91
|
+
hasDriverLicence
|
|
92
|
+
} = options;
|
|
93
|
+
const {
|
|
94
|
+
isUnderSixtyYearsOld
|
|
95
|
+
} = options;
|
|
96
|
+
const {
|
|
97
|
+
isJuridical
|
|
98
|
+
} = options;
|
|
97
99
|
let filteredClients = [...clients];
|
|
98
|
-
|
|
99
|
-
filteredClients = filteredClients.filter((client) => {
|
|
100
|
+
filteredClients = filteredClients.filter(client => {
|
|
100
101
|
if (isResident !== undefined) {
|
|
101
102
|
return isResident ? client.resident_bool : !client.resident_bool;
|
|
102
103
|
}
|
|
103
|
-
|
|
104
104
|
return true;
|
|
105
105
|
});
|
|
106
|
-
|
|
107
|
-
filteredClients = filteredClients.filter((client) => {
|
|
106
|
+
filteredClients = filteredClients.filter(client => {
|
|
108
107
|
if (hasDriverLicence !== undefined) {
|
|
109
108
|
return hasDriverLicence ? client.driving_license : !client.driving_license;
|
|
110
109
|
}
|
|
111
|
-
|
|
112
110
|
return true;
|
|
113
111
|
});
|
|
114
|
-
|
|
115
|
-
filteredClients = filteredClients.filter((client) => {
|
|
112
|
+
filteredClients = filteredClients.filter(client => {
|
|
116
113
|
if (hasPassport !== undefined) {
|
|
117
114
|
const hasLetter = /[a-zA-Z]/.test(client.document_number);
|
|
118
|
-
return hasPassport
|
|
119
|
-
? client.document_type_id === 11 && hasLetter
|
|
120
|
-
: client.document_type_id !== 11;
|
|
115
|
+
return hasPassport ? client.document_type_id === 11 && hasLetter : client.document_type_id !== 11;
|
|
121
116
|
}
|
|
122
|
-
|
|
123
117
|
return true;
|
|
124
118
|
});
|
|
125
|
-
|
|
126
|
-
filteredClients = filteredClients.filter((client) => {
|
|
119
|
+
filteredClients = filteredClients.filter(client => {
|
|
127
120
|
if (isUnderSixtyYearsOld !== undefined) {
|
|
128
|
-
return isUnderSixtyYearsOld
|
|
129
|
-
? moment(client.born) > moment().subtract(60, 'years')
|
|
130
|
-
: moment(client.born) <= moment().subtract(60, 'years');
|
|
121
|
+
return isUnderSixtyYearsOld ? moment(client.born) > moment().subtract(60, 'years') : moment(client.born) <= moment().subtract(60, 'years');
|
|
131
122
|
}
|
|
132
|
-
|
|
133
123
|
return true;
|
|
134
124
|
});
|
|
135
|
-
|
|
136
|
-
filteredClients = filteredClients.filter((client) => {
|
|
125
|
+
filteredClients = filteredClients.filter(client => {
|
|
137
126
|
if (isJuridical !== undefined) {
|
|
138
127
|
return isJuridical ? !client.natural_person_bool : client.natural_person_bool;
|
|
139
128
|
}
|
|
140
|
-
|
|
141
129
|
return true;
|
|
142
130
|
});
|
|
143
|
-
|
|
144
131
|
return filteredClients;
|
|
145
132
|
}
|
|
146
|
-
|
|
147
133
|
static createRandomCarStructure(carsArr) {
|
|
148
134
|
const randomCarIndex = Randomizer.getRandomInteger(carsArr.length - 1);
|
|
149
135
|
const tempCar = carsArr[randomCarIndex];
|
|
150
|
-
const resultCar = {
|
|
151
|
-
|
|
136
|
+
const resultCar = {
|
|
137
|
+
...tempCar
|
|
138
|
+
};
|
|
152
139
|
resultCar.dt_reg_cert = {};
|
|
153
140
|
resultCar.dt_reg_cert.YMD = tempCar.dt_reg_cert;
|
|
154
141
|
resultCar.dt_reg_cert.DMY = TimeUtils.reformatDateFromYMDToDMY(tempCar.dt_reg_cert);
|
|
155
|
-
|
|
156
142
|
resultCar.year = tempCar.year.toString();
|
|
157
143
|
resultCar.engine_volume = tempCar.engine_volume.toString();
|
|
158
|
-
|
|
159
144
|
resultCar.model = {};
|
|
160
145
|
resultCar.model.OGPO = tempCar.model;
|
|
161
146
|
resultCar.model.KASKO = {};
|
|
162
147
|
resultCar.model.KASKO.get = tempCar.model;
|
|
163
|
-
resultCar.model.KASKO.set = tempCar.id !== 1
|
|
164
|
-
? StrUtils.toTitleCase(tempCar.model)
|
|
165
|
-
: '5 серия';
|
|
166
|
-
|
|
148
|
+
resultCar.model.KASKO.set = tempCar.id !== 1 ? StrUtils.toTitleCase(tempCar.model) : '5 серия';
|
|
167
149
|
resultCar.mark = {};
|
|
168
150
|
resultCar.mark.OGPO = tempCar.mark;
|
|
169
151
|
resultCar.mark.KASKO = {};
|
|
170
152
|
resultCar.mark.KASKO.get = tempCar.mark;
|
|
171
153
|
resultCar.mark.KASKO.set = tempCar.id !== 1 ? StrUtils.toTitleCase(tempCar.mark) : tempCar.mark;
|
|
172
|
-
|
|
173
154
|
resultCar.region_id = JSONLoader.testData.carRegion;
|
|
174
155
|
resultCar.type_id = JSONLoader.testData.carType;
|
|
175
|
-
|
|
176
156
|
return resultCar;
|
|
177
157
|
}
|
|
178
|
-
|
|
179
158
|
static createRandomClientsStructures(clientsArr) {
|
|
180
159
|
let randomHolderIndex = 0;
|
|
181
160
|
let randomInsuredIndex = 0;
|
|
182
161
|
let randomBeneficiaryIndex = 0;
|
|
183
|
-
|
|
184
162
|
if (clientsArr.length > 1) {
|
|
185
163
|
randomHolderIndex = Randomizer.getRandomInteger(clientsArr.length - 1);
|
|
186
|
-
|
|
187
164
|
do {
|
|
188
165
|
randomInsuredIndex = Randomizer.getRandomInteger(clientsArr.length - 1);
|
|
189
166
|
} while (randomInsuredIndex === randomHolderIndex);
|
|
190
|
-
|
|
191
167
|
do {
|
|
192
168
|
randomBeneficiaryIndex = Randomizer.getRandomInteger(clientsArr.length - 1);
|
|
193
|
-
} while (randomBeneficiaryIndex === randomHolderIndex
|
|
194
|
-
|| randomBeneficiaryIndex === randomInsuredIndex);
|
|
169
|
+
} while (randomBeneficiaryIndex === randomHolderIndex || randomBeneficiaryIndex === randomInsuredIndex);
|
|
195
170
|
}
|
|
196
|
-
|
|
197
171
|
const tempHolder = clientsArr[randomHolderIndex];
|
|
198
172
|
const tempInsured = clientsArr[randomInsuredIndex];
|
|
199
173
|
const tempBeneficiary = clientsArr[randomBeneficiaryIndex];
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const
|
|
204
|
-
|
|
174
|
+
const resultHolder = {
|
|
175
|
+
...tempHolder
|
|
176
|
+
};
|
|
177
|
+
const resultInsured = {
|
|
178
|
+
...tempInsured
|
|
179
|
+
};
|
|
180
|
+
const resultBeneficiary = {
|
|
181
|
+
...tempBeneficiary
|
|
182
|
+
};
|
|
205
183
|
resultHolder.document_gived_date = {};
|
|
206
184
|
resultHolder.document_gived_date.YMD = tempHolder.document_gived_date;
|
|
207
|
-
resultHolder.document_gived_date.DMY = TimeUtils
|
|
208
|
-
.reformatDateFromYMDToDMY(tempHolder.document_gived_date);
|
|
185
|
+
resultHolder.document_gived_date.DMY = TimeUtils.reformatDateFromYMDToDMY(tempHolder.document_gived_date);
|
|
209
186
|
resultHolder.born = {};
|
|
210
187
|
resultHolder.born.YMD = tempHolder.born;
|
|
211
188
|
resultHolder.born.DMY = TimeUtils.reformatDateFromYMDToDMY(tempHolder.born);
|
|
212
189
|
resultHolder.date_issue_license = {};
|
|
213
190
|
resultHolder.date_issue_license.YMD = tempHolder.date_issue_license;
|
|
214
|
-
resultHolder.date_issue_license.DMY = TimeUtils
|
|
215
|
-
.reformatDateFromYMDToDMY(tempHolder.date_issue_license);
|
|
216
|
-
|
|
191
|
+
resultHolder.date_issue_license.DMY = TimeUtils.reformatDateFromYMDToDMY(tempHolder.date_issue_license);
|
|
217
192
|
resultHolder.iin = tempHolder.iin.toString();
|
|
218
|
-
resultHolder.document_type = JSONLoader
|
|
219
|
-
.dictDocumentType[tempHolder.document_type_id.toString()];
|
|
220
|
-
|
|
193
|
+
resultHolder.document_type = JSONLoader.dictDocumentType[tempHolder.document_type_id.toString()];
|
|
221
194
|
resultHolder.sex = JSONLoader.dictSexID[tempHolder.sex_id];
|
|
222
195
|
resultHolder.address = JSONLoader.testData.holderAddress;
|
|
223
196
|
resultHolder.email = JSONLoader.testData.holderEmail;
|
|
@@ -232,23 +205,17 @@ class DataUtils {
|
|
|
232
205
|
resultHolder.phone = JSONLoader.testData.holderPhone;
|
|
233
206
|
resultHolder.phoneTrimmed = JSONLoader.testData.holderPhoneTrimmed;
|
|
234
207
|
resultHolder.phoneFormatted = JSONLoader.testData.holderPhoneFormatted;
|
|
235
|
-
|
|
236
208
|
resultInsured.document_gived_date = {};
|
|
237
209
|
resultInsured.document_gived_date.YMD = tempInsured.document_gived_date;
|
|
238
|
-
resultInsured.document_gived_date.DMY = TimeUtils
|
|
239
|
-
.reformatDateFromYMDToDMY(tempInsured.document_gived_date);
|
|
210
|
+
resultInsured.document_gived_date.DMY = TimeUtils.reformatDateFromYMDToDMY(tempInsured.document_gived_date);
|
|
240
211
|
resultInsured.born = {};
|
|
241
212
|
resultInsured.born.YMD = tempInsured.born;
|
|
242
213
|
resultInsured.born.DMY = TimeUtils.reformatDateFromYMDToDMY(tempInsured.born);
|
|
243
214
|
resultInsured.date_issue_license = {};
|
|
244
215
|
resultInsured.date_issue_license.YMD = tempInsured.date_issue_license;
|
|
245
|
-
resultInsured.date_issue_license.DMY = TimeUtils
|
|
246
|
-
.reformatDateFromYMDToDMY(tempInsured.date_issue_license);
|
|
247
|
-
|
|
216
|
+
resultInsured.date_issue_license.DMY = TimeUtils.reformatDateFromYMDToDMY(tempInsured.date_issue_license);
|
|
248
217
|
resultInsured.iin = tempInsured.iin.toString();
|
|
249
|
-
resultInsured.document_type = JSONLoader
|
|
250
|
-
.dictDocumentType[tempInsured.document_type_id.toString()];
|
|
251
|
-
|
|
218
|
+
resultInsured.document_type = JSONLoader.dictDocumentType[tempInsured.document_type_id.toString()];
|
|
252
219
|
resultInsured.sex = JSONLoader.dictSexID[tempInsured.sex_id];
|
|
253
220
|
resultInsured.address = JSONLoader.testData.insuredAddress;
|
|
254
221
|
resultInsured.email = JSONLoader.testData.insuredEmail;
|
|
@@ -257,22 +224,17 @@ class DataUtils {
|
|
|
257
224
|
resultInsured.driver_certificate_type_id = JSONLoader.testData.insuredDriverLicenceType;
|
|
258
225
|
resultInsured.invalid_bool = JSONLoader.testData.insuredIsInvalid;
|
|
259
226
|
resultInsured.pensioner_bool = JSONLoader.testData.insuredIsPensioner;
|
|
260
|
-
|
|
261
227
|
resultBeneficiary.document_gived_date = {};
|
|
262
228
|
resultBeneficiary.document_gived_date.YMD = tempBeneficiary.document_gived_date;
|
|
263
|
-
resultBeneficiary.document_gived_date.DMY = TimeUtils
|
|
264
|
-
.reformatDateFromYMDToDMY(tempBeneficiary.document_gived_date);
|
|
229
|
+
resultBeneficiary.document_gived_date.DMY = TimeUtils.reformatDateFromYMDToDMY(tempBeneficiary.document_gived_date);
|
|
265
230
|
resultBeneficiary.born = {};
|
|
266
231
|
resultBeneficiary.born.YMD = tempBeneficiary.born;
|
|
267
232
|
resultBeneficiary.born.DMY = TimeUtils.reformatDateFromYMDToDMY(tempBeneficiary.born);
|
|
268
233
|
resultBeneficiary.date_issue_license = {};
|
|
269
234
|
resultBeneficiary.date_issue_license.YMD = tempBeneficiary.date_issue_license;
|
|
270
|
-
resultBeneficiary.date_issue_license.DMY = TimeUtils
|
|
271
|
-
.reformatDateFromYMDToDMY(tempBeneficiary.date_issue_license);
|
|
272
|
-
|
|
235
|
+
resultBeneficiary.date_issue_license.DMY = TimeUtils.reformatDateFromYMDToDMY(tempBeneficiary.date_issue_license);
|
|
273
236
|
resultBeneficiary.iin = tempBeneficiary.iin.toString();
|
|
274
|
-
resultBeneficiary.document_type = JSONLoader
|
|
275
|
-
.dictDocumentType[tempBeneficiary.document_type_id.toString()];
|
|
237
|
+
resultBeneficiary.document_type = JSONLoader.dictDocumentType[tempBeneficiary.document_type_id.toString()];
|
|
276
238
|
resultBeneficiary.sex = JSONLoader.dictSexID[tempBeneficiary.sex_id];
|
|
277
239
|
resultBeneficiary.address = JSONLoader.testData.beneficiaryAddress;
|
|
278
240
|
resultBeneficiary.email = JSONLoader.testData.beneficiaryEmail;
|
|
@@ -282,12 +244,16 @@ class DataUtils {
|
|
|
282
244
|
resultBeneficiary.driver_certificate_type_id = JSONLoader.testData.beneficiaryDriverLicenceType;
|
|
283
245
|
resultBeneficiary.invalid_bool = JSONLoader.testData.beneficiaryIsInvalid;
|
|
284
246
|
resultBeneficiary.pensioner_bool = JSONLoader.testData.beneficiaryIsPensioner;
|
|
285
|
-
|
|
286
|
-
|
|
247
|
+
return {
|
|
248
|
+
holder: resultHolder,
|
|
249
|
+
insured: resultInsured,
|
|
250
|
+
beneficiary: resultBeneficiary
|
|
251
|
+
};
|
|
287
252
|
}
|
|
288
|
-
|
|
289
253
|
static prepareSetClientRequestBody(getClientResponse, client) {
|
|
290
|
-
const requestBody = {
|
|
254
|
+
const requestBody = {
|
|
255
|
+
...getClientResponse.data.data
|
|
256
|
+
};
|
|
291
257
|
requestBody.first_name = client.first_name;
|
|
292
258
|
requestBody.middle_name = client.middle_name;
|
|
293
259
|
requestBody.last_name = client.last_name;
|
|
@@ -300,18 +266,12 @@ class DataUtils {
|
|
|
300
266
|
requestBody.document_number = client.document_number;
|
|
301
267
|
requestBody.document_gived_date = client.document_gived_date.DMY;
|
|
302
268
|
requestBody.document_type_id = client.document_type_id;
|
|
303
|
-
requestBody.verify_bool = requestBody.natural_person_bool
|
|
304
|
-
? Number(JSONLoader.configData.verification) : 0;
|
|
269
|
+
requestBody.verify_bool = requestBody.natural_person_bool ? Number(JSONLoader.configData.verification) : 0;
|
|
305
270
|
requestBody.verify_type_id = requestBody.verify_bool ? 1 : 3;
|
|
306
|
-
requestBody.activity_kind_id = requestBody.natural_person_bool
|
|
307
|
-
|
|
308
|
-
requestBody.
|
|
309
|
-
? 10 : client.economics_sector_id;
|
|
310
|
-
requestBody.juridical_person_name = requestBody.natural_person_bool
|
|
311
|
-
? '' : client.juridical_person_name;
|
|
312
|
-
|
|
271
|
+
requestBody.activity_kind_id = requestBody.natural_person_bool ? 250 : client.activity_kind_id;
|
|
272
|
+
requestBody.economics_sector_id = requestBody.natural_person_bool ? 10 : client.economics_sector_id;
|
|
273
|
+
requestBody.juridical_person_name = requestBody.natural_person_bool ? '' : client.juridical_person_name;
|
|
313
274
|
return requestBody;
|
|
314
275
|
}
|
|
315
276
|
}
|
|
316
|
-
|
|
317
|
-
module.exports = DataUtils;
|
|
277
|
+
module.exports = DataUtils;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
const fs = require('fs');
|
|
2
4
|
const path = require('path');
|
|
3
|
-
require('dotenv').config({
|
|
4
|
-
|
|
5
|
+
require('dotenv').config({
|
|
6
|
+
path: path.join(__dirname, '../../../../../../', '.env.test'),
|
|
7
|
+
override: true
|
|
8
|
+
});
|
|
5
9
|
const envDirectory = path.join(__dirname, '../../../../../../');
|
|
6
10
|
const loaderFileLocation = path.join(envDirectory, './cypress/main/utils/data/', 'JSONLoader.js');
|
|
7
11
|
const testClientsFileLocation = path.join(envDirectory, './cypress/resources/data/testClients.json');
|
|
@@ -11,34 +15,26 @@ const suitesDirectory = path.join(envDirectory, './cypress/tests/suites');
|
|
|
11
15
|
const jsonExtension = '.json';
|
|
12
16
|
const testExtension = '.test';
|
|
13
17
|
const testSuitePattern = 'Suite.js';
|
|
14
|
-
|
|
15
18
|
const getFiles = (directory, extension) => {
|
|
16
19
|
const allFiles = fs.readdirSync(directory);
|
|
17
|
-
const selectedFiles = allFiles.filter(
|
|
18
|
-
allFiles.forEach(
|
|
20
|
+
const selectedFiles = allFiles.filter(file => file.endsWith(extension));
|
|
21
|
+
allFiles.forEach(file => {
|
|
19
22
|
const fullPath = path.join(directory, file);
|
|
20
23
|
if (fs.statSync(fullPath).isDirectory()) {
|
|
21
24
|
const nestedFiles = getFiles(fullPath, extension);
|
|
22
|
-
selectedFiles.push(...nestedFiles.map(
|
|
25
|
+
selectedFiles.push(...nestedFiles.map(nestedFile => path.join(file, nestedFile)));
|
|
23
26
|
}
|
|
24
27
|
});
|
|
25
|
-
|
|
26
28
|
return selectedFiles;
|
|
27
29
|
};
|
|
28
|
-
|
|
29
|
-
const generateClassInit = (selectedFiles, directory) => `class JSONLoader {\n${selectedFiles.map((file) => {
|
|
30
|
+
const generateClassInit = (selectedFiles, directory) => `class JSONLoader {\n${selectedFiles.map(file => {
|
|
30
31
|
const variableName = path.parse(file).name;
|
|
31
32
|
return `\tstatic get ${variableName}() {\n\t\tconst ${variableName} = require('${path.join(directory, file)}');\n\t\treturn JSON.parse(JSON.stringify(${variableName}));\n\t}\n\n`;
|
|
32
33
|
}).join('')}`;
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
const suiteNames = selectedFiles
|
|
36
|
-
.map((file) => file.replace(testSuitePattern, ''))
|
|
37
|
-
.map((name) => `'${name}'`)
|
|
38
|
-
.join(', ');
|
|
34
|
+
const generateTestSuitesNames = selectedFiles => {
|
|
35
|
+
const suiteNames = selectedFiles.map(file => file.replace(testSuitePattern, '')).map(name => `'${name}'`).join(', ');
|
|
39
36
|
return `\tstatic get testSuitesNames() {\n\t\treturn [${suiteNames}];\n\t}\n\n`;
|
|
40
37
|
};
|
|
41
|
-
|
|
42
38
|
const generateJSONLoader = (filePath, directory) => {
|
|
43
39
|
const jsonFiles = getFiles(directory, jsonExtension);
|
|
44
40
|
const testSuites = getFiles(suitesDirectory, testSuitePattern);
|
|
@@ -47,10 +43,9 @@ const generateJSONLoader = (filePath, directory) => {
|
|
|
47
43
|
const classExport = '}\n\nmodule.exports = JSONLoader;';
|
|
48
44
|
fs.writeFileSync(filePath, classInit + suitesNames + classExport);
|
|
49
45
|
};
|
|
50
|
-
|
|
51
46
|
const setConfigData = (directory, extension) => {
|
|
52
47
|
const files = getFiles(directory, extension);
|
|
53
|
-
const configFile = files.filter(
|
|
48
|
+
const configFile = files.filter(file => file.includes('config')).pop();
|
|
54
49
|
if (configFile) {
|
|
55
50
|
const filePath = `${directory}/${configFile}`;
|
|
56
51
|
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
@@ -58,37 +53,35 @@ const setConfigData = (directory, extension) => {
|
|
|
58
53
|
data.setPolicyWaitingTWB = process.argv.includes('--setPolicyWaitingTWB');
|
|
59
54
|
try {
|
|
60
55
|
data.verification = Boolean(JSON.parse(process.env.VERIFICATION ?? data.verification));
|
|
61
|
-
} catch (error) {
|
|
56
|
+
} catch (error) {
|
|
57
|
+
// eslint-disable-next-line no-console
|
|
62
58
|
console.log(' [err] incorrect value of "VERIFICATION" .env variable!');
|
|
63
59
|
}
|
|
64
|
-
|
|
65
60
|
if (process.env.GATEWAY_URL) {
|
|
66
61
|
const value = process.env.GATEWAY_URL.match(/\b(?:localhost|dev|staging)\b/g);
|
|
67
62
|
if (value) {
|
|
68
63
|
data.environment = value.pop();
|
|
69
|
-
} else {
|
|
64
|
+
} else {
|
|
65
|
+
// eslint-disable-next-line no-console
|
|
70
66
|
console.log(' [err] incorrect value of "GATEWAY_URL" .env variable!');
|
|
71
67
|
}
|
|
72
|
-
} else {
|
|
68
|
+
} else {
|
|
69
|
+
// eslint-disable-next-line no-console
|
|
73
70
|
console.log(' [err] "GATEWAY_URL" .env variable not exists!');
|
|
74
71
|
}
|
|
75
|
-
|
|
76
72
|
fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf8');
|
|
77
73
|
}
|
|
78
74
|
};
|
|
79
|
-
|
|
80
75
|
const checkEnvExists = (directory, extension) => {
|
|
81
76
|
const files = getFiles(directory, extension);
|
|
82
77
|
if (!files.length) throw new Error('[err] .env.test file not exists in root directory!');
|
|
83
78
|
};
|
|
84
|
-
|
|
85
|
-
const generateTestDataFile = (filePath) => {
|
|
79
|
+
const generateTestDataFile = filePath => {
|
|
86
80
|
const emptyObj = {};
|
|
87
81
|
if (!fs.existsSync(filePath)) fs.writeFileSync(filePath, JSON.stringify(emptyObj, null, 2), 'utf8');
|
|
88
82
|
};
|
|
89
|
-
|
|
90
83
|
checkEnvExists(envDirectory, testExtension);
|
|
91
84
|
setConfigData(JSONDirectory, jsonExtension);
|
|
92
85
|
generateTestDataFile(testCarsFileLocation);
|
|
93
86
|
generateTestDataFile(testClientsFileLocation);
|
|
94
|
-
generateJSONLoader(loaderFileLocation, JSONDirectory);
|
|
87
|
+
generateJSONLoader(loaderFileLocation, JSONDirectory);
|