@digital-ai/devops-page-object-release 0.0.10 → 0.0.12

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/main.js CHANGED
@@ -947,1564 +947,1914 @@ var $edb0b0405039996a$exports = {};
947
947
  $edb0b0405039996a$exports = $edb0b0405039996a$var$isNil;
948
948
 
949
949
 
950
- var $3e8b520187e41aa6$exports = {};
951
- /**
952
- * Checks if `value` is `undefined`.
953
- *
954
- * @static
955
- * @since 0.1.0
956
- * @memberOf _
957
- * @category Lang
958
- * @param {*} value The value to check.
959
- * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
960
- * @example
961
- *
962
- * _.isUndefined(void 0);
963
- * // => true
964
- *
965
- * _.isUndefined(null);
966
- * // => false
967
- */ function $3e8b520187e41aa6$var$isUndefined(value) {
968
- return value === undefined;
969
- }
970
- $3e8b520187e41aa6$exports = $3e8b520187e41aa6$var$isUndefined;
971
-
972
-
973
- var $952a2b8d8056b381$exports = {};
974
-
975
- $952a2b8d8056b381$exports = (parcelRequire("ae8Uz"));
976
950
 
977
951
 
978
952
 
979
- var $ae8Uz = parcelRequire("ae8Uz");
980
- var $732eba8dca8b5420$exports = {};
981
- var $b1535b4ce0d1bd5f$exports = {};
982
953
 
983
- var $9x2D6 = parcelRequire("9x2D6");
984
- var $1b1aa0f3fc7256c9$exports = {};
985
- var $f984f14b3d4f0683$exports = {};
986
- /**
987
- * A faster alternative to `Function#apply`, this function invokes `func`
988
- * with the `this` binding of `thisArg` and the arguments of `args`.
989
- *
990
- * @private
991
- * @param {Function} func The function to invoke.
992
- * @param {*} thisArg The `this` binding of `func`.
993
- * @param {Array} args The arguments to invoke `func` with.
994
- * @returns {*} Returns the result of `func`.
995
- */ function $f984f14b3d4f0683$var$apply(func, thisArg, args) {
996
- switch(args.length){
997
- case 0:
998
- return func.call(thisArg);
999
- case 1:
1000
- return func.call(thisArg, args[0]);
1001
- case 2:
1002
- return func.call(thisArg, args[0], args[1]);
1003
- case 3:
1004
- return func.call(thisArg, args[0], args[1], args[2]);
954
+ class $f8721861c660dd88$export$2b65d1d97338f32b {
955
+ constructor(page){
956
+ this.page = page;
1005
957
  }
1006
- return func.apply(thisArg, args);
1007
958
  }
1008
- $f984f14b3d4f0683$exports = $f984f14b3d4f0683$var$apply;
1009
959
 
1010
960
 
1011
- /* Built-in method references for those with the same name as other `lodash` methods. */ var $1b1aa0f3fc7256c9$var$nativeMax = Math.max;
1012
- /**
1013
- * A specialized version of `baseRest` which transforms the rest array.
1014
- *
1015
- * @private
1016
- * @param {Function} func The function to apply a rest parameter to.
1017
- * @param {number} [start=func.length-1] The start position of the rest parameter.
1018
- * @param {Function} transform The rest array transform.
1019
- * @returns {Function} Returns the new function.
1020
- */ function $1b1aa0f3fc7256c9$var$overRest(func, start, transform) {
1021
- start = $1b1aa0f3fc7256c9$var$nativeMax(start === undefined ? func.length - 1 : start, 0);
1022
- return function() {
1023
- var args = arguments, index = -1, length = $1b1aa0f3fc7256c9$var$nativeMax(args.length - start, 0), array = Array(length);
1024
- while(++index < length)array[index] = args[start + index];
1025
- index = -1;
1026
- var otherArgs = Array(start + 1);
1027
- while(++index < start)otherArgs[index] = args[index];
1028
- otherArgs[start] = transform(array);
1029
- return $f984f14b3d4f0683$exports(func, this, otherArgs);
1030
- };
961
+ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
962
+ async expectNumberOfReleases(releaseTitle, amount) {
963
+ if (amount === 1) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible({
964
+ timeout: 5000
965
+ });
966
+ else await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle).count()).toBe(amount);
967
+ }
968
+ async openReleaseByName(releaseTitle) {
969
+ await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
970
+ hasText: releaseTitle
971
+ }).click();
972
+ return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
973
+ }
1031
974
  }
1032
- $1b1aa0f3fc7256c9$exports = $1b1aa0f3fc7256c9$var$overRest;
1033
975
 
1034
976
 
1035
- var $0e9d1d7fde57dac1$exports = {};
1036
- var $ef9aec5e693cb6ed$exports = {};
1037
- var $3dc9802adab1dd60$exports = {};
1038
- /**
1039
- * Creates a function that returns `value`.
1040
- *
1041
- * @static
1042
- * @memberOf _
1043
- * @since 2.4.0
1044
- * @category Util
1045
- * @param {*} value The value to return from the new function.
1046
- * @returns {Function} Returns the new constant function.
1047
- * @example
1048
- *
1049
- * var objects = _.times(2, _.constant({ 'a': 1 }));
1050
- *
1051
- * console.log(objects);
1052
- * // => [{ 'a': 1 }, { 'a': 1 }]
1053
- *
1054
- * console.log(objects[0] === objects[1]);
1055
- * // => true
1056
- */ function $3dc9802adab1dd60$var$constant(value) {
1057
- return function() {
1058
- return value;
1059
- };
1060
- }
1061
- $3dc9802adab1dd60$exports = $3dc9802adab1dd60$var$constant;
1062
977
 
978
+ class $133601cfe0486710$export$fb932093f944abe4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
979
+ async openRelatedReleasesOf(title) {
980
+ await this.openContextMenu(title);
981
+ await this.page.locator(".popover-content xlr-context-menu a", {
982
+ hasText: "View releases"
983
+ }).click();
984
+ return new (0, $87643f2d97b0644e$export$a678525e79c4ccc4)(this.page);
985
+ }
986
+ async openContextMenu(title) {
987
+ await (0, $kKeXs$playwrighttest.expect)(async ()=>{
988
+ await this.page.locator(".trigger-row-content", {
989
+ hasText: title
990
+ }).locator(".context-menu-button").click();
991
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".popover-content")).toBeVisible();
992
+ }).toPass();
993
+ }
994
+ }
1063
995
 
1064
- var $97bac00047c338ed$exports = {};
1065
- var $b7745e89d7f5915f$exports = {};
1066
- var $927414f7f9d8afbb$exports = {};
1067
996
 
1068
- var $7T6pQ = parcelRequire("7T6pQ");
1069
- var $1fb1799a04ee25ea$exports = {};
1070
- var $5ee1230bf1668e2a$exports = {};
1071
997
 
1072
- var $5iYlB = parcelRequire("5iYlB");
1073
- /** Used to detect overreaching core-js shims. */ var $5ee1230bf1668e2a$var$coreJsData = $5iYlB["__core-js_shared__"];
1074
- $5ee1230bf1668e2a$exports = $5ee1230bf1668e2a$var$coreJsData;
1075
998
 
1076
999
 
1077
- /** Used to detect methods masquerading as native. */ var $1fb1799a04ee25ea$var$maskSrcKey = function() {
1078
- var uid = /[^.]+$/.exec($5ee1230bf1668e2a$exports && $5ee1230bf1668e2a$exports.keys && $5ee1230bf1668e2a$exports.keys.IE_PROTO || "");
1079
- return uid ? "Symbol(src)_1." + uid : "";
1080
- }();
1081
- /**
1082
- * Checks if `func` has its source masked.
1083
- *
1084
- * @private
1085
- * @param {Function} func The function to check.
1086
- * @returns {boolean} Returns `true` if `func` is masked, else `false`.
1087
- */ function $1fb1799a04ee25ea$var$isMasked(func) {
1088
- return !!$1fb1799a04ee25ea$var$maskSrcKey && $1fb1799a04ee25ea$var$maskSrcKey in func;
1000
+ async function $ef0df8ad8a777ce6$export$a0f926f04148e5d2(locators) {
1001
+ const res = await Promise.all([
1002
+ ...locators.map(async (locator, index)=>{
1003
+ let timedOut = false;
1004
+ await locator.waitFor({
1005
+ state: "visible",
1006
+ timeout: 2000
1007
+ }).catch(()=>timedOut = true);
1008
+ return [
1009
+ timedOut ? -1 : index,
1010
+ locator
1011
+ ];
1012
+ })
1013
+ ]);
1014
+ const resolvedLocator = res.find((r)=>r[0] !== -1);
1015
+ if (!resolvedLocator) {
1016
+ console.warn("waitForOneOf", res);
1017
+ throw new Error("no locator visible before timeout");
1018
+ }
1019
+ return resolvedLocator;
1089
1020
  }
1090
- $1fb1799a04ee25ea$exports = $1fb1799a04ee25ea$var$isMasked;
1091
1021
 
1092
1022
 
1093
-
1094
- var $bfk90 = parcelRequire("bfk90");
1095
- var $c6de24274df36d4e$exports = {};
1096
- /** Used for built-in method references. */ var $c6de24274df36d4e$var$funcProto = Function.prototype;
1097
- /** Used to resolve the decompiled source of functions. */ var $c6de24274df36d4e$var$funcToString = $c6de24274df36d4e$var$funcProto.toString;
1098
- /**
1099
- * Converts `func` to its source code.
1100
- *
1101
- * @private
1102
- * @param {Function} func The function to convert.
1103
- * @returns {string} Returns the source code.
1104
- */ function $c6de24274df36d4e$var$toSource(func) {
1105
- if (func != null) {
1106
- try {
1107
- return $c6de24274df36d4e$var$funcToString.call(func);
1108
- } catch (e) {}
1109
- try {
1110
- return func + "";
1111
- } catch (e) {}
1023
+ class $fd4eef3ad2b2e612$export$a87f0ae8695e74be extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1024
+ async openVariable(variableKey) {
1025
+ await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();
1026
+ return new $fd4eef3ad2b2e612$var$ReleaseVariableModal(this.page);
1027
+ }
1028
+ }
1029
+ class $fd4eef3ad2b2e612$var$ReleaseVariableModal extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1030
+ async expectValue(locators, expectFn) {
1031
+ const [index, locator] = await (0, $ef0df8ad8a777ce6$export$a0f926f04148e5d2)(locators);
1032
+ await expectFn[index](locator);
1033
+ }
1034
+ async expectValueToBe(value) {
1035
+ await this.expectValue([
1036
+ this.page.locator("#modal .variable-value input"),
1037
+ this.page.locator("#modal .variable-value .field-readonly"),
1038
+ this.page.locator("#modal .variable-value .xl-map-string-string")
1039
+ ], [
1040
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveValue(value),
1041
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value),
1042
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value)
1043
+ ]);
1044
+ }
1045
+ async expectValueToContain(value) {
1046
+ await this.expectValue([
1047
+ this.page.locator("#modal .variable-value input"),
1048
+ this.page.locator("#modal .variable-value .field-readonly"),
1049
+ this.page.locator("#modal .variable-value .xl-map-string-string")
1050
+ ], [
1051
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l.inputValue()).toContain(value),
1052
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value),
1053
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value)
1054
+ ]);
1055
+ }
1056
+ async close() {
1057
+ await this.page.locator("#modal .modal-header button.close").click();
1112
1058
  }
1113
- return "";
1114
1059
  }
1115
- $c6de24274df36d4e$exports = $c6de24274df36d4e$var$toSource;
1116
1060
 
1117
1061
 
1118
- /**
1119
- * Used to match `RegExp`
1120
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
1121
- */ var $927414f7f9d8afbb$var$reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
1122
- /** Used to detect host constructors (Safari). */ var $927414f7f9d8afbb$var$reIsHostCtor = /^\[object .+?Constructor\]$/;
1123
- /** Used for built-in method references. */ var $927414f7f9d8afbb$var$funcProto = Function.prototype, $927414f7f9d8afbb$var$objectProto = Object.prototype;
1124
- /** Used to resolve the decompiled source of functions. */ var $927414f7f9d8afbb$var$funcToString = $927414f7f9d8afbb$var$funcProto.toString;
1125
- /** Used to check objects for own properties. */ var $927414f7f9d8afbb$var$hasOwnProperty = $927414f7f9d8afbb$var$objectProto.hasOwnProperty;
1126
- /** Used to detect if a method is native. */ var $927414f7f9d8afbb$var$reIsNative = RegExp("^" + $927414f7f9d8afbb$var$funcToString.call($927414f7f9d8afbb$var$hasOwnProperty).replace($927414f7f9d8afbb$var$reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
1127
- /**
1128
- * The base implementation of `_.isNative` without bad shim checks.
1129
- *
1130
- * @private
1131
- * @param {*} value The value to check.
1132
- * @returns {boolean} Returns `true` if `value` is a native function,
1133
- * else `false`.
1134
- */ function $927414f7f9d8afbb$var$baseIsNative(value) {
1135
- if (!$bfk90(value) || $1fb1799a04ee25ea$exports(value)) return false;
1136
- var pattern = $7T6pQ(value) ? $927414f7f9d8afbb$var$reIsNative : $927414f7f9d8afbb$var$reIsHostCtor;
1137
- return pattern.test($c6de24274df36d4e$exports(value));
1138
- }
1139
- $927414f7f9d8afbb$exports = $927414f7f9d8afbb$var$baseIsNative;
1140
1062
 
1141
1063
 
1142
- var $18378a7c2aff899b$exports = {};
1143
- /**
1144
- * Gets the value at `key` of `object`.
1145
- *
1146
- * @private
1147
- * @param {Object} [object] The object to query.
1148
- * @param {string} key The key of the property to get.
1149
- * @returns {*} Returns the property value.
1150
- */ function $18378a7c2aff899b$var$getValue(object, key) {
1151
- return object == null ? undefined : object[key];
1152
- }
1153
- $18378a7c2aff899b$exports = $18378a7c2aff899b$var$getValue;
1154
-
1155
-
1156
- /**
1157
- * Gets the native function at `key` of `object`.
1158
- *
1159
- * @private
1160
- * @param {Object} object The object to query.
1161
- * @param {string} key The key of the method to get.
1162
- * @returns {*} Returns the function if it's native, else `undefined`.
1163
- */ function $b7745e89d7f5915f$var$getNative(object, key) {
1164
- var value = $18378a7c2aff899b$exports(object, key);
1165
- return $927414f7f9d8afbb$exports(value) ? value : undefined;
1064
+ class $8be2ce0eccbe6d27$export$64c93bc7fb9ca44e extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1065
+ constructor(page){
1066
+ super(page);
1067
+ this.railLocator = this.page.locator("task-drawer .dot-drawer .task-config");
1068
+ }
1069
+ async openInputProperties() {
1070
+ await this.railLocator.locator(".task-config-header").getByText("Input properties").click();
1071
+ }
1072
+ async openOutputProperties() {
1073
+ await this.railLocator.locator(".task-config-header").getByText("Output properties").click();
1074
+ }
1075
+ async getValueFromCi(propertyName) {
1076
+ return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1077
+ }
1078
+ async getAllOptionsFromCi(propertyName) {
1079
+ await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1080
+ return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();
1081
+ }
1082
+ async setValueFromCi(propertyName, value) {
1083
+ await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1084
+ await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1085
+ await this.railLocator.locator(`.dot-popper ul li`, {
1086
+ hasText: value
1087
+ }).click();
1088
+ }
1089
+ async getValueFromString(propertyName) {
1090
+ await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1091
+ return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1092
+ }
1093
+ async setValueFromString(propertyName, value) {
1094
+ await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1095
+ await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1096
+ }
1097
+ async setValueFromLargeString(propertyName, value) {
1098
+ await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1099
+ await this.railLocator.locator(`textarea[id="${propertyName}"]`).fill(value);
1100
+ }
1101
+ async setValueFromPassword(propertyName, value) {
1102
+ await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1103
+ }
1104
+ async setAndCreateVariable(propertyName, variableName) {
1105
+ await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1106
+ await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1107
+ await this.railLocator.locator(`input[id="${propertyName}"]`).fill(variableName);
1108
+ await this.railLocator.locator(`.dot-popper button`, {
1109
+ hasText: variableName
1110
+ }).click();
1111
+ }
1112
+ async setVariable(propertyName, variableName) {
1113
+ return this.setValueFromCi(propertyName, variableName);
1114
+ }
1115
+ async expectValueFromString(propertyName, propertyValue) {
1116
+ return await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`)).toHaveText(propertyValue);
1117
+ }
1166
1118
  }
1167
- $b7745e89d7f5915f$exports = $b7745e89d7f5915f$var$getNative;
1168
-
1169
-
1170
- var $97bac00047c338ed$var$defineProperty = function() {
1171
- try {
1172
- var func = $b7745e89d7f5915f$exports(Object, "defineProperty");
1173
- func({}, "", {});
1174
- return func;
1175
- } catch (e) {}
1176
- }();
1177
- $97bac00047c338ed$exports = $97bac00047c338ed$var$defineProperty;
1178
1119
 
1179
1120
 
1180
1121
 
1181
- var $9x2D6 = parcelRequire("9x2D6");
1182
- /**
1183
- * The base implementation of `setToString` without support for hot loop shorting.
1184
- *
1185
- * @private
1186
- * @param {Function} func The function to modify.
1187
- * @param {Function} string The `toString` result.
1188
- * @returns {Function} Returns `func`.
1189
- */ var $ef9aec5e693cb6ed$var$baseSetToString = !$97bac00047c338ed$exports ? $9x2D6 : function(func, string) {
1190
- return $97bac00047c338ed$exports(func, "toString", {
1191
- "configurable": true,
1192
- "enumerable": false,
1193
- "value": $3dc9802adab1dd60$exports(string),
1194
- "writable": true
1195
- });
1196
- };
1197
- $ef9aec5e693cb6ed$exports = $ef9aec5e693cb6ed$var$baseSetToString;
1198
1122
 
1199
1123
 
1200
- var $f6a97849336ceea8$exports = {};
1201
- /** Used to detect hot functions by number of calls within a span of milliseconds. */ var $f6a97849336ceea8$var$HOT_COUNT = 800, $f6a97849336ceea8$var$HOT_SPAN = 16;
1202
- /* Built-in method references for those with the same name as other `lodash` methods. */ var $f6a97849336ceea8$var$nativeNow = Date.now;
1203
- /**
1204
- * Creates a function that'll short out and invoke `identity` instead
1205
- * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
1206
- * milliseconds.
1207
- *
1208
- * @private
1209
- * @param {Function} func The function to restrict.
1210
- * @returns {Function} Returns the new shortable function.
1211
- */ function $f6a97849336ceea8$var$shortOut(func) {
1212
- var count = 0, lastCalled = 0;
1213
- return function() {
1214
- var stamp = $f6a97849336ceea8$var$nativeNow(), remaining = $f6a97849336ceea8$var$HOT_SPAN - (stamp - lastCalled);
1215
- lastCalled = stamp;
1216
- if (remaining > 0) {
1217
- if (++count >= $f6a97849336ceea8$var$HOT_COUNT) return arguments[0];
1218
- } else count = 0;
1219
- return func.apply(undefined, arguments);
1220
- };
1124
+ class $9c0b0c2caed50730$export$d4865631ba74f3e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1125
+ constructor(page){
1126
+ super(page);
1127
+ this.railLocator = this.page.locator("task-drawer .dot-drawer .task-conditions");
1128
+ this.preconditionToggle = page.getByLabel("Enable precondition");
1129
+ this.textEditor = page.getByRole("textbox");
1130
+ this.saveButton = page.getByTestId("save-btn");
1131
+ }
1132
+ async enablePrecondition() {
1133
+ (0, $kKeXs$playwrighttest.expect)(await this.preconditionToggle.isChecked()).toBe(false);
1134
+ await this.preconditionToggle.check();
1135
+ }
1136
+ async disablePrecondition() {
1137
+ (0, $kKeXs$playwrighttest.expect)(await this.preconditionToggle.isChecked()).toBe(true);
1138
+ await this.preconditionToggle.uncheck();
1139
+ }
1140
+ async setPrecondition(script) {
1141
+ await this.enablePrecondition();
1142
+ await this.textEditor.fill(script);
1143
+ await this.saveButton.dblclick();
1144
+ await this.page.waitForTimeout(1000);
1145
+ }
1221
1146
  }
1222
- $f6a97849336ceea8$exports = $f6a97849336ceea8$var$shortOut;
1223
1147
 
1224
1148
 
1225
- /**
1226
- * Sets the `toString` method of `func` to return `string`.
1227
- *
1228
- * @private
1229
- * @param {Function} func The function to modify.
1230
- * @param {Function} string The `toString` result.
1231
- * @returns {Function} Returns `func`.
1232
- */ var $0e9d1d7fde57dac1$var$setToString = $f6a97849336ceea8$exports($ef9aec5e693cb6ed$exports);
1233
- $0e9d1d7fde57dac1$exports = $0e9d1d7fde57dac1$var$setToString;
1234
-
1235
-
1236
- /**
1237
- * The base implementation of `_.rest` which doesn't validate or coerce arguments.
1238
- *
1239
- * @private
1240
- * @param {Function} func The function to apply a rest parameter to.
1241
- * @param {number} [start=func.length-1] The start position of the rest parameter.
1242
- * @returns {Function} Returns the new function.
1243
- */ function $b1535b4ce0d1bd5f$var$baseRest(func, start) {
1244
- return $0e9d1d7fde57dac1$exports($1b1aa0f3fc7256c9$exports(func, start, $9x2D6), func + "");
1245
- }
1246
- $b1535b4ce0d1bd5f$exports = $b1535b4ce0d1bd5f$var$baseRest;
1247
1149
 
1248
1150
 
1249
- var $ceebddaa7160689c$exports = {};
1250
- /**
1251
- * Performs a
1252
- * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
1253
- * comparison between two values to determine if they are equivalent.
1254
- *
1255
- * @static
1256
- * @memberOf _
1257
- * @since 4.0.0
1258
- * @category Lang
1259
- * @param {*} value The value to compare.
1260
- * @param {*} other The other value to compare.
1261
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
1262
- * @example
1263
- *
1264
- * var object = { 'a': 1 };
1265
- * var other = { 'a': 1 };
1266
- *
1267
- * _.eq(object, object);
1268
- * // => true
1269
- *
1270
- * _.eq(object, other);
1271
- * // => false
1272
- *
1273
- * _.eq('a', 'a');
1274
- * // => true
1275
- *
1276
- * _.eq('a', Object('a'));
1277
- * // => false
1278
- *
1279
- * _.eq(NaN, NaN);
1280
- * // => true
1281
- */ function $ceebddaa7160689c$var$eq(value, other) {
1282
- return value === other || value !== value && other !== other;
1151
+ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1152
+ constructor(page){
1153
+ super(page);
1154
+ this.railLocator = this.page.locator("task-drawer .dot-drawer .task-drawer-content");
1155
+ }
1156
+ async setValueFromMap(propertyName, key, value) {
1157
+ await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] button.add-new-button`).click();
1158
+ await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] input[id="new-row-key-input"]`).fill(key);
1159
+ await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] input[id="new-row-value-input"]`).fill(value);
1160
+ await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] button.map-row-save-button`).click();
1161
+ }
1162
+ async setScript(script) {
1163
+ await this.page.locator(".code-editor textarea.ace_text-input").clear();
1164
+ await this.page.locator(".code-editor textarea.ace_text-input").fill(script);
1165
+ await this.page.locator('.code-editor .header button:has-text("Save")').click();
1166
+ }
1167
+ async expectScriptToContain(script) {
1168
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".code-editor .ace_content")).toContainText(script);
1169
+ }
1170
+ async abort(comment) {
1171
+ await this.page.getByTestId("single-action-button").click();
1172
+ await this.page.getByTestId("task-action-comment").click();
1173
+ await this.page.getByTestId("task-action-comment").fill(comment);
1174
+ await this.page.getByTestId("task-action-confirm").click();
1175
+ }
1283
1176
  }
1284
- $ceebddaa7160689c$exports = $ceebddaa7160689c$var$eq;
1285
1177
 
1286
1178
 
1287
- var $e084f044678f4365$exports = {};
1288
-
1289
-
1290
- var $fegcS = parcelRequire("fegcS");
1291
1179
 
1292
- var $gf9YK = parcelRequire("gf9YK");
1293
1180
 
1294
- var $bfk90 = parcelRequire("bfk90");
1295
- /**
1296
- * Checks if the given arguments are from an iteratee call.
1297
- *
1298
- * @private
1299
- * @param {*} value The potential iteratee value argument.
1300
- * @param {*} index The potential iteratee index or key argument.
1301
- * @param {*} object The potential iteratee object argument.
1302
- * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
1303
- * else `false`.
1304
- */ function $e084f044678f4365$var$isIterateeCall(value, index, object) {
1305
- if (!$bfk90(object)) return false;
1306
- var type = typeof index;
1307
- if (type == "number" ? $fegcS(object) && $gf9YK(index, object.length) : type == "string" && index in object) return $ceebddaa7160689c$exports(object[index], value);
1308
- return false;
1181
+ class $6c924a95a765a086$export$15d3f9b095bb5188 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1182
+ async expectCommentToContain(text) {
1183
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-comment .markdown-wrapper p")).toContainText(text);
1184
+ }
1309
1185
  }
1310
- $e084f044678f4365$exports = $e084f044678f4365$var$isIterateeCall;
1311
1186
 
1312
1187
 
1313
- var $0e6e2e34ec44a72a$exports = {};
1314
-
1315
- var $gYWmw = parcelRequire("gYWmw");
1316
- var $b4b8b2a977b4cc10$exports = {};
1317
1188
 
1318
- var $bfk90 = parcelRequire("bfk90");
1319
1189
 
1320
- var $cjTq2 = parcelRequire("cjTq2");
1321
- var $59b6e790ee7519e4$exports = {};
1322
- /**
1323
- * This function is like
1324
- * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
1325
- * except that it includes inherited enumerable properties.
1326
- *
1327
- * @private
1328
- * @param {Object} object The object to query.
1329
- * @returns {Array} Returns the array of property names.
1330
- */ function $59b6e790ee7519e4$var$nativeKeysIn(object) {
1331
- var result = [];
1332
- if (object != null) for(var key in Object(object))result.push(key);
1333
- return result;
1190
+ class $f9016705c1a1eb20$export$aa59788fdecae2f2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1191
+ async expectWithAttachment(filename) {
1192
+ const test = this.page.locator(".task-attachments-grid .file-item-text");
1193
+ await test.isVisible();
1194
+ await (0, $kKeXs$playwrighttest.expect)(test).toContainText(filename);
1195
+ }
1334
1196
  }
1335
- $59b6e790ee7519e4$exports = $59b6e790ee7519e4$var$nativeKeysIn;
1336
1197
 
1337
1198
 
1338
- /** Used for built-in method references. */ var $b4b8b2a977b4cc10$var$objectProto = Object.prototype;
1339
- /** Used to check objects for own properties. */ var $b4b8b2a977b4cc10$var$hasOwnProperty = $b4b8b2a977b4cc10$var$objectProto.hasOwnProperty;
1340
- /**
1341
- * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
1342
- *
1343
- * @private
1344
- * @param {Object} object The object to query.
1345
- * @returns {Array} Returns the array of property names.
1346
- */ function $b4b8b2a977b4cc10$var$baseKeysIn(object) {
1347
- if (!$bfk90(object)) return $59b6e790ee7519e4$exports(object);
1348
- var isProto = $cjTq2(object), result = [];
1349
- for(var key in object)if (!(key == "constructor" && (isProto || !$b4b8b2a977b4cc10$var$hasOwnProperty.call(object, key)))) result.push(key);
1350
- return result;
1199
+ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1200
+ constructor(page){
1201
+ super(page);
1202
+ this.taskDrawerLocator = this.page.locator("task-drawer .dot-drawer");
1203
+ this.retryButton = this.page.getByRole("button", {
1204
+ name: "Retry"
1205
+ });
1206
+ this.cancelButton = this.page.getByTestId("task-action-cancel");
1207
+ this.commentBox = this.page.getByTestId("task-action-comment");
1208
+ this.confirm = this.page.getByTestId("task-action-confirm");
1209
+ this.activity = new (0, $6c924a95a765a086$export$15d3f9b095bb5188)(page);
1210
+ this.attachment = new (0, $f9016705c1a1eb20$export$aa59788fdecae2f2)(page);
1211
+ this.config = new (0, $8be2ce0eccbe6d27$export$64c93bc7fb9ca44e)(page);
1212
+ this.condition = new (0, $9c0b0c2caed50730$export$d4865631ba74f3e2)(page);
1213
+ this.overview = new (0, $eb81c1b930e440ff$export$519356f6c50361f7)(page);
1214
+ this.skipMenu = this.page.getByRole("menuitem", {
1215
+ name: "Skip"
1216
+ });
1217
+ }
1218
+ async openOverviewRail() {
1219
+ await this.openRail("Overview");
1220
+ }
1221
+ async openActivityRail() {
1222
+ await this.openRail("Activity");
1223
+ }
1224
+ async openSchedulingRail() {
1225
+ await this.openRail("Scheduling");
1226
+ }
1227
+ async openConditionRail() {
1228
+ await this.openRail("Conditions");
1229
+ }
1230
+ async openAttributesRail() {
1231
+ await this.openRail("Attributes");
1232
+ }
1233
+ async openAttachRail() {
1234
+ await this.openRail("Attach");
1235
+ }
1236
+ async openTagsRail() {
1237
+ await this.openRail("Tags");
1238
+ }
1239
+ async openRail(rail) {
1240
+ await this.taskDrawerLocator.locator(".task-navigation-rail").getByText(rail).click();
1241
+ }
1242
+ async close() {
1243
+ await this.taskDrawerLocator.locator(".task-drawer-header").getByTestId("close-btn").click();
1244
+ }
1245
+ async retryTask(comment) {
1246
+ await this.retryButton.click();
1247
+ await this.commentBox.fill(comment);
1248
+ await this.confirm.click();
1249
+ }
1250
+ async skipTask(comment) {
1251
+ await this.page.getByRole("button", {
1252
+ name: "arrow-down icon",
1253
+ exact: true
1254
+ }).click();
1255
+ await this.skipMenu.click();
1256
+ await this.commentBox.fill(comment);
1257
+ await this.confirm.click();
1258
+ }
1259
+ }
1260
+
1261
+
1262
+
1263
+
1264
+ class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1265
+ constructor(page){
1266
+ super(page);
1267
+ }
1268
+ async editReleaseName(name) {
1269
+ await this.page.locator("#release-form-title").clear();
1270
+ await this.page.locator("#release-form-title").fill(name);
1271
+ }
1272
+ async setDescription(description) {
1273
+ await this.page.locator(".display > .xl-icon").first().click();
1274
+ await this.page.locator("textarea").click();
1275
+ await this.page.locator("textarea").clear();
1276
+ await this.page.locator("textarea").fill(description);
1277
+ await this.page.getByText("Save").first().click();
1278
+ }
1279
+ async setScriptUsername(username) {
1280
+ await this.page.getByPlaceholder("Set user...").waitFor();
1281
+ await this.page.getByPlaceholder("Set user...").click();
1282
+ await this.page.locator('input[name=""]').fill(username, {
1283
+ timeout: 2000
1284
+ });
1285
+ }
1286
+ async setScriptUserPassword(password) {
1287
+ await this.page.locator('span[name="scriptUserPassword"]').waitFor();
1288
+ await this.page.locator('span[name="scriptUserPassword"]').click();
1289
+ await this.page.locator('input[name="scriptUserPassword"]').fill(password, {
1290
+ timeout: 2000
1291
+ });
1292
+ }
1293
+ async save() {
1294
+ await this.page.getByRole("button", {
1295
+ name: "Save"
1296
+ }).click({
1297
+ timeout: 2000
1298
+ });
1299
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".form-footer .last-saved")).toBeVisible();
1300
+ }
1301
+ async reset() {
1302
+ await this.page.getByRole("button", {
1303
+ name: "Reset"
1304
+ }).waitFor();
1305
+ await this.page.getByRole("button", {
1306
+ name: "Reset"
1307
+ }).click();
1308
+ }
1309
+ }
1310
+
1311
+
1312
+ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1313
+ constructor(page){
1314
+ super(page);
1315
+ this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
1316
+ this.properties = new (0, $8681d8a3f46f87b7$export$d1077068a9cc9f17)(page);
1317
+ this.variables = new (0, $fd4eef3ad2b2e612$export$a87f0ae8695e74be)(page);
1318
+ }
1319
+ async openTriggers() {
1320
+ await this.openSubPage("Triggers");
1321
+ return new (0, $133601cfe0486710$export$fb932093f944abe4)(this.page);
1322
+ }
1323
+ async abort(comment = "Abort for testing") {
1324
+ await this.page.locator("action-toolbar button", {
1325
+ hasText: "Abort"
1326
+ }).click();
1327
+ await this.page.locator(".modal textarea").fill(comment);
1328
+ await this.page.locator(".modal .continue").click();
1329
+ }
1330
+ getPhase(phaseName) {
1331
+ return new $9b9a8c3da392d020$var$Phase(this.page, phaseName);
1332
+ }
1333
+ async start() {
1334
+ await this.page.getByTestId("start-btn").click();
1335
+ await this.page.getByRole("button", {
1336
+ name: "Start"
1337
+ }).click();
1338
+ }
1339
+ async waitForCompletion(timeout) {
1340
+ await this.page.locator("#release.completed").waitFor({
1341
+ timeout: timeout
1342
+ });
1343
+ }
1344
+ async waitForTaskCompleted(taskTitle) {
1345
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.completed").getByText(taskTitle, {
1346
+ exact: true
1347
+ })).toBeVisible({
1348
+ timeout: 10000
1349
+ });
1350
+ }
1351
+ async waitForTaskFailed(taskTitle) {
1352
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.failed").getByText(taskTitle, {
1353
+ exact: true
1354
+ })).toBeVisible({
1355
+ timeout: 10000
1356
+ });
1357
+ }
1358
+ async waitForTaskSkipped(taskTitle) {
1359
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.skipped").getByText(taskTitle, {
1360
+ exact: true
1361
+ })).toBeVisible({
1362
+ timeout: 10000
1363
+ });
1364
+ }
1365
+ async waitForTaskAborted(taskTitle) {
1366
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.aborted").getByText(taskTitle, {
1367
+ exact: true
1368
+ })).toBeVisible({
1369
+ timeout: 10000
1370
+ });
1371
+ }
1372
+ async waitForStatusLine(statusLine) {
1373
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task .status-line").getByText(statusLine, {
1374
+ exact: true
1375
+ })).toBeVisible({
1376
+ timeout: 10000
1377
+ });
1378
+ }
1379
+ async waitForTaskStarted(taskTitle) {
1380
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.in_progress").getByTitle(taskTitle, {
1381
+ exact: true
1382
+ })).toBeVisible({
1383
+ timeout: 10000
1384
+ });
1385
+ }
1386
+ async openTaskDrawer(taskName) {
1387
+ await this.page.locator(".task-header").getByText(taskName, {
1388
+ exact: true
1389
+ }).click();
1390
+ return this.taskDrawer;
1391
+ }
1392
+ async openVariables() {
1393
+ await this.openReleaseMenu("Variables");
1394
+ }
1395
+ async openProperties() {
1396
+ await this.openReleaseMenu("Properties");
1397
+ }
1398
+ async openReleaseFlow() {
1399
+ await this.openReleaseMenu("Release flow");
1400
+ }
1401
+ async openRelationships() {
1402
+ await this.openReleaseMenu("Relationships");
1403
+ }
1404
+ async openTeamsPermissions() {
1405
+ await this.openReleaseMenu("Teams & Permissions");
1406
+ }
1407
+ async openDashboard() {
1408
+ await this.openReleaseMenu("Dashboard");
1409
+ }
1410
+ async openActivityLogs() {
1411
+ await this.openReleaseMenu("ActivityLogs");
1412
+ }
1413
+ async openReleaseMenu(menuItem) {
1414
+ await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
1415
+ exact: true
1416
+ }).click();
1417
+ }
1418
+ async openSubPage(subpage) {
1419
+ await this.page.locator("ul.side-nav li", {
1420
+ hasText: subpage
1421
+ }).click();
1422
+ }
1423
+ async openTask(taskName) {
1424
+ await this.page.getByTitle(taskName, {
1425
+ exact: true
1426
+ }).click();
1427
+ }
1428
+ async collapseAllTaskView() {
1429
+ const icCollapseTreeview1 = this.page.locator("div.pull-left.expander.ng-scope i.xl-icon.arrow-down-icon");
1430
+ for (const element of (await icCollapseTreeview1.all())){
1431
+ const blnVal = await element.isVisible();
1432
+ if (blnVal) {
1433
+ await element.click();
1434
+ await this.collapseAllTaskView();
1435
+ }
1436
+ }
1437
+ }
1438
+ async expandAllTaskView() {
1439
+ const icExpandTreeview1 = this.page.locator("div.pull-left.expander.ng-scope i.xl-icon.arrow-right-icon");
1440
+ for (const element of (await icExpandTreeview1.all())){
1441
+ const blnVal = await element.isVisible();
1442
+ if (blnVal) {
1443
+ await element.click();
1444
+ await this.expandAllTaskView();
1445
+ }
1446
+ }
1447
+ }
1448
+ async backToRelease() {
1449
+ await this.page.locator(".icon-back").click();
1450
+ }
1451
+ }
1452
+ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1453
+ constructor(page, phaseName){
1454
+ super(page);
1455
+ this.phaseLocator = page.locator(".phase", {
1456
+ hasText: phaseName
1457
+ });
1458
+ }
1459
+ async setTitle(title) {
1460
+ await this.phaseLocator.locator(".phase-header .display").click();
1461
+ await this.phaseLocator.locator(".phase-header input").clear();
1462
+ await this.phaseLocator.locator(".phase-header input").fill(title);
1463
+ await this.phaseLocator.locator(".phase-header input").blur();
1464
+ }
1465
+ async expectTaskBorderWithColor(taskName, color) {
1466
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS("border-top-color", color);
1467
+ }
1468
+ async addTaskInPhase(taskTitle, taskType) {
1469
+ await this.phaseLocator.getByText("Add task").click();
1470
+ await this.phaseLocator.getByPlaceholder("Task title...").click();
1471
+ await this.phaseLocator.getByPlaceholder("Task title...").fill(taskTitle);
1472
+ await this.phaseLocator.locator(".xlr-ctx-menu-toggle").click();
1473
+ const count = taskType.length - 1;
1474
+ for(let i = 0; i < count; i++){
1475
+ await this.page.locator('[data-test="' + taskType[i] + '"]').getByText(taskType[i]).click();
1476
+ await this.page.getByText(taskType[i + 1]).click();
1477
+ }
1478
+ await this.phaseLocator.locator(".quick-controls-container a").getByText("Add", {
1479
+ exact: true
1480
+ }).click();
1481
+ await this.phaseLocator.locator(".button.cancel").click();
1482
+ await (0, $kKeXs$playwrighttest.expect)(this.phaseLocator.locator(".task").filter({
1483
+ hasText: taskTitle
1484
+ })).toBeVisible({
1485
+ timeout: 5000
1486
+ });
1487
+ }
1488
+ async getNumberOfTasks() {
1489
+ return await this.phaseLocator.locator(".task").count();
1490
+ }
1491
+ async expectToHaveNoneditableTitle(phaseTitle) {
1492
+ await (0, $kKeXs$playwrighttest.expect)(this.phaseLocator.locator(".phase-title > span")).toContainText(phaseTitle);
1493
+ }
1494
+ async expectToHaveTitle(phaseTitle) {
1495
+ await (0, $kKeXs$playwrighttest.expect)(this.phaseLocator.locator(".phase-title")).toContainText(phaseTitle);
1496
+ }
1497
+ }
1498
+
1499
+
1500
+
1501
+
1502
+ class $dc91ece6da6cadfa$export$1533b625ec0c75e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1503
+ async goToApplicationsPage() {
1504
+ await this.page.goto("./#/applications");
1505
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Applications - Digital.ai Release");
1506
+ return this;
1507
+ }
1508
+ async addNewApplication(applicationName) {
1509
+ await this.page.locator(`//button[normalize-space()='New application']`).click();
1510
+ await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1511
+ await this.page.locator(`//button[normalize-space()='Save']`).click();
1512
+ return this;
1513
+ }
1514
+ async verifyApplicationisCreated(applicationName) {
1515
+ await this.page.waitForSelector(`div[title='${applicationName}'] strong`);
1516
+ return this;
1517
+ }
1518
+ async createApplicationAndLinkEnvironment(environmentName, applicationName) {
1519
+ await this.page.locator(`//button[normalize-space()='New application']`).click();
1520
+ await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1521
+ await this.page.locator("input[placeholder='Filter environment name...']").type(environmentName);
1522
+ await this.page.locator(`div[title='${environmentName}']`).click();
1523
+ await this.page.locator(`//button[normalize-space()='Save']`).click();
1524
+ await this.page.locator("i.xl-icon.close-icon").click();
1525
+ return this;
1526
+ }
1527
+ }
1528
+
1529
+
1530
+
1531
+
1532
+ class $be4dd73206d8e76b$export$3cac5fd37ae64b91 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1533
+ async openPersonalAccessTokenPage() {
1534
+ // await this.page.locator("button.dot-avatar").click()
1535
+ // await this.page.locator("//div[normalize-space()='Access tokens']").click()
1536
+ await this.page.goto("./#/personal-access-token");
1537
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Access tokens / Personal settings - Digital.ai Release");
1538
+ return this;
1539
+ }
1540
+ async addNewToken(tokenName) {
1541
+ //await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release')
1542
+ await this.page.locator("#tokenText").fill(tokenName);
1543
+ await this.page.locator("button[type='submit']").click();
1544
+ return this;
1545
+ }
1546
+ }
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+ class $bb5572a48b31014a$export$e2e2e1ffdce20c30 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1553
+ constructor(page){
1554
+ super(page);
1555
+ this.userName = page.locator("#username");
1556
+ this.name = page.locator("#full-name");
1557
+ this.email = page.locator("#email");
1558
+ this.password = page.locator('[data-test="password-input"]');
1559
+ this.cnfPassword = page.locator("#passwordConfirmation");
1560
+ this.saveButton = page.getByRole("button", {
1561
+ name: "Save"
1562
+ });
1563
+ this.cancelButton = page.getByRole("button", {
1564
+ name: "Cancel"
1565
+ });
1566
+ this.deleteButton = page.getByRole("button", {
1567
+ name: "Delete"
1568
+ });
1569
+ }
1570
+ async setUserName(username) {
1571
+ return await this.userName.fill(username);
1572
+ }
1573
+ async setFullName(fullName) {
1574
+ return await this.name.fill(fullName);
1575
+ }
1576
+ async setEmail(email) {
1577
+ return await this.email.fill(email);
1578
+ }
1579
+ async setPassword(password) {
1580
+ return await this.password.fill(password);
1581
+ }
1582
+ async setConfirmPassword(cnfPassword) {
1583
+ return await this.cnfPassword.fill(cnfPassword);
1584
+ }
1585
+ async save() {
1586
+ await this.saveButton.click();
1587
+ }
1588
+ async cancel() {
1589
+ await this.cancelButton.click();
1590
+ }
1591
+ async delete() {
1592
+ await this.deleteButton.click();
1593
+ }
1594
+ }
1595
+
1596
+
1597
+ class $3ceab7c613cabfd6$export$107317390f5aa598 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1598
+ constructor(page){
1599
+ super(page);
1600
+ this.page = page;
1601
+ this.newUserButton = this.page.getByTestId("new-user-btn");
1602
+ this.modal = new (0, $bb5572a48b31014a$export$e2e2e1ffdce20c30)(page);
1603
+ }
1604
+ async openUsersPage() {
1605
+ this.page.goto("./#/users", {
1606
+ timeout: 1000
1607
+ });
1608
+ }
1609
+ async toggleLoginPermission(username) {
1610
+ await this.page.getByRole("row", {
1611
+ name: "" + username + ""
1612
+ }).getByRole("checkbox").check();
1613
+ //await this.page.locator(`tr:contains('${username}') .login-permission input`).click();
1614
+ }
1615
+ async addUser() {
1616
+ await this.newUserButton.click();
1617
+ }
1618
+ async createUser(username, password) {
1619
+ await this.modal.setUserName(username);
1620
+ await this.modal.setFullName(username);
1621
+ await this.modal.setEmail("testuser@company.com");
1622
+ await this.modal.setPassword(password);
1623
+ await this.modal.setConfirmPassword(password);
1624
+ await this.modal.save();
1625
+ }
1626
+ async expectToHaveLoginPermission(username) {
1627
+ return await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("row", {
1628
+ name: "" + username + ""
1629
+ }).getByRole("checkbox")).toBeChecked();
1630
+ }
1631
+ async deleteUser(username) {
1632
+ await this.page.getByRole("row", {
1633
+ name: "" + username + ""
1634
+ }).locator("i").nth(1).click();
1635
+ await this.modal.delete();
1636
+ }
1637
+ }
1638
+
1639
+
1640
+
1641
+ class $7867194f18360347$export$1d7840d5cdc861d5 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1642
+ constructor(page){
1643
+ super(page);
1644
+ this.settingsIcon = this.page.getByRole("button", {
1645
+ name: "Settings"
1646
+ });
1647
+ this.usersAndPermissionMenu = this.page.getByRole("menuitem", {
1648
+ name: "users icon Users and permissions"
1649
+ });
1650
+ this.managePluginMenu = this.page.getByRole("menuitem", {
1651
+ name: "plugins icon Manage plugins"
1652
+ });
1653
+ }
1654
+ async openUsersAndPermissions() {
1655
+ await this.settingsIcon.click();
1656
+ await this.usersAndPermissionMenu.click();
1657
+ }
1658
+ async openManagePlugin() {
1659
+ await this.settingsIcon.click();
1660
+ await this.managePluginMenu.click();
1661
+ }
1662
+ }
1663
+
1664
+
1665
+
1666
+ class $a642d735048996f9$export$922081b54f2ab994 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1667
+ constructor(page){
1668
+ super(page);
1669
+ }
1670
+ }
1671
+
1672
+
1673
+
1674
+
1675
+ class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1676
+ async openReleaseCalendarPage() {
1677
+ await this.page.goto("./#/calendar");
1678
+ //Define date format to verify different calendar views
1679
+ const today = new Date();
1680
+ let options = {
1681
+ weekday: "long",
1682
+ year: "numeric",
1683
+ month: "short",
1684
+ day: "numeric"
1685
+ };
1686
+ this.dayFormat = today.toLocaleDateString("en-US", options); // Saturday, September 17, 2016
1687
+ this.yearFormat = today.getFullYear();
1688
+ this.yearFormatString = this.yearFormat.toString();
1689
+ options = {
1690
+ month: "long",
1691
+ year: "numeric"
1692
+ };
1693
+ this.monthFormat = today.toLocaleDateString("en-US", options);
1694
+ this.monthFormat = this.monthFormat.replace(/(\w+) (\d+)/, "$1, $2");
1695
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Release calendar / Home - Digital.ai Release");
1696
+ return this;
1697
+ }
1698
+ async exportCalendar() {
1699
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
1700
+ this.page.on("download", ()=>{});
1701
+ await this.page.getByRole("button", {
1702
+ name: "download icon Export calendar"
1703
+ }).click();
1704
+ const downloadPromise = this.page.waitForEvent("download");
1705
+ await this.page.getByRole("button", {
1706
+ name: "Export"
1707
+ }).click();
1708
+ await downloadPromise;
1709
+ }
1710
+ async cancelCalendarExport() {
1711
+ let downloadCount = 0;
1712
+ // Listen to download events
1713
+ this.page.on("download", (_download)=>{
1714
+ downloadCount++;
1715
+ });
1716
+ await this.page.getByRole("button", {
1717
+ name: "download icon Export calendar"
1718
+ }).click();
1719
+ await this.page.getByRole("button", {
1720
+ name: "Cancel"
1721
+ }).click();
1722
+ return downloadCount;
1723
+ }
1724
+ async verifyDayView() {
1725
+ await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
1726
+ await this.page.getByRole("option", {
1727
+ name: "Day"
1728
+ }).click();
1729
+ await this.page.getByRole("button", {
1730
+ name: "Today"
1731
+ }).click();
1732
+ //Verify Page has correct day format displayed at the page bottom
1733
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(this.dayFormat)).toBeVisible();
1734
+ }
1735
+ async verifyYearView() {
1736
+ await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
1737
+ await this.page.getByRole("option", {
1738
+ name: "Year"
1739
+ }).click();
1740
+ await this.page.getByRole("button", {
1741
+ name: "Today"
1742
+ }).click();
1743
+ //Verify Page has correct Year format displayed at the page bottom
1744
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".tl-footer-label").filter({
1745
+ hasText: this.yearFormatString
1746
+ })).toHaveText(this.yearFormatString);
1747
+ }
1748
+ async verifyMonthView() {
1749
+ await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
1750
+ await this.page.getByRole("option", {
1751
+ name: "Month"
1752
+ }).click();
1753
+ await this.page.getByRole("button", {
1754
+ name: "Today"
1755
+ }).click();
1756
+ //Verify Page has correct Year format displayed at the page bottom
1757
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".tl-footer-label").filter({
1758
+ hasText: this.monthFormat
1759
+ })).toHaveText(this.monthFormat);
1760
+ }
1761
+ async verifyPageContent(title) {
1762
+ const view_type = [
1763
+ "Day",
1764
+ "Week",
1765
+ "Month",
1766
+ "Year"
1767
+ ];
1768
+ for (const view of view_type){
1769
+ await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
1770
+ await this.page.getByRole("option", {
1771
+ name: view
1772
+ }).click();
1773
+ await this.page.getByRole("button", {
1774
+ name: "Today"
1775
+ }).click();
1776
+ //Verify Page has correct Year format displayed at the page bottom
1777
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title)).toBeVisible();
1778
+ }
1779
+ }
1780
+ async filterReleaseByTitle(title) {
1781
+ await this.page.getByPlaceholder("Filter by release title").click();
1782
+ await this.page.getByPlaceholder("Filter by release title").fill(title);
1783
+ await this.page.getByPlaceholder("Filter by release title").press("Enter");
1784
+ //Verify Page has correct Year format displayed at the page bottom
1785
+ await this.verifyPageContent(title);
1786
+ }
1787
+ async filterReleaseByTags(tags, release_title) {
1788
+ await this.page.locator(".tl-filter-release-tags").locator(".react-tagsinput").click();
1789
+ for (let tag of tags){
1790
+ tag = tag.toString();
1791
+ await this.page.locator(".tl-filter-release-tags").locator(".react-tagsinput-input").fill(tag);
1792
+ await this.page.getByTitle(tag).locator("i").click();
1793
+ }
1794
+ await this.verifyPageContent(release_title);
1795
+ }
1796
+ async filterTaskByTags(tags, task_title, release_title) {
1797
+ await this.page.locator(".tl-filter-task-tags").locator(".react-tagsinput").click();
1798
+ for (let tag of tags){
1799
+ tag = tag.toString();
1800
+ await this.page.locator(".tl-filter-task-tags").locator(".react-tagsinput-input").fill(tag);
1801
+ await this.page.getByTitle(tag).locator("i").click();
1802
+ }
1803
+ //Make sure task is visible on calnedar page
1804
+ await this.verifyPageContent(task_title);
1805
+ //Make sure parent release of the selected task is visible on calnedar page
1806
+ await this.verifyPageContent(release_title);
1807
+ }
1808
+ async filterReleaseByStatus(release_status, release_title) {
1809
+ if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
1810
+ name: "Advanced filters"
1811
+ }).click();
1812
+ await this.page.locator(".tl-filter-release-status").locator(".react-tagsinput").click();
1813
+ await this.page.getByTitle(release_status).locator("i").first().click();
1814
+ await this.verifyPageContent(release_title);
1815
+ }
1816
+ async filterReleaseByRisk(release_risk, release_title) {
1817
+ if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
1818
+ name: "Advanced filters"
1819
+ }).click();
1820
+ await this.page.locator(".tl-filter-risk-filter").getByRole("combobox").click();
1821
+ await this.page.getByRole("option", {
1822
+ name: release_risk
1823
+ }).click();
1824
+ await this.verifyPageContent(release_title);
1825
+ }
1826
+ async filterFlaggedRelease(release_title) {
1827
+ if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
1828
+ name: "Advanced filters"
1829
+ }).click();
1830
+ if (await this.page.locator(".tl-filter-flag-only.btn.btn-flat.btn-fixed.button-toggle-filter.active").isVisible()) await this.page.getByRole("button", {
1831
+ name: " Flagged"
1832
+ }).click();
1833
+ await this.verifyPageContent(release_title);
1834
+ }
1835
+ async viewRelease(release_title, release_id) {
1836
+ await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
1837
+ await this.page.getByRole("option", {
1838
+ name: "Day"
1839
+ }).click();
1840
+ await this.page.getByRole("button", {
1841
+ name: "Today"
1842
+ }).click();
1843
+ await this.page.getByText(release_title).click();
1844
+ await this.page.locator(".release-modal-container").locator(".xl-icon.release-icon").click();
1845
+ const releaseurl = `/#/releases/${release_id}`;
1846
+ const currentURL = await this.page.url();
1847
+ // Check if the release name present in redirected URL
1848
+ (0, $kKeXs$playwrighttest.expect)(currentURL).toContain(releaseurl);
1849
+ }
1850
+ async viewDependency(source_release, dest_release) {
1851
+ const source_text = source_release + "dependencies";
1852
+ await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
1853
+ await this.page.getByRole("option", {
1854
+ name: "Day"
1855
+ }).click();
1856
+ await this.page.getByRole("button", {
1857
+ name: "Today"
1858
+ }).click();
1859
+ await this.page.getByText(source_release).click();
1860
+ await this.page.locator(".release-modal-container").locator(".xl-icon.cluster-dependencies-icon").click();
1861
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".tl-drawer-navigation-header")).toHaveText(source_text);
1862
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".tl-drawer-dependency-body-title-text")).toHaveText(dest_release);
1863
+ }
1864
+ async downloadIcsCalendar(release_title) {
1865
+ let downloadCount = 0;
1866
+ // Listen to download events
1867
+ this.page.on("download", (_download)=>{
1868
+ downloadCount++;
1869
+ });
1870
+ await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
1871
+ await this.page.getByRole("option", {
1872
+ name: "Day"
1873
+ }).click();
1874
+ await this.page.getByRole("button", {
1875
+ name: "Today"
1876
+ }).click();
1877
+ await this.page.getByText(release_title).click();
1878
+ await this.page.locator(".release-modal-container").locator(".xl-icon.calendar-icon").click();
1879
+ return downloadCount;
1880
+ }
1881
+ }
1882
+
1883
+
1884
+
1885
+ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
1886
+ constructor(page){
1887
+ this.page = page;
1888
+ this.releasePage = new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(page);
1889
+ this.settingsMenu = new (0, $7867194f18360347$export$1d7840d5cdc861d5)(page);
1890
+ this.usersPage = new (0, $3ceab7c613cabfd6$export$107317390f5aa598)(page);
1891
+ this.applicationPage = new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(page);
1892
+ this.taskDetailsPage = new (0, $a642d735048996f9$export$922081b54f2ab994)(page);
1893
+ this.releaseCalendarPage = new (0, $a8855257f8bb2b12$export$43682cddead1dd78)(page);
1894
+ this.releaseListPage = new (0, $87643f2d97b0644e$export$a678525e79c4ccc4)(page);
1895
+ }
1896
+ async openTemplate(id) {
1897
+ return this.openReleaseOrTemplate(id, false);
1898
+ }
1899
+ async openRelease(id) {
1900
+ return this.openReleaseOrTemplate(id, true);
1901
+ }
1902
+ async openApplicationsPage() {
1903
+ return new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(this.page).goToApplicationsPage();
1904
+ }
1905
+ async openPersonalAccessTokenPage() {
1906
+ return new (0, $be4dd73206d8e76b$export$3cac5fd37ae64b91)(this.page).openPersonalAccessTokenPage();
1907
+ }
1908
+ async gotoFolderPage() {
1909
+ await this.page.locator("ul.side-nav li").getByText("Folders", {
1910
+ exact: true
1911
+ }).click();
1912
+ }
1913
+ async gotoTaskPage() {
1914
+ await this.page.locator("ul.side-nav li").getByText("Tasks", {
1915
+ exact: true
1916
+ }).click();
1917
+ }
1918
+ async gotoReleasePage() {
1919
+ await this.page.locator("ul.side-nav li").getByText("Releases", {
1920
+ exact: true
1921
+ }).click();
1922
+ }
1923
+ async gotoWorkflowCatalogPage() {
1924
+ await this.page.locator("ul.side-nav li").getByText("Workflow catalog", {
1925
+ exact: true
1926
+ }).click();
1927
+ }
1928
+ async gotoWorkflowsPage() {
1929
+ await this.page.locator("ul.side-nav li").getByText("Workflows", {
1930
+ exact: true
1931
+ }).click();
1932
+ }
1933
+ async gotoGroupsPage() {
1934
+ await this.page.locator("ul.side-nav li").getByText("Groups", {
1935
+ exact: true
1936
+ }).click();
1937
+ }
1938
+ async gotoReleaseCalenderPage() {
1939
+ await this.page.locator("ul.side-nav li").getByText("Release calendar", {
1940
+ exact: true
1941
+ }).click();
1942
+ }
1943
+ async gotoDeliveriesPage() {
1944
+ await this.page.locator("ul.side-nav li").getByText("Deliveries", {
1945
+ exact: true
1946
+ }).click();
1947
+ }
1948
+ async gotoTriggersPage() {
1949
+ await this.page.locator("ul.side-nav li").getByText("Triggers", {
1950
+ exact: true
1951
+ }).click();
1952
+ }
1953
+ async gotoDigitalAnalyticsPage() {
1954
+ await this.page.locator("ul.side-nav li").getByText("Digital.ai Analytics", {
1955
+ exact: true
1956
+ }).click();
1957
+ }
1958
+ async gotoReportsPage() {
1959
+ await this.page.locator("ul.side-nav li").getByText("Reports", {
1960
+ exact: true
1961
+ }).click();
1962
+ }
1963
+ async gotoTemplatesPage() {
1964
+ await this.page.locator("ul.side-nav li").getByText("Templates", {
1965
+ exact: true
1966
+ }).click();
1967
+ }
1968
+ async gotoEnvironmentsPage() {
1969
+ await this.page.locator("ul.side-nav li").getByText("Environments", {
1970
+ exact: true
1971
+ }).click();
1972
+ }
1973
+ async gotoEnvironmentsCalenderPage() {
1974
+ await this.page.locator("ul.side-nav li").getByText("Environments calendar", {
1975
+ exact: true
1976
+ }).click();
1977
+ }
1978
+ async gotoGobalVariablesPage() {
1979
+ await this.page.locator("ul.side-nav li").getByText("Global variables", {
1980
+ exact: true
1981
+ }).click();
1982
+ }
1983
+ async gotoConnectionsPage() {
1984
+ await this.page.locator("ul.side-nav li").getByText("Connections", {
1985
+ exact: true
1986
+ }).click();
1987
+ }
1988
+ async openReleaseOrTemplate(id, release) {
1989
+ const url = release ? "releases" : "templates";
1990
+ await this.page.goto(`./#/${url}/${id}`);
1991
+ await this.page.waitForSelector("#release");
1992
+ return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
1993
+ }
1351
1994
  }
1352
- $b4b8b2a977b4cc10$exports = $b4b8b2a977b4cc10$var$baseKeysIn;
1353
1995
 
1354
1996
 
1355
1997
 
1356
- var $fegcS = parcelRequire("fegcS");
1357
- /**
1358
- * Creates an array of the own and inherited enumerable property names of `object`.
1359
- *
1360
- * **Note:** Non-object values are coerced to objects.
1361
- *
1362
- * @static
1363
- * @memberOf _
1364
- * @since 3.0.0
1365
- * @category Object
1366
- * @param {Object} object The object to query.
1367
- * @returns {Array} Returns the array of property names.
1368
- * @example
1369
- *
1370
- * function Foo() {
1371
- * this.a = 1;
1372
- * this.b = 2;
1373
- * }
1374
- *
1375
- * Foo.prototype.c = 3;
1376
- *
1377
- * _.keysIn(new Foo);
1378
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
1379
- */ function $0e6e2e34ec44a72a$var$keysIn(object) {
1380
- return $fegcS(object) ? $gYWmw(object, true) : $b4b8b2a977b4cc10$exports(object);
1998
+
1999
+ class $258749e0671c845a$export$f14c0e3f98d164c0 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2000
+ /**
2001
+ * Login with username and password
2002
+ * @param userName
2003
+ * @param password
2004
+ */ async login(userName, password) {
2005
+ await this.page.goto("./#/login");
2006
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Digital.ai Release");
2007
+ await this.page.getByPlaceholder("User").fill(userName, {
2008
+ timeout: 1000
2009
+ });
2010
+ await this.page.getByPlaceholder("Password").fill(password, {
2011
+ timeout: 10000
2012
+ });
2013
+ await this.page.getByRole("button", {
2014
+ name: "Log in"
2015
+ }).click({
2016
+ timeout: 10000
2017
+ });
2018
+ await this.page.waitForTimeout(1000);
2019
+ }
2020
+ /**
2021
+ * Logout as authenticated user
2022
+ */ async logout() {
2023
+ await this.page.locator("button.dot-avatar").click();
2024
+ await this.page.getByText("Log out", {
2025
+ exact: true
2026
+ }).click();
2027
+ }
2028
+ /**
2029
+ * Expect login to be restricted for a user
2030
+ */ async expectLoginDisallowed() {
2031
+ const val = await this.page.textContent('.error-content span[ng-show="loginInfo.failedStatus == 403"]');
2032
+ (0, $kKeXs$playwrighttest.expect)(val).toContain("You do not have 'login' permission.");
2033
+ }
2034
+ /**
2035
+ * Expect the respective user is logged In
2036
+ * @param username
2037
+ */ async expectToBeLogged(username) {
2038
+ const val = await this.page.locator("top-toolbar .avatar-wrapper span.dot-tooltip").getAttribute("aria-label");
2039
+ (0, $kKeXs$playwrighttest.expect)(val).toContain(username);
2040
+ }
1381
2041
  }
1382
- $0e6e2e34ec44a72a$exports = $0e6e2e34ec44a72a$var$keysIn;
1383
2042
 
1384
2043
 
1385
- /** Used for built-in method references. */ var $732eba8dca8b5420$var$objectProto = Object.prototype;
1386
- /** Used to check objects for own properties. */ var $732eba8dca8b5420$var$hasOwnProperty = $732eba8dca8b5420$var$objectProto.hasOwnProperty;
2044
+ var $3e8b520187e41aa6$exports = {};
1387
2045
  /**
1388
- * Assigns own and inherited enumerable string keyed properties of source
1389
- * objects to the destination object for all destination properties that
1390
- * resolve to `undefined`. Source objects are applied from left to right.
1391
- * Once a property is set, additional values of the same property are ignored.
1392
- *
1393
- * **Note:** This method mutates `object`.
2046
+ * Checks if `value` is `undefined`.
1394
2047
  *
1395
2048
  * @static
1396
2049
  * @since 0.1.0
1397
2050
  * @memberOf _
1398
- * @category Object
1399
- * @param {Object} object The destination object.
1400
- * @param {...Object} [sources] The source objects.
1401
- * @returns {Object} Returns `object`.
1402
- * @see _.defaultsDeep
2051
+ * @category Lang
2052
+ * @param {*} value The value to check.
2053
+ * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
1403
2054
  * @example
1404
2055
  *
1405
- * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
1406
- * // => { 'a': 1, 'b': 2 }
1407
- */ var $732eba8dca8b5420$var$defaults = $b1535b4ce0d1bd5f$exports(function(object, sources) {
1408
- object = Object(object);
1409
- var index = -1;
1410
- var length = sources.length;
1411
- var guard = length > 2 ? sources[2] : undefined;
1412
- if (guard && $e084f044678f4365$exports(sources[0], sources[1], guard)) length = 1;
1413
- while(++index < length){
1414
- var source = sources[index];
1415
- var props = $0e6e2e34ec44a72a$exports(source);
1416
- var propsIndex = -1;
1417
- var propsLength = props.length;
1418
- while(++propsIndex < propsLength){
1419
- var key = props[propsIndex];
1420
- var value = object[key];
1421
- if (value === undefined || $ceebddaa7160689c$exports(value, $732eba8dca8b5420$var$objectProto[key]) && !$732eba8dca8b5420$var$hasOwnProperty.call(object, key)) object[key] = source[key];
1422
- }
1423
- }
1424
- return object;
1425
- });
1426
- $732eba8dca8b5420$exports = $732eba8dca8b5420$var$defaults;
2056
+ * _.isUndefined(void 0);
2057
+ * // => true
2058
+ *
2059
+ * _.isUndefined(null);
2060
+ * // => false
2061
+ */ function $3e8b520187e41aa6$var$isUndefined(value) {
2062
+ return value === undefined;
2063
+ }
2064
+ $3e8b520187e41aa6$exports = $3e8b520187e41aa6$var$isUndefined;
1427
2065
 
1428
2066
 
1429
- var $f51969c4a7467fa0$exports = {};
1430
- var $acbd35b1cbbf33e4$exports = {};
1431
- var $34482bf0fdb87aa6$exports = {};
1432
- var $c258ac491a64b22b$exports = {};
2067
+ var $952a2b8d8056b381$exports = {};
2068
+
2069
+ $952a2b8d8056b381$exports = (parcelRequire("ae8Uz"));
2070
+
2071
+
2072
+
2073
+ var $ae8Uz = parcelRequire("ae8Uz");
2074
+ var $732eba8dca8b5420$exports = {};
2075
+ var $b1535b4ce0d1bd5f$exports = {};
2076
+
2077
+ var $9x2D6 = parcelRequire("9x2D6");
2078
+ var $1b1aa0f3fc7256c9$exports = {};
2079
+ var $f984f14b3d4f0683$exports = {};
1433
2080
  /**
1434
- * A specialized version of `_.map` for arrays without support for iteratee
1435
- * shorthands.
2081
+ * A faster alternative to `Function#apply`, this function invokes `func`
2082
+ * with the `this` binding of `thisArg` and the arguments of `args`.
1436
2083
  *
1437
2084
  * @private
1438
- * @param {Array} [array] The array to iterate over.
1439
- * @param {Function} iteratee The function invoked per iteration.
1440
- * @returns {Array} Returns the new mapped array.
1441
- */ function $c258ac491a64b22b$var$arrayMap(array, iteratee) {
1442
- var index = -1, length = array == null ? 0 : array.length, result = Array(length);
1443
- while(++index < length)result[index] = iteratee(array[index], index, array);
1444
- return result;
2085
+ * @param {Function} func The function to invoke.
2086
+ * @param {*} thisArg The `this` binding of `func`.
2087
+ * @param {Array} args The arguments to invoke `func` with.
2088
+ * @returns {*} Returns the result of `func`.
2089
+ */ function $f984f14b3d4f0683$var$apply(func, thisArg, args) {
2090
+ switch(args.length){
2091
+ case 0:
2092
+ return func.call(thisArg);
2093
+ case 1:
2094
+ return func.call(thisArg, args[0]);
2095
+ case 2:
2096
+ return func.call(thisArg, args[0], args[1]);
2097
+ case 3:
2098
+ return func.call(thisArg, args[0], args[1], args[2]);
2099
+ }
2100
+ return func.apply(thisArg, args);
1445
2101
  }
1446
- $c258ac491a64b22b$exports = $c258ac491a64b22b$var$arrayMap;
2102
+ $f984f14b3d4f0683$exports = $f984f14b3d4f0683$var$apply;
1447
2103
 
1448
2104
 
2105
+ /* Built-in method references for those with the same name as other `lodash` methods. */ var $1b1aa0f3fc7256c9$var$nativeMax = Math.max;
1449
2106
  /**
1450
- * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
1451
- * of key-value pairs for `object` corresponding to the property names of `props`.
2107
+ * A specialized version of `baseRest` which transforms the rest array.
1452
2108
  *
1453
2109
  * @private
1454
- * @param {Object} object The object to query.
1455
- * @param {Array} props The property names to get values for.
1456
- * @returns {Object} Returns the key-value pairs.
1457
- */ function $34482bf0fdb87aa6$var$baseToPairs(object, props) {
1458
- return $c258ac491a64b22b$exports(props, function(key) {
1459
- return [
1460
- key,
1461
- object[key]
1462
- ];
1463
- });
1464
- }
1465
- $34482bf0fdb87aa6$exports = $34482bf0fdb87aa6$var$baseToPairs;
1466
-
1467
-
1468
- var $2184c74fd3b50571$exports = {};
1469
- var $9707ed10f1d74f7d$exports = {};
1470
-
1471
-
1472
- var $5iYlB = parcelRequire("5iYlB");
1473
- /* Built-in method references that are verified to be native. */ var $9707ed10f1d74f7d$var$DataView = $b7745e89d7f5915f$exports($5iYlB, "DataView");
1474
- $9707ed10f1d74f7d$exports = $9707ed10f1d74f7d$var$DataView;
1475
-
1476
-
1477
- var $8c4ecd35968046d6$exports = {};
2110
+ * @param {Function} func The function to apply a rest parameter to.
2111
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
2112
+ * @param {Function} transform The rest array transform.
2113
+ * @returns {Function} Returns the new function.
2114
+ */ function $1b1aa0f3fc7256c9$var$overRest(func, start, transform) {
2115
+ start = $1b1aa0f3fc7256c9$var$nativeMax(start === undefined ? func.length - 1 : start, 0);
2116
+ return function() {
2117
+ var args = arguments, index = -1, length = $1b1aa0f3fc7256c9$var$nativeMax(args.length - start, 0), array = Array(length);
2118
+ while(++index < length)array[index] = args[start + index];
2119
+ index = -1;
2120
+ var otherArgs = Array(start + 1);
2121
+ while(++index < start)otherArgs[index] = args[index];
2122
+ otherArgs[start] = transform(array);
2123
+ return $f984f14b3d4f0683$exports(func, this, otherArgs);
2124
+ };
2125
+ }
2126
+ $1b1aa0f3fc7256c9$exports = $1b1aa0f3fc7256c9$var$overRest;
1478
2127
 
1479
2128
 
1480
- var $5iYlB = parcelRequire("5iYlB");
1481
- /* Built-in method references that are verified to be native. */ var $8c4ecd35968046d6$var$Map = $b7745e89d7f5915f$exports($5iYlB, "Map");
1482
- $8c4ecd35968046d6$exports = $8c4ecd35968046d6$var$Map;
2129
+ var $0e9d1d7fde57dac1$exports = {};
2130
+ var $ef9aec5e693cb6ed$exports = {};
2131
+ var $3dc9802adab1dd60$exports = {};
2132
+ /**
2133
+ * Creates a function that returns `value`.
2134
+ *
2135
+ * @static
2136
+ * @memberOf _
2137
+ * @since 2.4.0
2138
+ * @category Util
2139
+ * @param {*} value The value to return from the new function.
2140
+ * @returns {Function} Returns the new constant function.
2141
+ * @example
2142
+ *
2143
+ * var objects = _.times(2, _.constant({ 'a': 1 }));
2144
+ *
2145
+ * console.log(objects);
2146
+ * // => [{ 'a': 1 }, { 'a': 1 }]
2147
+ *
2148
+ * console.log(objects[0] === objects[1]);
2149
+ * // => true
2150
+ */ function $3dc9802adab1dd60$var$constant(value) {
2151
+ return function() {
2152
+ return value;
2153
+ };
2154
+ }
2155
+ $3dc9802adab1dd60$exports = $3dc9802adab1dd60$var$constant;
1483
2156
 
1484
2157
 
1485
- var $30f4d64ddd8effd1$exports = {};
2158
+ var $97bac00047c338ed$exports = {};
2159
+ var $b7745e89d7f5915f$exports = {};
2160
+ var $927414f7f9d8afbb$exports = {};
1486
2161
 
2162
+ var $7T6pQ = parcelRequire("7T6pQ");
2163
+ var $1fb1799a04ee25ea$exports = {};
2164
+ var $5ee1230bf1668e2a$exports = {};
1487
2165
 
1488
2166
  var $5iYlB = parcelRequire("5iYlB");
1489
- /* Built-in method references that are verified to be native. */ var $30f4d64ddd8effd1$var$Promise = $b7745e89d7f5915f$exports($5iYlB, "Promise");
1490
- $30f4d64ddd8effd1$exports = $30f4d64ddd8effd1$var$Promise;
1491
-
1492
-
1493
- var $869474d4b330cc35$exports = {};
1494
-
2167
+ /** Used to detect overreaching core-js shims. */ var $5ee1230bf1668e2a$var$coreJsData = $5iYlB["__core-js_shared__"];
2168
+ $5ee1230bf1668e2a$exports = $5ee1230bf1668e2a$var$coreJsData;
1495
2169
 
1496
- var $5iYlB = parcelRequire("5iYlB");
1497
- /* Built-in method references that are verified to be native. */ var $869474d4b330cc35$var$Set = $b7745e89d7f5915f$exports($5iYlB, "Set");
1498
- $869474d4b330cc35$exports = $869474d4b330cc35$var$Set;
1499
2170
 
2171
+ /** Used to detect methods masquerading as native. */ var $1fb1799a04ee25ea$var$maskSrcKey = function() {
2172
+ var uid = /[^.]+$/.exec($5ee1230bf1668e2a$exports && $5ee1230bf1668e2a$exports.keys && $5ee1230bf1668e2a$exports.keys.IE_PROTO || "");
2173
+ return uid ? "Symbol(src)_1." + uid : "";
2174
+ }();
2175
+ /**
2176
+ * Checks if `func` has its source masked.
2177
+ *
2178
+ * @private
2179
+ * @param {Function} func The function to check.
2180
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
2181
+ */ function $1fb1799a04ee25ea$var$isMasked(func) {
2182
+ return !!$1fb1799a04ee25ea$var$maskSrcKey && $1fb1799a04ee25ea$var$maskSrcKey in func;
2183
+ }
2184
+ $1fb1799a04ee25ea$exports = $1fb1799a04ee25ea$var$isMasked;
1500
2185
 
1501
- var $c4df061ad36170d9$exports = {};
1502
2186
 
1503
2187
 
1504
- var $5iYlB = parcelRequire("5iYlB");
1505
- /* Built-in method references that are verified to be native. */ var $c4df061ad36170d9$var$WeakMap = $b7745e89d7f5915f$exports($5iYlB, "WeakMap");
1506
- $c4df061ad36170d9$exports = $c4df061ad36170d9$var$WeakMap;
2188
+ var $bfk90 = parcelRequire("bfk90");
2189
+ var $c6de24274df36d4e$exports = {};
2190
+ /** Used for built-in method references. */ var $c6de24274df36d4e$var$funcProto = Function.prototype;
2191
+ /** Used to resolve the decompiled source of functions. */ var $c6de24274df36d4e$var$funcToString = $c6de24274df36d4e$var$funcProto.toString;
2192
+ /**
2193
+ * Converts `func` to its source code.
2194
+ *
2195
+ * @private
2196
+ * @param {Function} func The function to convert.
2197
+ * @returns {string} Returns the source code.
2198
+ */ function $c6de24274df36d4e$var$toSource(func) {
2199
+ if (func != null) {
2200
+ try {
2201
+ return $c6de24274df36d4e$var$funcToString.call(func);
2202
+ } catch (e) {}
2203
+ try {
2204
+ return func + "";
2205
+ } catch (e) {}
2206
+ }
2207
+ return "";
2208
+ }
2209
+ $c6de24274df36d4e$exports = $c6de24274df36d4e$var$toSource;
1507
2210
 
1508
2211
 
2212
+ /**
2213
+ * Used to match `RegExp`
2214
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
2215
+ */ var $927414f7f9d8afbb$var$reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
2216
+ /** Used to detect host constructors (Safari). */ var $927414f7f9d8afbb$var$reIsHostCtor = /^\[object .+?Constructor\]$/;
2217
+ /** Used for built-in method references. */ var $927414f7f9d8afbb$var$funcProto = Function.prototype, $927414f7f9d8afbb$var$objectProto = Object.prototype;
2218
+ /** Used to resolve the decompiled source of functions. */ var $927414f7f9d8afbb$var$funcToString = $927414f7f9d8afbb$var$funcProto.toString;
2219
+ /** Used to check objects for own properties. */ var $927414f7f9d8afbb$var$hasOwnProperty = $927414f7f9d8afbb$var$objectProto.hasOwnProperty;
2220
+ /** Used to detect if a method is native. */ var $927414f7f9d8afbb$var$reIsNative = RegExp("^" + $927414f7f9d8afbb$var$funcToString.call($927414f7f9d8afbb$var$hasOwnProperty).replace($927414f7f9d8afbb$var$reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
2221
+ /**
2222
+ * The base implementation of `_.isNative` without bad shim checks.
2223
+ *
2224
+ * @private
2225
+ * @param {*} value The value to check.
2226
+ * @returns {boolean} Returns `true` if `value` is a native function,
2227
+ * else `false`.
2228
+ */ function $927414f7f9d8afbb$var$baseIsNative(value) {
2229
+ if (!$bfk90(value) || $1fb1799a04ee25ea$exports(value)) return false;
2230
+ var pattern = $7T6pQ(value) ? $927414f7f9d8afbb$var$reIsNative : $927414f7f9d8afbb$var$reIsHostCtor;
2231
+ return pattern.test($c6de24274df36d4e$exports(value));
2232
+ }
2233
+ $927414f7f9d8afbb$exports = $927414f7f9d8afbb$var$baseIsNative;
1509
2234
 
1510
- var $hi3Ib = parcelRequire("hi3Ib");
1511
2235
 
1512
- /** `Object#toString` result references. */ var $2184c74fd3b50571$var$mapTag = "[object Map]", $2184c74fd3b50571$var$objectTag = "[object Object]", $2184c74fd3b50571$var$promiseTag = "[object Promise]", $2184c74fd3b50571$var$setTag = "[object Set]", $2184c74fd3b50571$var$weakMapTag = "[object WeakMap]";
1513
- var $2184c74fd3b50571$var$dataViewTag = "[object DataView]";
1514
- /** Used to detect maps, sets, and weakmaps. */ var $2184c74fd3b50571$var$dataViewCtorString = $c6de24274df36d4e$exports($9707ed10f1d74f7d$exports), $2184c74fd3b50571$var$mapCtorString = $c6de24274df36d4e$exports($8c4ecd35968046d6$exports), $2184c74fd3b50571$var$promiseCtorString = $c6de24274df36d4e$exports($30f4d64ddd8effd1$exports), $2184c74fd3b50571$var$setCtorString = $c6de24274df36d4e$exports($869474d4b330cc35$exports), $2184c74fd3b50571$var$weakMapCtorString = $c6de24274df36d4e$exports($c4df061ad36170d9$exports);
2236
+ var $18378a7c2aff899b$exports = {};
1515
2237
  /**
1516
- * Gets the `toStringTag` of `value`.
2238
+ * Gets the value at `key` of `object`.
1517
2239
  *
1518
2240
  * @private
1519
- * @param {*} value The value to query.
1520
- * @returns {string} Returns the `toStringTag`.
1521
- */ var $2184c74fd3b50571$var$getTag = $hi3Ib;
1522
- // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
1523
- if ($9707ed10f1d74f7d$exports && $2184c74fd3b50571$var$getTag(new $9707ed10f1d74f7d$exports(new ArrayBuffer(1))) != $2184c74fd3b50571$var$dataViewTag || $8c4ecd35968046d6$exports && $2184c74fd3b50571$var$getTag(new $8c4ecd35968046d6$exports) != $2184c74fd3b50571$var$mapTag || $30f4d64ddd8effd1$exports && $2184c74fd3b50571$var$getTag($30f4d64ddd8effd1$exports.resolve()) != $2184c74fd3b50571$var$promiseTag || $869474d4b330cc35$exports && $2184c74fd3b50571$var$getTag(new $869474d4b330cc35$exports) != $2184c74fd3b50571$var$setTag || $c4df061ad36170d9$exports && $2184c74fd3b50571$var$getTag(new $c4df061ad36170d9$exports) != $2184c74fd3b50571$var$weakMapTag) $2184c74fd3b50571$var$getTag = function(value) {
1524
- var result = $hi3Ib(value), Ctor = result == $2184c74fd3b50571$var$objectTag ? value.constructor : undefined, ctorString = Ctor ? $c6de24274df36d4e$exports(Ctor) : "";
1525
- if (ctorString) switch(ctorString){
1526
- case $2184c74fd3b50571$var$dataViewCtorString:
1527
- return $2184c74fd3b50571$var$dataViewTag;
1528
- case $2184c74fd3b50571$var$mapCtorString:
1529
- return $2184c74fd3b50571$var$mapTag;
1530
- case $2184c74fd3b50571$var$promiseCtorString:
1531
- return $2184c74fd3b50571$var$promiseTag;
1532
- case $2184c74fd3b50571$var$setCtorString:
1533
- return $2184c74fd3b50571$var$setTag;
1534
- case $2184c74fd3b50571$var$weakMapCtorString:
1535
- return $2184c74fd3b50571$var$weakMapTag;
1536
- }
1537
- return result;
1538
- };
1539
- $2184c74fd3b50571$exports = $2184c74fd3b50571$var$getTag;
2241
+ * @param {Object} [object] The object to query.
2242
+ * @param {string} key The key of the property to get.
2243
+ * @returns {*} Returns the property value.
2244
+ */ function $18378a7c2aff899b$var$getValue(object, key) {
2245
+ return object == null ? undefined : object[key];
2246
+ }
2247
+ $18378a7c2aff899b$exports = $18378a7c2aff899b$var$getValue;
1540
2248
 
1541
2249
 
1542
- var $5cfa9b34443304aa$exports = {};
1543
2250
  /**
1544
- * Converts `map` to its key-value pairs.
2251
+ * Gets the native function at `key` of `object`.
1545
2252
  *
1546
2253
  * @private
1547
- * @param {Object} map The map to convert.
1548
- * @returns {Array} Returns the key-value pairs.
1549
- */ function $5cfa9b34443304aa$var$mapToArray(map) {
1550
- var index = -1, result = Array(map.size);
1551
- map.forEach(function(value, key) {
1552
- result[++index] = [
1553
- key,
1554
- value
1555
- ];
1556
- });
1557
- return result;
2254
+ * @param {Object} object The object to query.
2255
+ * @param {string} key The key of the method to get.
2256
+ * @returns {*} Returns the function if it's native, else `undefined`.
2257
+ */ function $b7745e89d7f5915f$var$getNative(object, key) {
2258
+ var value = $18378a7c2aff899b$exports(object, key);
2259
+ return $927414f7f9d8afbb$exports(value) ? value : undefined;
1558
2260
  }
1559
- $5cfa9b34443304aa$exports = $5cfa9b34443304aa$var$mapToArray;
2261
+ $b7745e89d7f5915f$exports = $b7745e89d7f5915f$var$getNative;
1560
2262
 
1561
2263
 
1562
- var $e0efec8f59f2b46b$exports = {};
2264
+ var $97bac00047c338ed$var$defineProperty = function() {
2265
+ try {
2266
+ var func = $b7745e89d7f5915f$exports(Object, "defineProperty");
2267
+ func({}, "", {});
2268
+ return func;
2269
+ } catch (e) {}
2270
+ }();
2271
+ $97bac00047c338ed$exports = $97bac00047c338ed$var$defineProperty;
2272
+
2273
+
2274
+
2275
+ var $9x2D6 = parcelRequire("9x2D6");
1563
2276
  /**
1564
- * Converts `set` to its value-value pairs.
2277
+ * The base implementation of `setToString` without support for hot loop shorting.
1565
2278
  *
1566
2279
  * @private
1567
- * @param {Object} set The set to convert.
1568
- * @returns {Array} Returns the value-value pairs.
1569
- */ function $e0efec8f59f2b46b$var$setToPairs(set) {
1570
- var index = -1, result = Array(set.size);
1571
- set.forEach(function(value) {
1572
- result[++index] = [
1573
- value,
1574
- value
1575
- ];
2280
+ * @param {Function} func The function to modify.
2281
+ * @param {Function} string The `toString` result.
2282
+ * @returns {Function} Returns `func`.
2283
+ */ var $ef9aec5e693cb6ed$var$baseSetToString = !$97bac00047c338ed$exports ? $9x2D6 : function(func, string) {
2284
+ return $97bac00047c338ed$exports(func, "toString", {
2285
+ "configurable": true,
2286
+ "enumerable": false,
2287
+ "value": $3dc9802adab1dd60$exports(string),
2288
+ "writable": true
1576
2289
  });
1577
- return result;
1578
- }
1579
- $e0efec8f59f2b46b$exports = $e0efec8f59f2b46b$var$setToPairs;
2290
+ };
2291
+ $ef9aec5e693cb6ed$exports = $ef9aec5e693cb6ed$var$baseSetToString;
1580
2292
 
1581
2293
 
1582
- /** `Object#toString` result references. */ var $acbd35b1cbbf33e4$var$mapTag = "[object Map]", $acbd35b1cbbf33e4$var$setTag = "[object Set]";
2294
+ var $f6a97849336ceea8$exports = {};
2295
+ /** Used to detect hot functions by number of calls within a span of milliseconds. */ var $f6a97849336ceea8$var$HOT_COUNT = 800, $f6a97849336ceea8$var$HOT_SPAN = 16;
2296
+ /* Built-in method references for those with the same name as other `lodash` methods. */ var $f6a97849336ceea8$var$nativeNow = Date.now;
1583
2297
  /**
1584
- * Creates a `_.toPairs` or `_.toPairsIn` function.
2298
+ * Creates a function that'll short out and invoke `identity` instead
2299
+ * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
2300
+ * milliseconds.
1585
2301
  *
1586
2302
  * @private
1587
- * @param {Function} keysFunc The function to get the keys of a given object.
1588
- * @returns {Function} Returns the new pairs function.
1589
- */ function $acbd35b1cbbf33e4$var$createToPairs(keysFunc) {
1590
- return function(object) {
1591
- var tag = $2184c74fd3b50571$exports(object);
1592
- if (tag == $acbd35b1cbbf33e4$var$mapTag) return $5cfa9b34443304aa$exports(object);
1593
- if (tag == $acbd35b1cbbf33e4$var$setTag) return $e0efec8f59f2b46b$exports(object);
1594
- return $34482bf0fdb87aa6$exports(object, keysFunc(object));
2303
+ * @param {Function} func The function to restrict.
2304
+ * @returns {Function} Returns the new shortable function.
2305
+ */ function $f6a97849336ceea8$var$shortOut(func) {
2306
+ var count = 0, lastCalled = 0;
2307
+ return function() {
2308
+ var stamp = $f6a97849336ceea8$var$nativeNow(), remaining = $f6a97849336ceea8$var$HOT_SPAN - (stamp - lastCalled);
2309
+ lastCalled = stamp;
2310
+ if (remaining > 0) {
2311
+ if (++count >= $f6a97849336ceea8$var$HOT_COUNT) return arguments[0];
2312
+ } else count = 0;
2313
+ return func.apply(undefined, arguments);
1595
2314
  };
1596
2315
  }
1597
- $acbd35b1cbbf33e4$exports = $acbd35b1cbbf33e4$var$createToPairs;
2316
+ $f6a97849336ceea8$exports = $f6a97849336ceea8$var$shortOut;
2317
+
2318
+
2319
+ /**
2320
+ * Sets the `toString` method of `func` to return `string`.
2321
+ *
2322
+ * @private
2323
+ * @param {Function} func The function to modify.
2324
+ * @param {Function} string The `toString` result.
2325
+ * @returns {Function} Returns `func`.
2326
+ */ var $0e9d1d7fde57dac1$var$setToString = $f6a97849336ceea8$exports($ef9aec5e693cb6ed$exports);
2327
+ $0e9d1d7fde57dac1$exports = $0e9d1d7fde57dac1$var$setToString;
1598
2328
 
1599
2329
 
2330
+ /**
2331
+ * The base implementation of `_.rest` which doesn't validate or coerce arguments.
2332
+ *
2333
+ * @private
2334
+ * @param {Function} func The function to apply a rest parameter to.
2335
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
2336
+ * @returns {Function} Returns the new function.
2337
+ */ function $b1535b4ce0d1bd5f$var$baseRest(func, start) {
2338
+ return $0e9d1d7fde57dac1$exports($1b1aa0f3fc7256c9$exports(func, start, $9x2D6), func + "");
2339
+ }
2340
+ $b1535b4ce0d1bd5f$exports = $b1535b4ce0d1bd5f$var$baseRest;
1600
2341
 
1601
- var $bqLSx = parcelRequire("bqLSx");
2342
+
2343
+ var $ceebddaa7160689c$exports = {};
1602
2344
  /**
1603
- * Creates an array of own enumerable string keyed-value pairs for `object`
1604
- * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
1605
- * entries are returned.
2345
+ * Performs a
2346
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
2347
+ * comparison between two values to determine if they are equivalent.
1606
2348
  *
1607
2349
  * @static
1608
2350
  * @memberOf _
1609
2351
  * @since 4.0.0
1610
- * @alias entries
1611
- * @category Object
1612
- * @param {Object} object The object to query.
1613
- * @returns {Array} Returns the key-value pairs.
2352
+ * @category Lang
2353
+ * @param {*} value The value to compare.
2354
+ * @param {*} other The other value to compare.
2355
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
1614
2356
  * @example
1615
2357
  *
1616
- * function Foo() {
1617
- * this.a = 1;
1618
- * this.b = 2;
1619
- * }
2358
+ * var object = { 'a': 1 };
2359
+ * var other = { 'a': 1 };
1620
2360
  *
1621
- * Foo.prototype.c = 3;
2361
+ * _.eq(object, object);
2362
+ * // => true
1622
2363
  *
1623
- * _.toPairs(new Foo);
1624
- * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
1625
- */ var $f51969c4a7467fa0$var$toPairs = $acbd35b1cbbf33e4$exports($bqLSx);
1626
- $f51969c4a7467fa0$exports = $f51969c4a7467fa0$var$toPairs;
1627
-
1628
-
1629
- const $8977f8672c5de0fa$export$45f0aca2596a2bb3 = function() {
1630
- const RELEASE_TYPE = "xlrelease.Release";
1631
- const PHASE_TYPE = "xlrelease.Phase";
1632
- const TEAM_TYPE = "xlrelease.Team";
1633
- const TASK_TYPE = "xlrelease.Task";
1634
- const COMMENT_TYPE = "xlrelease.Comment";
1635
- const CONDITION_TYPE = "xlrelease.GateCondition";
1636
- const DEPENDENCY_TYPE = "xlrelease.Dependency";
1637
- const LINK_TYPE = "xlrelease.Link";
1638
- const ATTACHMENT_TYPE = "xlrelease.Attachment";
1639
- const DASHBOARD_TYPE = "xlrelease.Dashboard";
1640
- const _TRIGGER_TYPE = "xlrelease.ReleaseTrigger";
1641
- const JIRA_TYPE = "jira.CreateIssue";
1642
- const DEFAULT_TASK_OWNER = "Itchy";
1643
- const processTasks = (task, container, index)=>{
1644
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.type)) task.type = TASK_TYPE;
1645
- task.id = task.id || `${container.id}/Task${index}`;
1646
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.owner) && task.type !== JIRA_TYPE) task.owner = DEFAULT_TASK_OWNER;
1647
- if (task.owner === null) delete task.owner;
1648
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.conditions, function(condition, idx) {
1649
- condition.type = CONDITION_TYPE;
1650
- condition.id = `${task.id}/GateCondition${idx}`;
1651
- });
1652
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.dependencies, function(dependency, idx) {
1653
- dependency.type = DEPENDENCY_TYPE;
1654
- dependency.id = `${task.id}/Dependency${idx}`;
1655
- });
1656
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.links, function(link, idx) {
1657
- link.type = LINK_TYPE;
1658
- link.id = `${task.id}/Link${idx}`;
1659
- });
1660
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.comments, function(comment, idx) {
1661
- comment.type = COMMENT_TYPE;
1662
- comment.id = `${task.id}/Comment${idx}`;
1663
- });
1664
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.tasks, function(subTask, idx) {
1665
- processTasks(subTask, task, idx);
1666
- });
1667
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.templateVariables, function(variable, idx) {
1668
- (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, task.id, idx));
1669
- });
1670
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.attachments, function(attachment, idx) {
1671
- attachment.type = ATTACHMENT_TYPE;
1672
- attachment.id = `${task.id}/Attachment${idx}`;
1673
- });
1674
- if (task.pythonScript) {
1675
- const pythonScript = task.pythonScript;
1676
- pythonScript.id = `${task.id}/PythonScript`;
1677
- pythonScript.customScriptTask = task.id;
1678
- }
1679
- };
1680
- const processPhases = (phase, release, index)=>{
1681
- phase.type = PHASE_TYPE;
1682
- phase.id = `${release.id}/Phase${index}`;
1683
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(phase.tasks, (task, idx)=>{
1684
- processTasks(task, phase, idx);
1685
- });
1686
- };
1687
- const getVariableEntity = (value, key, containerId, index, password)=>{
1688
- const keyNoSyntax = key.replace("${", "").replace("}", "");
1689
- return {
1690
- id: `${containerId}/Variable${index}`,
1691
- key: keyNoSyntax,
1692
- requiresValue: true,
1693
- showOnReleaseStart: true,
1694
- type: password ? "xlrelease.PasswordStringVariable" : "xlrelease.StringVariable",
1695
- value: value
1696
- };
1697
- };
1698
- const getValueProviderConfigurationEntity = function(containerId) {
1699
- return {
1700
- id: `${containerId}/valueProvider`,
1701
- variable: containerId
1702
- };
1703
- };
1704
- const getDashboardExtension = (dashboard, releaseId)=>{
1705
- const dashboardExtension = {
1706
- id: `${releaseId}/summary`,
1707
- type: DASHBOARD_TYPE,
1708
- tiles: []
1709
- };
1710
- if (dashboard.tiles) (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(dashboard.tiles, function(tile, index) {
1711
- dashboardExtension.tiles.push(getTileEntity(tile, `${releaseId}/summary`, index));
1712
- });
1713
- return dashboardExtension;
1714
- };
1715
- function getTileEntity(tile, containerId, index) {
1716
- tile.id = tile.id || `${containerId}/Tile${index}`;
1717
- return tile;
1718
- }
1719
- return function(release) {
1720
- release.type = RELEASE_TYPE;
1721
- if (release.id.indexOf("Applications/") === -1) release.id = `Applications/${release.id}`;
1722
- if (release.startDate) release.queryableStartDate = release.startDate;
1723
- else if (release.scheduledStartDate) release.queryableStartDate = release.scheduledStartDate;
1724
- if (release.endDate) release.queryableEndDate = release.endDate;
1725
- else if (release.dueDate) release.queryableEndDate = release.dueDate;
1726
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(release.owner)) release.owner = "Itchy"; // default release manager
1727
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.phases, function(phase, index) {
1728
- processPhases(phase, release, index);
1729
- });
1730
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.teams, function(team, index) {
1731
- team.type = TEAM_TYPE;
1732
- team.id = `${release.id}/Team${index}`;
1733
- });
1734
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.attachments, function(attachment, index) {
1735
- attachment.type = ATTACHMENT_TYPE;
1736
- attachment.id = `${release.id}/Attachment${index}`;
1737
- });
1738
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.variables, function(variable, index) {
1739
- (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, release.id, index));
1740
- if (variable.valueProvider) (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));
1741
- });
1742
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.variableValues), function(keyValue, index) {
1743
- if (!release.variables) release.variables = [];
1744
- release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1000 + index));
1745
- release.variableValues = undefined;
1746
- });
1747
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.passwordVariableValues), function(keyValue, index) {
1748
- if (!release.variables) release.variables = [];
1749
- release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1500 + index, true));
1750
- release.passwordVariableValues = undefined;
1751
- });
1752
- if (release.summary) {
1753
- release.extensions = [
1754
- getDashboardExtension(release.summary, release.id)
1755
- ];
1756
- release.summary = undefined;
1757
- }
1758
- };
1759
- }();
1760
-
1761
-
1762
-
1763
- class $f8721861c660dd88$export$2b65d1d97338f32b {
1764
- constructor(page){
1765
- this.page = page;
1766
- }
1767
- }
1768
-
1769
-
1770
- class $258749e0671c845a$export$f14c0e3f98d164c0 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1771
- /**
1772
- * Login with username and password
1773
- * @param userName
1774
- * @param password
1775
- */ async login(userName, password) {
1776
- await this.page.goto("./#/login");
1777
- await this.page.waitForTimeout(1000);
1778
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Digital.ai Release");
1779
- await this.page.getByPlaceholder("User").fill(userName);
1780
- await this.page.getByPlaceholder("Password").fill(password);
1781
- await this.page.getByRole("button", {
1782
- name: "Log in"
1783
- }).click();
1784
- }
1785
- /**
1786
- * Logout as authenticated user
1787
- */ async logout() {
1788
- await this.page.locator("button.dot-avatar").click();
1789
- await this.page.getByText("Log out").click();
1790
- }
1791
- /**
1792
- * Expect login to be restricted for a user
1793
- */ async expectLoginDisallowed() {
1794
- const val = await this.page.textContent('.error-content span[ng-show="loginInfo.failedStatus == 403"]');
1795
- (0, $kKeXs$playwrighttest.expect)(val).toContain("You do not have 'login' permission.");
1796
- }
1797
- /**
1798
- * Expect the respective user is logged In
1799
- * @param username
1800
- */ async expectToBeLogged(username) {
1801
- const val = await this.page.locator("top-toolbar .avatar-wrapper span.dot-tooltip").getAttribute("aria-label");
1802
- (0, $kKeXs$playwrighttest.expect)(val).toContain(username);
1803
- }
2364
+ * _.eq(object, other);
2365
+ * // => false
2366
+ *
2367
+ * _.eq('a', 'a');
2368
+ * // => true
2369
+ *
2370
+ * _.eq('a', Object('a'));
2371
+ * // => false
2372
+ *
2373
+ * _.eq(NaN, NaN);
2374
+ * // => true
2375
+ */ function $ceebddaa7160689c$var$eq(value, other) {
2376
+ return value === other || value !== value && other !== other;
1804
2377
  }
2378
+ $ceebddaa7160689c$exports = $ceebddaa7160689c$var$eq;
1805
2379
 
1806
2380
 
2381
+ var $e084f044678f4365$exports = {};
1807
2382
 
1808
2383
 
2384
+ var $fegcS = parcelRequire("fegcS");
1809
2385
 
2386
+ var $gf9YK = parcelRequire("gf9YK");
1810
2387
 
1811
-
1812
- class $280428cd9976d58e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1813
- async expectNumberOfReleases(releaseTitle, amount) {
1814
- if (amount === 1) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible();
1815
- else await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle).count()).toBe(amount);
1816
- }
1817
- async openReleaseByName(releaseTitle) {
1818
- await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
1819
- hasText: releaseTitle
1820
- }).click();
1821
- return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
1822
- }
2388
+ var $bfk90 = parcelRequire("bfk90");
2389
+ /**
2390
+ * Checks if the given arguments are from an iteratee call.
2391
+ *
2392
+ * @private
2393
+ * @param {*} value The potential iteratee value argument.
2394
+ * @param {*} index The potential iteratee index or key argument.
2395
+ * @param {*} object The potential iteratee object argument.
2396
+ * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
2397
+ * else `false`.
2398
+ */ function $e084f044678f4365$var$isIterateeCall(value, index, object) {
2399
+ if (!$bfk90(object)) return false;
2400
+ var type = typeof index;
2401
+ if (type == "number" ? $fegcS(object) && $gf9YK(index, object.length) : type == "string" && index in object) return $ceebddaa7160689c$exports(object[index], value);
2402
+ return false;
1823
2403
  }
2404
+ $e084f044678f4365$exports = $e084f044678f4365$var$isIterateeCall;
1824
2405
 
1825
2406
 
2407
+ var $0e6e2e34ec44a72a$exports = {};
1826
2408
 
1827
- class $133601cfe0486710$export$fb932093f944abe4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1828
- async openRelatedReleasesOf(title) {
1829
- await this.openContextMenu(title);
1830
- await this.page.locator(".popover-content xlr-context-menu a", {
1831
- hasText: "View releases"
1832
- }).click();
1833
- return new (0, $280428cd9976d58e$export$a678525e79c4ccc4)(this.page);
1834
- }
1835
- async openContextMenu(title) {
1836
- await (0, $kKeXs$playwrighttest.expect)(async ()=>{
1837
- await this.page.locator(".trigger-row-content", {
1838
- hasText: title
1839
- }).locator(".context-menu-button").click();
1840
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".popover-content")).toBeVisible();
1841
- }).toPass();
1842
- }
2409
+ var $gYWmw = parcelRequire("gYWmw");
2410
+ var $b4b8b2a977b4cc10$exports = {};
2411
+
2412
+ var $bfk90 = parcelRequire("bfk90");
2413
+
2414
+ var $cjTq2 = parcelRequire("cjTq2");
2415
+ var $59b6e790ee7519e4$exports = {};
2416
+ /**
2417
+ * This function is like
2418
+ * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
2419
+ * except that it includes inherited enumerable properties.
2420
+ *
2421
+ * @private
2422
+ * @param {Object} object The object to query.
2423
+ * @returns {Array} Returns the array of property names.
2424
+ */ function $59b6e790ee7519e4$var$nativeKeysIn(object) {
2425
+ var result = [];
2426
+ if (object != null) for(var key in Object(object))result.push(key);
2427
+ return result;
1843
2428
  }
2429
+ $59b6e790ee7519e4$exports = $59b6e790ee7519e4$var$nativeKeysIn;
1844
2430
 
1845
2431
 
2432
+ /** Used for built-in method references. */ var $b4b8b2a977b4cc10$var$objectProto = Object.prototype;
2433
+ /** Used to check objects for own properties. */ var $b4b8b2a977b4cc10$var$hasOwnProperty = $b4b8b2a977b4cc10$var$objectProto.hasOwnProperty;
2434
+ /**
2435
+ * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
2436
+ *
2437
+ * @private
2438
+ * @param {Object} object The object to query.
2439
+ * @returns {Array} Returns the array of property names.
2440
+ */ function $b4b8b2a977b4cc10$var$baseKeysIn(object) {
2441
+ if (!$bfk90(object)) return $59b6e790ee7519e4$exports(object);
2442
+ var isProto = $cjTq2(object), result = [];
2443
+ for(var key in object)if (!(key == "constructor" && (isProto || !$b4b8b2a977b4cc10$var$hasOwnProperty.call(object, key)))) result.push(key);
2444
+ return result;
2445
+ }
2446
+ $b4b8b2a977b4cc10$exports = $b4b8b2a977b4cc10$var$baseKeysIn;
1846
2447
 
1847
2448
 
1848
2449
 
1849
- async function $ef0df8ad8a777ce6$export$a0f926f04148e5d2(locators) {
1850
- const res = await Promise.all([
1851
- ...locators.map(async (locator, index)=>{
1852
- let timedOut = false;
1853
- await locator.waitFor({
1854
- state: "visible",
1855
- timeout: 2000
1856
- }).catch(()=>timedOut = true);
1857
- return [
1858
- timedOut ? -1 : index,
1859
- locator
1860
- ];
1861
- })
1862
- ]);
1863
- const resolvedLocator = res.find((r)=>r[0] !== -1);
1864
- if (!resolvedLocator) {
1865
- console.warn("waitForOneOf", res);
1866
- throw new Error("no locator visible before timeout");
1867
- }
1868
- return resolvedLocator;
2450
+ var $fegcS = parcelRequire("fegcS");
2451
+ /**
2452
+ * Creates an array of the own and inherited enumerable property names of `object`.
2453
+ *
2454
+ * **Note:** Non-object values are coerced to objects.
2455
+ *
2456
+ * @static
2457
+ * @memberOf _
2458
+ * @since 3.0.0
2459
+ * @category Object
2460
+ * @param {Object} object The object to query.
2461
+ * @returns {Array} Returns the array of property names.
2462
+ * @example
2463
+ *
2464
+ * function Foo() {
2465
+ * this.a = 1;
2466
+ * this.b = 2;
2467
+ * }
2468
+ *
2469
+ * Foo.prototype.c = 3;
2470
+ *
2471
+ * _.keysIn(new Foo);
2472
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
2473
+ */ function $0e6e2e34ec44a72a$var$keysIn(object) {
2474
+ return $fegcS(object) ? $gYWmw(object, true) : $b4b8b2a977b4cc10$exports(object);
1869
2475
  }
2476
+ $0e6e2e34ec44a72a$exports = $0e6e2e34ec44a72a$var$keysIn;
1870
2477
 
1871
2478
 
1872
- class $fd4eef3ad2b2e612$export$a87f0ae8695e74be extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1873
- async openVariable(variableKey) {
1874
- await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();
1875
- return new $fd4eef3ad2b2e612$var$ReleaseVariableModal(this.page);
1876
- }
1877
- }
1878
- class $fd4eef3ad2b2e612$var$ReleaseVariableModal extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1879
- async expectValue(locators, expectFn) {
1880
- const [index, locator] = await (0, $ef0df8ad8a777ce6$export$a0f926f04148e5d2)(locators);
1881
- await expectFn[index](locator);
1882
- }
1883
- async expectValueToBe(value) {
1884
- await this.expectValue([
1885
- this.page.locator("#modal .variable-value input"),
1886
- this.page.locator("#modal .variable-value .field-readonly"),
1887
- this.page.locator("#modal .variable-value .xl-map-string-string")
1888
- ], [
1889
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveValue(value),
1890
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value),
1891
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value)
1892
- ]);
1893
- }
1894
- async expectValueToContain(value) {
1895
- await this.expectValue([
1896
- this.page.locator("#modal .variable-value input"),
1897
- this.page.locator("#modal .variable-value .field-readonly"),
1898
- this.page.locator("#modal .variable-value .xl-map-string-string")
1899
- ], [
1900
- (l)=>(0, $kKeXs$playwrighttest.expect)(l.inputValue()).toContain(value),
1901
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value),
1902
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value)
1903
- ]);
1904
- }
1905
- async close() {
1906
- await this.page.locator("#modal .modal-header button.close").click();
2479
+ /** Used for built-in method references. */ var $732eba8dca8b5420$var$objectProto = Object.prototype;
2480
+ /** Used to check objects for own properties. */ var $732eba8dca8b5420$var$hasOwnProperty = $732eba8dca8b5420$var$objectProto.hasOwnProperty;
2481
+ /**
2482
+ * Assigns own and inherited enumerable string keyed properties of source
2483
+ * objects to the destination object for all destination properties that
2484
+ * resolve to `undefined`. Source objects are applied from left to right.
2485
+ * Once a property is set, additional values of the same property are ignored.
2486
+ *
2487
+ * **Note:** This method mutates `object`.
2488
+ *
2489
+ * @static
2490
+ * @since 0.1.0
2491
+ * @memberOf _
2492
+ * @category Object
2493
+ * @param {Object} object The destination object.
2494
+ * @param {...Object} [sources] The source objects.
2495
+ * @returns {Object} Returns `object`.
2496
+ * @see _.defaultsDeep
2497
+ * @example
2498
+ *
2499
+ * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
2500
+ * // => { 'a': 1, 'b': 2 }
2501
+ */ var $732eba8dca8b5420$var$defaults = $b1535b4ce0d1bd5f$exports(function(object, sources) {
2502
+ object = Object(object);
2503
+ var index = -1;
2504
+ var length = sources.length;
2505
+ var guard = length > 2 ? sources[2] : undefined;
2506
+ if (guard && $e084f044678f4365$exports(sources[0], sources[1], guard)) length = 1;
2507
+ while(++index < length){
2508
+ var source = sources[index];
2509
+ var props = $0e6e2e34ec44a72a$exports(source);
2510
+ var propsIndex = -1;
2511
+ var propsLength = props.length;
2512
+ while(++propsIndex < propsLength){
2513
+ var key = props[propsIndex];
2514
+ var value = object[key];
2515
+ if (value === undefined || $ceebddaa7160689c$exports(value, $732eba8dca8b5420$var$objectProto[key]) && !$732eba8dca8b5420$var$hasOwnProperty.call(object, key)) object[key] = source[key];
2516
+ }
1907
2517
  }
1908
- }
2518
+ return object;
2519
+ });
2520
+ $732eba8dca8b5420$exports = $732eba8dca8b5420$var$defaults;
1909
2521
 
1910
2522
 
2523
+ var $f51969c4a7467fa0$exports = {};
2524
+ var $acbd35b1cbbf33e4$exports = {};
2525
+ var $34482bf0fdb87aa6$exports = {};
2526
+ var $c258ac491a64b22b$exports = {};
2527
+ /**
2528
+ * A specialized version of `_.map` for arrays without support for iteratee
2529
+ * shorthands.
2530
+ *
2531
+ * @private
2532
+ * @param {Array} [array] The array to iterate over.
2533
+ * @param {Function} iteratee The function invoked per iteration.
2534
+ * @returns {Array} Returns the new mapped array.
2535
+ */ function $c258ac491a64b22b$var$arrayMap(array, iteratee) {
2536
+ var index = -1, length = array == null ? 0 : array.length, result = Array(length);
2537
+ while(++index < length)result[index] = iteratee(array[index], index, array);
2538
+ return result;
2539
+ }
2540
+ $c258ac491a64b22b$exports = $c258ac491a64b22b$var$arrayMap;
1911
2541
 
1912
2542
 
1913
- class $8be2ce0eccbe6d27$export$64c93bc7fb9ca44e extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1914
- constructor(page){
1915
- super(page);
1916
- this.railLocator = this.page.locator("task-drawer .dot-drawer .task-config");
1917
- }
1918
- async openInputProperties() {
1919
- await this.railLocator.locator(".task-config-header").getByText("Input properties").click();
1920
- }
1921
- async openOutputProperties() {
1922
- await this.railLocator.locator(".task-config-header").getByText("Output properties").click();
1923
- }
1924
- async getValueFromCi(propertyName) {
1925
- return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1926
- }
1927
- async getAllOptionsFromCi(propertyName) {
1928
- await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1929
- return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();
1930
- }
1931
- async setValueFromCi(propertyName, value) {
1932
- await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1933
- await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1934
- await this.railLocator.locator(`.dot-popper ul li`, {
1935
- hasText: value
1936
- }).click();
1937
- }
1938
- async getValueFromString(propertyName) {
1939
- await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1940
- return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1941
- }
1942
- async setValueFromString(propertyName, value) {
1943
- await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1944
- await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1945
- }
1946
- async setValueFromLargeString(propertyName, value) {
1947
- await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1948
- await this.railLocator.locator(`textarea[id="${propertyName}"]`).fill(value);
1949
- }
1950
- async setValueFromPassword(propertyName, value) {
1951
- await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1952
- }
1953
- async setAndCreateVariable(propertyName, variableName) {
1954
- await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1955
- await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1956
- await this.railLocator.locator(`input[id="${propertyName}"]`).fill(variableName);
1957
- await this.railLocator.locator(`.dot-popper button`, {
1958
- hasText: variableName
1959
- }).click();
1960
- }
1961
- async setVariable(propertyName, variableName) {
1962
- return this.setValueFromCi(propertyName, variableName);
1963
- }
1964
- async expectValueFromString(propertyName, propertyValue) {
1965
- return await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`)).toHaveText(propertyValue);
1966
- }
2543
+ /**
2544
+ * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
2545
+ * of key-value pairs for `object` corresponding to the property names of `props`.
2546
+ *
2547
+ * @private
2548
+ * @param {Object} object The object to query.
2549
+ * @param {Array} props The property names to get values for.
2550
+ * @returns {Object} Returns the key-value pairs.
2551
+ */ function $34482bf0fdb87aa6$var$baseToPairs(object, props) {
2552
+ return $c258ac491a64b22b$exports(props, function(key) {
2553
+ return [
2554
+ key,
2555
+ object[key]
2556
+ ];
2557
+ });
1967
2558
  }
2559
+ $34482bf0fdb87aa6$exports = $34482bf0fdb87aa6$var$baseToPairs;
1968
2560
 
1969
2561
 
2562
+ var $2184c74fd3b50571$exports = {};
2563
+ var $9707ed10f1d74f7d$exports = {};
1970
2564
 
1971
2565
 
1972
-
1973
- class $9c0b0c2caed50730$export$d4865631ba74f3e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1974
- constructor(page){
1975
- super(page);
1976
- this.railLocator = this.page.locator("task-drawer .dot-drawer .task-conditions");
1977
- this.preconditionToggle = page.getByLabel("Enable precondition");
1978
- this.textEditor = page.getByRole("textbox");
1979
- this.saveButton = page.getByTestId("save-btn");
1980
- }
1981
- async enablePrecondition() {
1982
- (0, $kKeXs$playwrighttest.expect)(await this.preconditionToggle.isChecked()).toBe(false);
1983
- await this.preconditionToggle.check();
1984
- }
1985
- async disablePrecondition() {
1986
- (0, $kKeXs$playwrighttest.expect)(await this.preconditionToggle.isChecked()).toBe(true);
1987
- await this.preconditionToggle.uncheck();
1988
- }
1989
- async setPrecondition(script) {
1990
- await this.enablePrecondition();
1991
- await this.textEditor.fill(script);
1992
- await this.saveButton.dblclick();
1993
- await this.page.waitForTimeout(1000);
1994
- }
1995
- }
2566
+ var $5iYlB = parcelRequire("5iYlB");
2567
+ /* Built-in method references that are verified to be native. */ var $9707ed10f1d74f7d$var$DataView = $b7745e89d7f5915f$exports($5iYlB, "DataView");
2568
+ $9707ed10f1d74f7d$exports = $9707ed10f1d74f7d$var$DataView;
1996
2569
 
1997
2570
 
1998
- class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1999
- constructor(page){
2000
- super(page);
2001
- this.taskDrawerLocator = this.page.locator("task-drawer .dot-drawer");
2002
- this.retryButton = this.page.getByRole("button", {
2003
- name: "Retry"
2004
- });
2005
- this.cancelButton = this.page.getByTestId("task-action-cancel");
2006
- this.commentBox = this.page.getByTestId("task-action-comment");
2007
- this.confirm = this.page.getByTestId("task-action-confirm");
2008
- this.config = new (0, $8be2ce0eccbe6d27$export$64c93bc7fb9ca44e)(page);
2009
- this.condition = new (0, $9c0b0c2caed50730$export$d4865631ba74f3e2)(page);
2010
- this.skipMenu = this.page.getByRole("menuitem", {
2011
- name: "Skip"
2012
- });
2013
- }
2014
- async openOverviewRail() {
2015
- await this.openRail("Overview");
2016
- }
2017
- async openActivityRail() {
2018
- await this.openRail("Activity");
2019
- }
2020
- async openSchedulingRail() {
2021
- await this.openRail("Scheduling");
2022
- }
2023
- async openConditionRail() {
2024
- await this.openRail("Conditions");
2025
- }
2026
- async openAttributesRail() {
2027
- await this.openRail("Attributes");
2028
- }
2029
- async openAttachRail() {
2030
- await this.openRail("Attach");
2031
- }
2032
- async openTagsRail() {
2033
- await this.openRail("Tags");
2034
- }
2035
- async openRail(rail) {
2036
- await this.taskDrawerLocator.locator(".task-navigation-rail").getByText(rail).click();
2037
- }
2038
- async close() {
2039
- await this.taskDrawerLocator.locator(".task-drawer-header").getByTestId("close-btn").click();
2040
- }
2041
- async retryTask(comment) {
2042
- await this.retryButton.click();
2043
- await this.commentBox.fill(comment);
2044
- await this.confirm.click();
2045
- }
2046
- async skipTask(comment) {
2047
- await this.page.getByRole("button", {
2048
- name: "arrow-down icon",
2049
- exact: true
2050
- }).click();
2051
- await this.skipMenu.click();
2052
- await this.commentBox.fill(comment);
2053
- await this.confirm.click();
2054
- }
2055
- }
2571
+ var $8c4ecd35968046d6$exports = {};
2056
2572
 
2057
2573
 
2058
- class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2059
- constructor(page){
2060
- super(page);
2061
- this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
2062
- }
2063
- async openTriggers() {
2064
- await this.openSubPage("Triggers");
2065
- return new (0, $133601cfe0486710$export$fb932093f944abe4)(this.page);
2066
- }
2067
- async abort(comment = "Abort for testing") {
2068
- await this.page.locator("action-toolbar button", {
2069
- hasText: "Abort"
2070
- }).click();
2071
- await this.page.locator(".modal textarea").fill(comment);
2072
- await this.page.locator(".modal .continue").click();
2073
- }
2074
- getPhase(phaseName) {
2075
- return new $9b9a8c3da392d020$var$Phase(this.page, phaseName);
2076
- }
2077
- async start() {
2078
- await this.page.getByTestId("start-btn").click();
2079
- await this.page.getByRole("button", {
2080
- name: "Start"
2081
- }).click();
2082
- }
2083
- async waitForTaskCompleted(taskTitle) {
2084
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.completed").getByText(taskTitle, {
2085
- exact: true
2086
- })).toBeVisible();
2087
- }
2088
- async waitForTaskFailed(taskTitle) {
2089
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.failed").getByText(taskTitle, {
2090
- exact: true
2091
- })).toBeVisible();
2092
- }
2093
- async waitForTaskSkipped(taskTitle) {
2094
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.skipped").getByText(taskTitle, {
2095
- exact: true
2096
- })).toBeVisible();
2097
- }
2098
- async waitForTaskAborted(taskTitle) {
2099
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.aborted").getByText(taskTitle, {
2100
- exact: true
2101
- })).toBeVisible();
2102
- }
2103
- async waitForStatusLine(statusLine) {
2104
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task .status-line").getByText(statusLine, {
2105
- exact: true
2106
- })).toBeVisible();
2107
- }
2108
- async waitForTaskStarted(taskTitle) {
2109
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.in_progress").getByTitle(taskTitle, {
2110
- exact: true
2111
- })).toBeVisible();
2112
- }
2113
- async openTaskDrawer(taskName) {
2114
- await this.page.locator(".task-header").getByText(taskName).click();
2115
- return this.taskDrawer;
2116
- }
2117
- async openVariables() {
2118
- await this.openReleaseMenu("Variables");
2119
- return new (0, $fd4eef3ad2b2e612$export$a87f0ae8695e74be)(this.page);
2120
- }
2121
- async openReleaseMenu(menuItem) {
2122
- await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
2123
- exact: true
2124
- }).click();
2125
- }
2126
- async openSubPage(subpage) {
2127
- await this.page.locator("ul.side-nav li", {
2128
- hasText: subpage
2129
- }).click();
2130
- }
2131
- async openTask(taskName) {
2132
- await this.page.getByTitle(taskName, {
2133
- exact: true
2134
- }).click();
2135
- }
2136
- async collapseAllTaskView() {
2137
- const icCollapseTreeview1 = this.page.locator("div.pull-left.expander.ng-scope i.xl-icon.arrow-down-icon");
2138
- for (const element of (await icCollapseTreeview1.all())){
2139
- const blnVal = await element.isVisible();
2140
- if (blnVal) {
2141
- await element.click();
2142
- await this.collapseAllTaskView();
2143
- }
2144
- }
2145
- }
2146
- async expandAllTaskView() {
2147
- const icExpandTreeview1 = this.page.locator("div.pull-left.expander.ng-scope i.xl-icon.arrow-right-icon");
2148
- for (const element of (await icExpandTreeview1.all())){
2149
- const blnVal = await element.isVisible();
2150
- if (blnVal) {
2151
- await element.click();
2152
- await this.expandAllTaskView();
2153
- }
2154
- }
2155
- }
2156
- }
2157
- class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2158
- constructor(page, phaseName){
2159
- super(page);
2160
- this.phaseLocator = page.locator(".phase", {
2161
- hasText: phaseName
2162
- });
2163
- }
2164
- async addTask(taskName, taskGroup, taskType) {
2165
- await this.phaseLocator.getByText("Add task").click();
2166
- await this.phaseLocator.locator(".quick-title").fill(taskName);
2167
- await this.phaseLocator.locator(".xlr-ctx-menu-toggle").click();
2168
- await this.page.locator(`.xlr-ctx-menu-item`).getByTitle(taskGroup, {
2169
- exact: true
2170
- }).scrollIntoViewIfNeeded();
2171
- await this.page.locator(`.xlr-ctx-menu-item`).getByTitle(taskGroup, {
2172
- exact: true
2173
- }).hover();
2174
- await this.page.locator(`.xlr-ctx-menu.active`).getByTitle(taskType, {
2175
- exact: true
2176
- }).click();
2177
- await this.phaseLocator.locator(".quick-controls-container a").getByText("Add", {
2178
- exact: true
2179
- }).click();
2180
- }
2181
- }
2574
+ var $5iYlB = parcelRequire("5iYlB");
2575
+ /* Built-in method references that are verified to be native. */ var $8c4ecd35968046d6$var$Map = $b7745e89d7f5915f$exports($5iYlB, "Map");
2576
+ $8c4ecd35968046d6$exports = $8c4ecd35968046d6$var$Map;
2182
2577
 
2183
2578
 
2579
+ var $30f4d64ddd8effd1$exports = {};
2184
2580
 
2185
2581
 
2186
- class $dc91ece6da6cadfa$export$1533b625ec0c75e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2187
- async goToApplicationsPage() {
2188
- await this.page.goto("./#/applications");
2189
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Applications - Digital.ai Release");
2190
- return this;
2191
- }
2192
- async addNewApplication(applicationName) {
2193
- await this.page.locator(`//button[normalize-space()='New application']`).click();
2194
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
2195
- await this.page.locator(`//button[normalize-space()='Save']`).click();
2196
- return this;
2197
- }
2198
- async verifyApplicationisCreated(applicationName) {
2199
- await this.page.waitForSelector(`div[title='${applicationName}'] strong`);
2200
- return this;
2201
- }
2202
- async createApplicationAndLinkEnvironment(environmentName, applicationName) {
2203
- await this.page.locator(`//button[normalize-space()='New application']`).click();
2204
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
2205
- await this.page.locator("input[placeholder='Filter environment name...']").type(environmentName);
2206
- await this.page.locator(`div[title='${environmentName}']`).click();
2207
- await this.page.locator(`//button[normalize-space()='Save']`).click();
2208
- await this.page.locator("i.xl-icon.close-icon").click();
2209
- return this;
2210
- }
2211
- }
2582
+ var $5iYlB = parcelRequire("5iYlB");
2583
+ /* Built-in method references that are verified to be native. */ var $30f4d64ddd8effd1$var$Promise = $b7745e89d7f5915f$exports($5iYlB, "Promise");
2584
+ $30f4d64ddd8effd1$exports = $30f4d64ddd8effd1$var$Promise;
2212
2585
 
2213
2586
 
2587
+ var $869474d4b330cc35$exports = {};
2214
2588
 
2215
2589
 
2216
- class $be4dd73206d8e76b$export$3cac5fd37ae64b91 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2217
- async openPersonalAccessTokenPage() {
2218
- // await this.page.locator("button.dot-avatar").click()
2219
- // await this.page.locator("//div[normalize-space()='Access tokens']").click()
2220
- await this.page.goto("./#/personal-access-token");
2221
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Access tokens / Personal settings - Digital.ai Release");
2222
- return this;
2223
- }
2224
- async addNewToken(tokenName) {
2225
- //await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release')
2226
- await this.page.locator("#tokenText").fill(tokenName);
2227
- await this.page.locator("button[type='submit']").click();
2228
- return this;
2229
- }
2230
- }
2590
+ var $5iYlB = parcelRequire("5iYlB");
2591
+ /* Built-in method references that are verified to be native. */ var $869474d4b330cc35$var$Set = $b7745e89d7f5915f$exports($5iYlB, "Set");
2592
+ $869474d4b330cc35$exports = $869474d4b330cc35$var$Set;
2231
2593
 
2232
2594
 
2595
+ var $c4df061ad36170d9$exports = {};
2233
2596
 
2234
2597
 
2598
+ var $5iYlB = parcelRequire("5iYlB");
2599
+ /* Built-in method references that are verified to be native. */ var $c4df061ad36170d9$var$WeakMap = $b7745e89d7f5915f$exports($5iYlB, "WeakMap");
2600
+ $c4df061ad36170d9$exports = $c4df061ad36170d9$var$WeakMap;
2235
2601
 
2236
- class $bb5572a48b31014a$export$e2e2e1ffdce20c30 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2237
- constructor(page){
2238
- super(page);
2239
- this.userName = page.locator("#username");
2240
- this.name = page.locator("#full-name");
2241
- this.email = page.locator("#email");
2242
- this.password = page.locator('[data-test="password-input"]');
2243
- this.cnfPassword = page.locator("#passwordConfirmation");
2244
- this.saveButton = page.getByRole("button", {
2245
- name: "Save"
2246
- });
2247
- this.cancelButton = page.getByRole("button", {
2248
- name: "Cancel"
2249
- });
2250
- this.deleteButton = page.getByRole("button", {
2251
- name: "Delete"
2252
- });
2253
- }
2254
- async setUserName(username) {
2255
- return await this.userName.fill(username);
2256
- }
2257
- async setFullName(fullName) {
2258
- return await this.name.fill(fullName);
2259
- }
2260
- async setEmail(email) {
2261
- return await this.email.fill(email);
2262
- }
2263
- async setPassword(password) {
2264
- return await this.password.fill(password);
2265
- }
2266
- async setConfirmPassword(cnfPassword) {
2267
- return await this.cnfPassword.fill(cnfPassword);
2268
- }
2269
- async save() {
2270
- await this.saveButton.click();
2271
- }
2272
- async cancel() {
2273
- await this.cancelButton.click();
2274
- }
2275
- async delete() {
2276
- await this.deleteButton.click();
2277
- }
2278
- }
2279
2602
 
2280
2603
 
2281
- class $3ceab7c613cabfd6$export$107317390f5aa598 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2282
- constructor(page){
2283
- super(page);
2284
- this.page = page;
2285
- this.newUserButton = this.page.getByTestId("new-user-btn");
2286
- this.modal = new (0, $bb5572a48b31014a$export$e2e2e1ffdce20c30)(page);
2287
- }
2288
- async openUsersPage() {
2289
- this.page.goto("./#/users", {
2290
- timeout: 1000
2291
- });
2292
- }
2293
- async toggleLoginPermission(username) {
2294
- await this.page.getByRole("row", {
2295
- name: "" + username + ""
2296
- }).getByRole("checkbox").check();
2297
- //await this.page.locator(`tr:contains('${username}') .login-permission input`).click();
2298
- }
2299
- async addUser() {
2300
- await this.newUserButton.click();
2301
- }
2302
- async createUser(username, password) {
2303
- await this.modal.setUserName(username);
2304
- await this.modal.setFullName(username);
2305
- await this.modal.setEmail("testuser@company.com");
2306
- await this.modal.setPassword(password);
2307
- await this.modal.setConfirmPassword(password);
2308
- await this.modal.save();
2309
- }
2310
- async expectToHaveLoginPermission(username) {
2311
- return await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("row", {
2312
- name: "" + username + ""
2313
- }).getByRole("checkbox")).toBeChecked();
2314
- }
2315
- async deleteUser(username) {
2316
- await this.page.getByRole("row", {
2317
- name: "" + username + ""
2318
- }).locator("i").nth(1).click();
2319
- await this.modal.delete();
2320
- }
2321
- }
2604
+ var $hi3Ib = parcelRequire("hi3Ib");
2322
2605
 
2606
+ /** `Object#toString` result references. */ var $2184c74fd3b50571$var$mapTag = "[object Map]", $2184c74fd3b50571$var$objectTag = "[object Object]", $2184c74fd3b50571$var$promiseTag = "[object Promise]", $2184c74fd3b50571$var$setTag = "[object Set]", $2184c74fd3b50571$var$weakMapTag = "[object WeakMap]";
2607
+ var $2184c74fd3b50571$var$dataViewTag = "[object DataView]";
2608
+ /** Used to detect maps, sets, and weakmaps. */ var $2184c74fd3b50571$var$dataViewCtorString = $c6de24274df36d4e$exports($9707ed10f1d74f7d$exports), $2184c74fd3b50571$var$mapCtorString = $c6de24274df36d4e$exports($8c4ecd35968046d6$exports), $2184c74fd3b50571$var$promiseCtorString = $c6de24274df36d4e$exports($30f4d64ddd8effd1$exports), $2184c74fd3b50571$var$setCtorString = $c6de24274df36d4e$exports($869474d4b330cc35$exports), $2184c74fd3b50571$var$weakMapCtorString = $c6de24274df36d4e$exports($c4df061ad36170d9$exports);
2609
+ /**
2610
+ * Gets the `toStringTag` of `value`.
2611
+ *
2612
+ * @private
2613
+ * @param {*} value The value to query.
2614
+ * @returns {string} Returns the `toStringTag`.
2615
+ */ var $2184c74fd3b50571$var$getTag = $hi3Ib;
2616
+ // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
2617
+ if ($9707ed10f1d74f7d$exports && $2184c74fd3b50571$var$getTag(new $9707ed10f1d74f7d$exports(new ArrayBuffer(1))) != $2184c74fd3b50571$var$dataViewTag || $8c4ecd35968046d6$exports && $2184c74fd3b50571$var$getTag(new $8c4ecd35968046d6$exports) != $2184c74fd3b50571$var$mapTag || $30f4d64ddd8effd1$exports && $2184c74fd3b50571$var$getTag($30f4d64ddd8effd1$exports.resolve()) != $2184c74fd3b50571$var$promiseTag || $869474d4b330cc35$exports && $2184c74fd3b50571$var$getTag(new $869474d4b330cc35$exports) != $2184c74fd3b50571$var$setTag || $c4df061ad36170d9$exports && $2184c74fd3b50571$var$getTag(new $c4df061ad36170d9$exports) != $2184c74fd3b50571$var$weakMapTag) $2184c74fd3b50571$var$getTag = function(value) {
2618
+ var result = $hi3Ib(value), Ctor = result == $2184c74fd3b50571$var$objectTag ? value.constructor : undefined, ctorString = Ctor ? $c6de24274df36d4e$exports(Ctor) : "";
2619
+ if (ctorString) switch(ctorString){
2620
+ case $2184c74fd3b50571$var$dataViewCtorString:
2621
+ return $2184c74fd3b50571$var$dataViewTag;
2622
+ case $2184c74fd3b50571$var$mapCtorString:
2623
+ return $2184c74fd3b50571$var$mapTag;
2624
+ case $2184c74fd3b50571$var$promiseCtorString:
2625
+ return $2184c74fd3b50571$var$promiseTag;
2626
+ case $2184c74fd3b50571$var$setCtorString:
2627
+ return $2184c74fd3b50571$var$setTag;
2628
+ case $2184c74fd3b50571$var$weakMapCtorString:
2629
+ return $2184c74fd3b50571$var$weakMapTag;
2630
+ }
2631
+ return result;
2632
+ };
2633
+ $2184c74fd3b50571$exports = $2184c74fd3b50571$var$getTag;
2323
2634
 
2324
2635
 
2325
- class $7867194f18360347$export$1d7840d5cdc861d5 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2326
- constructor(page){
2327
- super(page);
2328
- this.settingsIcon = this.page.getByRole("button", {
2329
- name: "Settings"
2330
- });
2331
- this.usersAndPermissionMenu = this.page.getByTestId("undefined-menu").getByText("Users and permissions");
2332
- this.managePluginMenu = this.page.getByText("Manage plugins");
2333
- }
2334
- async openUsersAndPermissions() {
2335
- await this.settingsIcon.click();
2336
- await this.page.getByTestId("undefined-menu").getByText("Users and permissions").click();
2337
- }
2338
- async openManagePlugin() {
2339
- await this.settingsIcon.click();
2340
- await this.managePluginMenu.click();
2341
- }
2636
+ var $5cfa9b34443304aa$exports = {};
2637
+ /**
2638
+ * Converts `map` to its key-value pairs.
2639
+ *
2640
+ * @private
2641
+ * @param {Object} map The map to convert.
2642
+ * @returns {Array} Returns the key-value pairs.
2643
+ */ function $5cfa9b34443304aa$var$mapToArray(map) {
2644
+ var index = -1, result = Array(map.size);
2645
+ map.forEach(function(value, key) {
2646
+ result[++index] = [
2647
+ key,
2648
+ value
2649
+ ];
2650
+ });
2651
+ return result;
2342
2652
  }
2653
+ $5cfa9b34443304aa$exports = $5cfa9b34443304aa$var$mapToArray;
2654
+
2343
2655
 
2656
+ var $e0efec8f59f2b46b$exports = {};
2657
+ /**
2658
+ * Converts `set` to its value-value pairs.
2659
+ *
2660
+ * @private
2661
+ * @param {Object} set The set to convert.
2662
+ * @returns {Array} Returns the value-value pairs.
2663
+ */ function $e0efec8f59f2b46b$var$setToPairs(set) {
2664
+ var index = -1, result = Array(set.size);
2665
+ set.forEach(function(value) {
2666
+ result[++index] = [
2667
+ value,
2668
+ value
2669
+ ];
2670
+ });
2671
+ return result;
2672
+ }
2673
+ $e0efec8f59f2b46b$exports = $e0efec8f59f2b46b$var$setToPairs;
2344
2674
 
2345
2675
 
2346
- class $a642d735048996f9$export$922081b54f2ab994 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2347
- constructor(page){
2348
- super(page);
2349
- }
2676
+ /** `Object#toString` result references. */ var $acbd35b1cbbf33e4$var$mapTag = "[object Map]", $acbd35b1cbbf33e4$var$setTag = "[object Set]";
2677
+ /**
2678
+ * Creates a `_.toPairs` or `_.toPairsIn` function.
2679
+ *
2680
+ * @private
2681
+ * @param {Function} keysFunc The function to get the keys of a given object.
2682
+ * @returns {Function} Returns the new pairs function.
2683
+ */ function $acbd35b1cbbf33e4$var$createToPairs(keysFunc) {
2684
+ return function(object) {
2685
+ var tag = $2184c74fd3b50571$exports(object);
2686
+ if (tag == $acbd35b1cbbf33e4$var$mapTag) return $5cfa9b34443304aa$exports(object);
2687
+ if (tag == $acbd35b1cbbf33e4$var$setTag) return $e0efec8f59f2b46b$exports(object);
2688
+ return $34482bf0fdb87aa6$exports(object, keysFunc(object));
2689
+ };
2350
2690
  }
2691
+ $acbd35b1cbbf33e4$exports = $acbd35b1cbbf33e4$var$createToPairs;
2692
+
2351
2693
 
2352
2694
 
2695
+ var $bqLSx = parcelRequire("bqLSx");
2696
+ /**
2697
+ * Creates an array of own enumerable string keyed-value pairs for `object`
2698
+ * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
2699
+ * entries are returned.
2700
+ *
2701
+ * @static
2702
+ * @memberOf _
2703
+ * @since 4.0.0
2704
+ * @alias entries
2705
+ * @category Object
2706
+ * @param {Object} object The object to query.
2707
+ * @returns {Array} Returns the key-value pairs.
2708
+ * @example
2709
+ *
2710
+ * function Foo() {
2711
+ * this.a = 1;
2712
+ * this.b = 2;
2713
+ * }
2714
+ *
2715
+ * Foo.prototype.c = 3;
2716
+ *
2717
+ * _.toPairs(new Foo);
2718
+ * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
2719
+ */ var $f51969c4a7467fa0$var$toPairs = $acbd35b1cbbf33e4$exports($bqLSx);
2720
+ $f51969c4a7467fa0$exports = $f51969c4a7467fa0$var$toPairs;
2353
2721
 
2354
2722
 
2355
- class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2356
- async openReleaseCalendarPage() {
2357
- await this.page.goto("./#/calendar");
2358
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Release calendar / Home - Digital.ai Release");
2359
- //Define date format to verify different calendar views
2360
- const today = new Date();
2361
- let options = {
2362
- weekday: "long",
2363
- year: "numeric",
2364
- month: "short",
2365
- day: "numeric"
2723
+ const $8977f8672c5de0fa$export$45f0aca2596a2bb3 = function() {
2724
+ const RELEASE_TYPE = "xlrelease.Release";
2725
+ const PHASE_TYPE = "xlrelease.Phase";
2726
+ const TEAM_TYPE = "xlrelease.Team";
2727
+ const TASK_TYPE = "xlrelease.Task";
2728
+ const COMMENT_TYPE = "xlrelease.Comment";
2729
+ const CONDITION_TYPE = "xlrelease.GateCondition";
2730
+ const DEPENDENCY_TYPE = "xlrelease.Dependency";
2731
+ const LINK_TYPE = "xlrelease.Link";
2732
+ const ATTACHMENT_TYPE = "xlrelease.Attachment";
2733
+ const DASHBOARD_TYPE = "xlrelease.Dashboard";
2734
+ const _TRIGGER_TYPE = "xlrelease.ReleaseTrigger";
2735
+ const JIRA_TYPE = "jira.CreateIssue";
2736
+ const DEFAULT_TASK_OWNER = "Itchy";
2737
+ const processTasks = (task, container, index)=>{
2738
+ if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.type)) task.type = TASK_TYPE;
2739
+ task.id = task.id || `${container.id}/Task${index}`;
2740
+ if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.owner) && task.type !== JIRA_TYPE) task.owner = DEFAULT_TASK_OWNER;
2741
+ if (task.owner === null) delete task.owner;
2742
+ (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.conditions, function(condition, idx) {
2743
+ condition.type = CONDITION_TYPE;
2744
+ condition.id = `${task.id}/GateCondition${idx}`;
2745
+ });
2746
+ (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.dependencies, function(dependency, idx) {
2747
+ dependency.type = DEPENDENCY_TYPE;
2748
+ dependency.id = `${task.id}/Dependency${idx}`;
2749
+ });
2750
+ (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.links, function(link, idx) {
2751
+ link.type = LINK_TYPE;
2752
+ link.id = `${task.id}/Link${idx}`;
2753
+ });
2754
+ (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.comments, function(comment, idx) {
2755
+ comment.type = COMMENT_TYPE;
2756
+ comment.id = `${task.id}/Comment${idx}`;
2757
+ });
2758
+ (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.tasks, function(subTask, idx) {
2759
+ processTasks(subTask, task, idx);
2760
+ });
2761
+ (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.templateVariables, function(variable, idx) {
2762
+ (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, task.id, idx));
2763
+ });
2764
+ (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.attachments, function(attachment, idx) {
2765
+ attachment.type = ATTACHMENT_TYPE;
2766
+ attachment.id = `${task.id}/Attachment${idx}`;
2767
+ });
2768
+ if (task.pythonScript) {
2769
+ const pythonScript = task.pythonScript;
2770
+ pythonScript.id = `${task.id}/PythonScript`;
2771
+ pythonScript.customScriptTask = task.id;
2772
+ }
2773
+ };
2774
+ const processPhases = (phase, release, index)=>{
2775
+ phase.type = PHASE_TYPE;
2776
+ phase.id = `${release.id}/Phase${index}`;
2777
+ (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(phase.tasks, (task, idx)=>{
2778
+ processTasks(task, phase, idx);
2779
+ });
2780
+ };
2781
+ const getVariableEntity = (value, key, containerId, index, password)=>{
2782
+ const keyNoSyntax = key.replace("${", "").replace("}", "");
2783
+ return {
2784
+ id: `${containerId}/Variable${index}`,
2785
+ key: keyNoSyntax,
2786
+ requiresValue: true,
2787
+ showOnReleaseStart: true,
2788
+ type: password ? "xlrelease.PasswordStringVariable" : "xlrelease.StringVariable",
2789
+ value: value
2366
2790
  };
2367
- this.dayFormat = today.toLocaleDateString("en-US", options); // Saturday, September 17, 2016
2368
- this.yearFormat = today.getFullYear();
2369
- this.yearFormatString = this.yearFormat.toString();
2370
- options = {
2371
- month: "long",
2372
- year: "numeric"
2791
+ };
2792
+ const getValueProviderConfigurationEntity = function(containerId) {
2793
+ return {
2794
+ id: `${containerId}/valueProvider`,
2795
+ variable: containerId
2373
2796
  };
2374
- this.monthFormat = today.toLocaleDateString("en-US", options);
2375
- return this;
2376
- }
2377
- async exportCalendar() {
2378
- // eslint-disable-next-line @typescript-eslint/no-empty-function
2379
- this.page.on("download", ()=>{});
2380
- await this.page.getByRole("button", {
2381
- name: "download icon Export calendar"
2382
- }).click();
2383
- const downloadPromise = this.page.waitForEvent("download");
2384
- await this.page.getByRole("button", {
2385
- name: "Export"
2386
- }).click();
2387
- await downloadPromise;
2388
- }
2389
- async cancelCalendarExport() {
2390
- let downloadCount = 0;
2391
- // Listen to download events
2392
- this.page.on("download", (_download)=>{
2393
- downloadCount++;
2797
+ };
2798
+ const getDashboardExtension = (dashboard, releaseId)=>{
2799
+ const dashboardExtension = {
2800
+ id: `${releaseId}/summary`,
2801
+ type: DASHBOARD_TYPE,
2802
+ tiles: []
2803
+ };
2804
+ if (dashboard.tiles) (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(dashboard.tiles, function(tile, index) {
2805
+ dashboardExtension.tiles.push(getTileEntity(tile, `${releaseId}/summary`, index));
2394
2806
  });
2395
- await this.page.getByRole("button", {
2396
- name: "download icon Export calendar"
2397
- }).click();
2398
- await this.page.getByRole("button", {
2399
- name: "Cancel"
2400
- }).click();
2401
- return downloadCount;
2402
- }
2403
- async verifyDayView() {
2404
- await this.page.getByRole("combobox").click();
2405
- await this.page.getByRole("option", {
2406
- name: "Day"
2407
- }).click();
2408
- await this.page.getByRole("button", {
2409
- name: "Today"
2410
- }).click();
2411
- //Verify Page has correct day format displayed at the page bottom
2412
- await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(this.dayFormat)).toBeVisible();
2413
- }
2414
- async verifyYearView() {
2415
- await this.page.getByRole("combobox").click();
2416
- await this.page.getByRole("option", {
2417
- name: "Year"
2418
- }).click();
2419
- await this.page.getByRole("button", {
2420
- name: "Today"
2421
- }).click();
2422
- //Verify Page has correct Year format displayed at the page bottom
2423
- await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(this.yearFormatString)).toBeVisible();
2424
- }
2425
- }
2426
-
2427
-
2428
- class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
2429
- constructor(page){
2430
- this.page = page;
2431
- this.releasePage = new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(page);
2432
- this.settingsMenu = new (0, $7867194f18360347$export$1d7840d5cdc861d5)(page);
2433
- this.usersPage = new (0, $3ceab7c613cabfd6$export$107317390f5aa598)(page);
2434
- this.applicationPage = new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(page);
2435
- this.taskDetailsPage = new (0, $a642d735048996f9$export$922081b54f2ab994)(page);
2436
- this.releaseCalendarPage = new (0, $a8855257f8bb2b12$export$43682cddead1dd78)(page);
2437
- }
2438
- async openTemplate(id) {
2439
- return this.openReleaseOrTemplate(id, false);
2440
- }
2441
- async openRelease(id) {
2442
- return this.openReleaseOrTemplate(id, true);
2443
- }
2444
- async openApplicationsPage() {
2445
- return new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(this.page).goToApplicationsPage();
2446
- }
2447
- async openPersonalAccessTokenPage() {
2448
- return new (0, $be4dd73206d8e76b$export$3cac5fd37ae64b91)(this.page).openPersonalAccessTokenPage();
2449
- }
2450
- async gotoFolderPage() {
2451
- await this.page.getByText("Folders").click();
2452
- }
2453
- async gotoTaskPage() {
2454
- await this.page.getByTestId("sideNav-item-3").getByText("Tasks").click();
2455
- }
2456
- async gotoReleasePage() {
2457
- await this.page.getByText("Releases").click();
2458
- }
2459
- async gotoWorkflowCatalogPage() {
2460
- await this.page.getByText("Workflow catalog").click();
2461
- }
2462
- async gotoWorkflowsPage() {
2463
- await this.page.getByTestId("sideNav-item-6").getByText("Workflows").click();
2464
- }
2465
- async gotoGroupsPage() {
2466
- await this.page.getByText("Groups").click();
2467
- }
2468
- async gotoReleaseCalenderPage() {
2469
- await this.page.getByText("Release calendar").click();
2470
- }
2471
- async gotoDeliveriesPage() {
2472
- await this.page.getByText("Deliveries").click();
2473
- }
2474
- async gotoTriggersPage() {
2475
- await this.page.getByText("Triggers").click();
2476
- }
2477
- async gotoDigitalAnalyticsPage() {
2478
- await this.page.getByText("Digital.ai Analytics").click();
2479
- }
2480
- async gotoReportsPage() {
2481
- await this.page.getByText("Reports").click();
2482
- }
2483
- async gotoTemplatesPage() {
2484
- await this.page.getByText("Templates").click();
2485
- }
2486
- async gotoEnvironmentsPage() {
2487
- await this.page.getByText("Environments").click();
2488
- }
2489
- async gotoEnvironmentsCalenderPage() {
2490
- await this.page.getByText("Environments calendar").click();
2491
- }
2492
- async gotoGobalVariablesPage() {
2493
- await this.page.getByText("Global variables").click();
2494
- }
2495
- async gotoConnectionsPage() {
2496
- await this.page.getByText("Connections").click();
2497
- }
2498
- async openReleaseOrTemplate(id, release) {
2499
- const url = release ? "releases" : "templates";
2500
- await this.page.goto(`./#/${url}/${id}`);
2501
- await this.page.waitForSelector("#release");
2502
- return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
2807
+ return dashboardExtension;
2808
+ };
2809
+ function getTileEntity(tile, containerId, index) {
2810
+ tile.id = tile.id || `${containerId}/Tile${index}`;
2811
+ return tile;
2503
2812
  }
2504
- }
2813
+ return function(release) {
2814
+ release.type = RELEASE_TYPE;
2815
+ if (release.id.indexOf("Applications/") === -1) release.id = `Applications/${release.id}`;
2816
+ if (release.startDate) release.queryableStartDate = release.startDate;
2817
+ else if (release.scheduledStartDate) release.queryableStartDate = release.scheduledStartDate;
2818
+ if (release.endDate) release.queryableEndDate = release.endDate;
2819
+ else if (release.dueDate) release.queryableEndDate = release.dueDate;
2820
+ if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(release.owner)) release.owner = "Itchy"; // default release manager
2821
+ (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.phases, function(phase, index) {
2822
+ processPhases(phase, release, index);
2823
+ });
2824
+ (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.teams, function(team, index) {
2825
+ team.type = TEAM_TYPE;
2826
+ team.id = `${release.id}/Team${index}`;
2827
+ });
2828
+ (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.attachments, function(attachment, index) {
2829
+ attachment.type = ATTACHMENT_TYPE;
2830
+ attachment.id = `${release.id}/Attachment${index}`;
2831
+ });
2832
+ (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.variables, function(variable, index) {
2833
+ (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, release.id, index));
2834
+ if (variable.valueProvider) (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));
2835
+ });
2836
+ (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.variableValues), function(keyValue, index) {
2837
+ if (!release.variables) release.variables = [];
2838
+ release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1000 + index));
2839
+ release.variableValues = undefined;
2840
+ });
2841
+ (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.passwordVariableValues), function(keyValue, index) {
2842
+ if (!release.variables) release.variables = [];
2843
+ release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1500 + index, true));
2844
+ release.passwordVariableValues = undefined;
2845
+ });
2846
+ if (release.summary) {
2847
+ release.extensions = [
2848
+ getDashboardExtension(release.summary, release.id)
2849
+ ];
2850
+ release.summary = undefined;
2851
+ }
2852
+ };
2853
+ }();
2505
2854
 
2506
2855
 
2507
2856
 
2857
+ const $6998c6a53a9eb4fa$var$JIRA_ISSUE_API_URL = "https://digitalai.atlassian.net/rest/api/2/issue";
2508
2858
  const $6998c6a53a9eb4fa$var$adminHeaders = {
2509
2859
  Authorization: "Basic YWRtaW46YWRtaW4=",
2510
2860
  Cookie: "XSRF-TOKEN=1;",
@@ -2537,7 +2887,7 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2537
2887
  this.request = request;
2538
2888
  this.page = page;
2539
2889
  }
2540
- async release(release) {
2890
+ release(release) {
2541
2891
  this.initDefaults(release);
2542
2892
  this.releaseIds.push(release.id);
2543
2893
  return this.deleteRelease(release.id).then(()=>this.deleteArchivedRelease(release.id)).then(()=>this.doPost("fixtures/release", release));
@@ -2565,6 +2915,12 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2565
2915
  const releaseId = id.includes("Applications/") ? id : `Applications/${id}`;
2566
2916
  return this.doDelete(`fixtures/${releaseId}`);
2567
2917
  }
2918
+ deleteUser(username) {
2919
+ return this.doDelete(`fixtures/user/${username}`);
2920
+ }
2921
+ deleteUserProfile(userProfile) {
2922
+ return this.doDelete(`fixtures/userProfile/${userProfile}`);
2923
+ }
2568
2924
  deleteTrigger(id) {
2569
2925
  return this.doDelete(`fixtures/trigger/${id}`);
2570
2926
  }
@@ -2573,19 +2929,83 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2573
2929
  id
2574
2930
  ]);
2575
2931
  }
2576
- cleanAll() {
2577
- const promises = [];
2578
- for (const releaseId of this.releaseIds.reverse())promises.push(this.deleteRelease(releaseId));
2579
- for (const triggerId of this.triggerIds)promises.push(this.deleteTrigger(triggerId));
2580
- for (const confId of this.configurationIds)promises.push(this.deleteConfiguration(confId));
2581
- for (const usernames of this.usernames)promises.push(this.deleteUser(usernames));
2582
- for (const userProfiles of this.userProfiles)promises.push(this.deleteUserProfile(userProfiles));
2932
+ activityLogs(releaseId, logs) {
2933
+ return this.doPost(`fixtures/activityLogs/${releaseId}`, logs);
2934
+ }
2935
+ async cleanAll() {
2936
+ for (const username of this.usernames)await this.deleteUser(username);
2937
+ for (const userProfile of this.userProfiles)await this.deleteUserProfile(userProfile);
2938
+ for (const triggerId of this.triggerIds)await this.deleteTrigger(triggerId);
2939
+ for (const releaseId of this.releaseIds.reverse())await this.deleteRelease(releaseId);
2940
+ for (const confId of this.configurationIds)await this.deleteConfiguration(confId);
2583
2941
  this.releaseIds = [];
2584
2942
  this.triggerIds = [];
2585
2943
  this.configurationIds = [];
2586
2944
  this.usernames = [];
2587
2945
  this.userProfiles = [];
2588
- return Promise.all(promises);
2946
+ }
2947
+ async addJiraTask() {
2948
+ const data = {
2949
+ fields: {
2950
+ project: {
2951
+ key: "RIT"
2952
+ },
2953
+ summary: "Test Task",
2954
+ description: "Test task description",
2955
+ issuetype: {
2956
+ name: "Task"
2957
+ }
2958
+ }
2959
+ };
2960
+ const headers = {
2961
+ Authorization: `Basic ${btoa("xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7")}`,
2962
+ Origin: "https://digitalai.atlassian.net/"
2963
+ };
2964
+ const response = await this.request.post($6998c6a53a9eb4fa$var$JIRA_ISSUE_API_URL, {
2965
+ data: data,
2966
+ headers: headers
2967
+ });
2968
+ const json = await response.json();
2969
+ return json.key;
2970
+ }
2971
+ async addUser(username, password) {
2972
+ this.usernames.push(username);
2973
+ await this.doPost("fixtures/user", {
2974
+ username: username,
2975
+ password: password
2976
+ });
2977
+ }
2978
+ async addUserProfile(username, profile) {
2979
+ if (!profile) profile = {};
2980
+ profile.id = username;
2981
+ profile.type = "xlrelease.UserProfile";
2982
+ profile.canonicalId = username.toLowerCase();
2983
+ this.userProfiles.push(profile.canonicalId);
2984
+ await this.doPost("fixtures/userProfile", profile);
2985
+ }
2986
+ async expectJiraTaskStatus(taskId, expectedStatus) {
2987
+ const headers = {
2988
+ Authorization: `Basic ${btoa("xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7")}`,
2989
+ Origin: "https://digitalai.atlassian.net/"
2990
+ };
2991
+ const response = await this.request.get(`${$6998c6a53a9eb4fa$var$JIRA_ISSUE_API_URL}/${taskId}`, {
2992
+ headers: headers
2993
+ });
2994
+ const json = await response.json();
2995
+ const status = json.fields.status.name;
2996
+ (0, $kKeXs$playwrighttest.expect)(status).toBe(expectedStatus);
2997
+ }
2998
+ async expectJiraTaskSummary(taskId, expectedSummary) {
2999
+ const headers = {
3000
+ Authorization: `Basic ${btoa("xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7")}`,
3001
+ Origin: "https://digitalai.atlassian.net/"
3002
+ };
3003
+ const response = await this.request.get(`${$6998c6a53a9eb4fa$var$JIRA_ISSUE_API_URL}/${taskId}`, {
3004
+ headers: headers
3005
+ });
3006
+ const json = await response.json();
3007
+ const summary = json.fields.summary;
3008
+ (0, $kKeXs$playwrighttest.expect)(summary).toBe(expectedSummary);
2589
3009
  }
2590
3010
  async waitForReleaseStarted(releaseTitle) {
2591
3011
  await (0, $kKeXs$playwrighttest.expect)(async ()=>{
@@ -2621,6 +3041,12 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2621
3041
  getEnvVariable(name) {
2622
3042
  return $kKeXs$process.env[name];
2623
3043
  }
3044
+ async archiveRelease(releaseId) {
3045
+ return this.doGet(`fixtures/archive/${releaseId}`);
3046
+ }
3047
+ async preArchiveRelease(releaseId) {
3048
+ return this.doGet(`fixtures/preArchive/${releaseId}`);
3049
+ }
2624
3050
  async setFeatures(features) {
2625
3051
  return this.doPut("settings/features", features);
2626
3052
  }
@@ -2629,32 +3055,10 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2629
3055
  {
2630
3056
  id: "Configuration/features/xlrelease.TaskDrawer",
2631
3057
  type: "xlrelease.TaskDrawer",
2632
- category: "Stable",
2633
3058
  enabled: enabled
2634
3059
  }
2635
3060
  ]);
2636
3061
  }
2637
- async addUser(username, password) {
2638
- this.usernames.push(username);
2639
- return await this.doPost("fixtures/user", {
2640
- username: username,
2641
- password: password
2642
- });
2643
- }
2644
- async addUserProfile(username, profile) {
2645
- if (!profile) profile = {};
2646
- profile.id = username;
2647
- profile.type = "xlrelease.UserProfile";
2648
- profile.canonicalId = username.toLowerCase();
2649
- this.userProfiles.push(profile.canonicalId);
2650
- return await this.doPost("fixtures/userProfile", profile);
2651
- }
2652
- async deleteUser(username) {
2653
- return await this.request.delete(`fixtures/user/${username}`);
2654
- }
2655
- async deleteUserProfile(username) {
2656
- return await this.request.delete(`fixtures/userProfile/${username}`);
2657
- }
2658
3062
  doPost(url, body) {
2659
3063
  return this.request.post(url, {
2660
3064
  data: body,