@digital-ai/devops-page-object-release 0.0.6 → 0.0.8

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,1227 +947,1483 @@ 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;
950
971
 
951
972
 
973
+ var $952a2b8d8056b381$exports = {};
952
974
 
975
+ $952a2b8d8056b381$exports = (parcelRequire("ae8Uz"));
953
976
 
954
- class $f8721861c660dd88$export$2b65d1d97338f32b {
955
- constructor(page){
956
- this.page = page;
957
- }
958
- }
959
977
 
960
978
 
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
- else await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle).count()).toBe(amount);
965
- }
966
- async openReleaseByName(releaseTitle) {
967
- await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
968
- hasText: releaseTitle
969
- }).click();
970
- return new (0, $fcbf42f405a34f2e$export$f43492e8ac3c566)(this.page);
979
+ var $ae8Uz = parcelRequire("ae8Uz");
980
+ var $732eba8dca8b5420$exports = {};
981
+ var $b1535b4ce0d1bd5f$exports = {};
982
+
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]);
971
1005
  }
1006
+ return func.apply(thisArg, args);
972
1007
  }
1008
+ $f984f14b3d4f0683$exports = $f984f14b3d4f0683$var$apply;
973
1009
 
974
1010
 
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
+ };
1031
+ }
1032
+ $1b1aa0f3fc7256c9$exports = $1b1aa0f3fc7256c9$var$overRest;
975
1033
 
976
- class $133601cfe0486710$export$fb932093f944abe4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
977
- async openRelatedReleasesOf(title) {
978
- await this.openContextMenu(title);
979
- await this.page.locator(".popover-content xlr-context-menu a", {
980
- hasText: "View releases"
981
- }).click();
982
- return new (0, $87643f2d97b0644e$export$a678525e79c4ccc4)(this.page);
983
- }
984
- async openContextMenu(title) {
985
- await (0, $kKeXs$playwrighttest.expect)(async ()=>{
986
- await this.page.locator(".trigger-row-content", {
987
- hasText: title
988
- }).locator(".context-menu-button").click();
989
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".popover-content")).toBeVisible();
990
- }).toPass();
991
- }
1034
+
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
+ };
992
1060
  }
1061
+ $3dc9802adab1dd60$exports = $3dc9802adab1dd60$var$constant;
993
1062
 
994
1063
 
1064
+ var $97bac00047c338ed$exports = {};
1065
+ var $b7745e89d7f5915f$exports = {};
1066
+ var $927414f7f9d8afbb$exports = {};
1067
+
1068
+ var $7T6pQ = parcelRequire("7T6pQ");
1069
+ var $1fb1799a04ee25ea$exports = {};
1070
+ var $5ee1230bf1668e2a$exports = {};
995
1071
 
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;
996
1075
 
997
1076
 
998
- class $4cb1d878399c7551$export$90ba71b7d7997728 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
999
- constructor(page){
1000
- super(page);
1001
- this.taskModalLocator = this.page.locator(".modal-content.task-details");
1002
- }
1003
- async close() {
1004
- await this.taskModalLocator.locator(".modal-header button.close").click();
1005
- }
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;
1006
1089
  }
1090
+ $1fb1799a04ee25ea$exports = $1fb1799a04ee25ea$var$isMasked;
1007
1091
 
1008
1092
 
1009
- class $487fa7328f6a6cf2$export$b66cc3708c7bd4a4 extends (0, $4cb1d878399c7551$export$90ba71b7d7997728) {
1010
- async expectFieldNotEmpty(field) {
1011
- await (0, $kKeXs$playwrighttest.expect)(this.taskModalLocator.locator(`#${field} .display`).textContent).toBeDefined();
1012
- }
1013
- async setSelectField(propertyName, value) {
1014
- await this.focusOnField(propertyName);
1015
- await this.taskModalLocator.locator(`select[name="${propertyName}"]`).selectOption(value);
1016
- }
1017
- async setTextField(propertyName, value) {
1018
- await this.focusOnField(propertyName);
1019
- await this.taskModalLocator.locator(`input[name="${propertyName}"]`).fill(value);
1020
- }
1021
- async setAutocompleteField(propertyName, value) {
1022
- await this.focusOnAutocompleteField(propertyName);
1023
- await this.taskModalLocator.locator(`#${propertyName} ul li`).getByText(value).click();
1024
- }
1025
- async expectOutputValueToBe(propertyName, value) {
1026
- await (0, $kKeXs$playwrighttest.expect)(this.taskModalLocator.locator(`#${propertyName} .field-readonly span`)).toContainText(value);
1027
- }
1028
- // TODO move this to a new inline-editor
1029
- async focusOnField(propertyName) {
1030
- await (0, $kKeXs$playwrighttest.expect)(async ()=>{
1031
- await this.taskModalLocator.locator(`#${propertyName} .display`).click({
1032
- force: true
1033
- });
1034
- await (0, $kKeXs$playwrighttest.expect)(this.taskModalLocator.locator(`#${propertyName} label.edit`)).toBeVisible();
1035
- }).toPass();
1036
- }
1037
- async focusOnAutocompleteField(propertyName) {
1038
- await (0, $kKeXs$playwrighttest.expect)(async ()=>{
1039
- await this.taskModalLocator.locator(`#${propertyName} input`).click({
1040
- force: true
1041
- });
1042
- await (0, $kKeXs$playwrighttest.expect)(this.taskModalLocator.locator(`#${propertyName} ul`)).toBeVisible();
1043
- }).toPass();
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) {}
1044
1112
  }
1113
+ return "";
1045
1114
  }
1115
+ $c6de24274df36d4e$exports = $c6de24274df36d4e$var$toSource;
1046
1116
 
1047
1117
 
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;
1048
1140
 
1049
1141
 
1050
- async function $ef0df8ad8a777ce6$export$a0f926f04148e5d2(locators) {
1051
- const res = await Promise.all([
1052
- ...locators.map(async (locator, index)=>{
1053
- let timedOut = false;
1054
- await locator.waitFor({
1055
- state: "visible",
1056
- timeout: 2000
1057
- }).catch(()=>timedOut = true);
1058
- return [
1059
- timedOut ? -1 : index,
1060
- locator
1061
- ];
1062
- })
1063
- ]);
1064
- const resolvedLocator = res.find((r)=>r[0] !== -1);
1065
- if (!resolvedLocator) {
1066
- console.warn("waitForOneOf", res);
1067
- throw new Error("no locator visible before timeout");
1068
- }
1069
- return resolvedLocator;
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];
1070
1152
  }
1153
+ $18378a7c2aff899b$exports = $18378a7c2aff899b$var$getValue;
1071
1154
 
1072
1155
 
1073
- class $e53d02b209248a0b$export$a87f0ae8695e74be extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1074
- async openVariable(variableKey) {
1075
- await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();
1076
- return new $e53d02b209248a0b$var$ReleaseVariableModal(this.page);
1077
- }
1078
- }
1079
- class $e53d02b209248a0b$var$ReleaseVariableModal extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1080
- async expectValue(locators, expectFn) {
1081
- const [index, locator] = await (0, $ef0df8ad8a777ce6$export$a0f926f04148e5d2)(locators);
1082
- await expectFn[index](locator);
1083
- }
1084
- async expectValueToBe(value) {
1085
- await this.expectValue([
1086
- this.page.locator("#modal .variable-value input"),
1087
- this.page.locator("#modal .variable-value .field-readonly"),
1088
- this.page.locator("#modal .variable-value .xl-map-string-string")
1089
- ], [
1090
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveValue(value),
1091
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value),
1092
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value)
1093
- ]);
1094
- }
1095
- async expectValueToContain(value) {
1096
- await this.expectValue([
1097
- this.page.locator("#modal .variable-value input"),
1098
- this.page.locator("#modal .variable-value .field-readonly"),
1099
- this.page.locator("#modal .variable-value .xl-map-string-string")
1100
- ], [
1101
- (l)=>(0, $kKeXs$playwrighttest.expect)(l.inputValue()).toContain(value),
1102
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value),
1103
- (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value)
1104
- ]);
1105
- }
1106
- async close() {
1107
- await this.page.locator("#modal .modal-header button.close").click();
1108
- }
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;
1109
1166
  }
1167
+ $b7745e89d7f5915f$exports = $b7745e89d7f5915f$var$getNative;
1110
1168
 
1111
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;
1112
1178
 
1113
1179
 
1114
- class $d91a6ef09b618c8d$export$e946776eae644790 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1115
- constructor(page){
1116
- super(page);
1117
- this.taskDrawerLocator = this.page.locator("task-drawer .dot-drawer");
1118
- }
1119
- async openConfigRail() {
1120
- await this.openRail("Config");
1121
- return new $d91a6ef09b618c8d$var$ConfigRail(this.page);
1122
- }
1123
- async openRail(rail) {
1124
- await this.taskDrawerLocator.locator(".task-navigation-rail").getByText(rail).click();
1125
- }
1126
- async close() {
1127
- await this.taskDrawerLocator.locator(".task-drawer-header").getByTestId("close-btn").click();
1128
- }
1129
- }
1130
- class $d91a6ef09b618c8d$var$ConfigRail extends $d91a6ef09b618c8d$export$e946776eae644790 {
1131
- constructor(page){
1132
- super(page);
1133
- this.railLocator = this.taskDrawerLocator.locator(".task-config");
1134
- }
1135
- async openInputProperties() {
1136
- await this.railLocator.locator(".task-config-header").getByText("Input properties").click();
1137
- }
1138
- async openOutputProperties() {
1139
- await this.railLocator.locator(".task-config-header").getByText("Output properties").click();
1140
- }
1141
- async getValueFromCi(propertyName) {
1142
- return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1143
- }
1144
- async getAllOptionsFromCi(propertyName) {
1145
- await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1146
- return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();
1147
- }
1148
- async setValueFromCi(propertyName, value) {
1149
- await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1150
- await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1151
- await this.railLocator.locator(`.dot-popper ul li`, {
1152
- hasText: value
1153
- }).click();
1154
- }
1155
- async getValueFromString(propertyName) {
1156
- await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1157
- return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1158
- }
1159
- async setValueFromString(propertyName, value) {
1160
- await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1161
- await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1162
- }
1163
- async setValueFromLargeString(propertyName, value) {
1164
- await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1165
- await this.railLocator.locator(`textarea[id="${propertyName}"]`).fill(value);
1166
- }
1167
- async setValueFromPassword(propertyName, value) {
1168
- await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1169
- }
1170
- async setAndCreateVariable(propertyName, variableName) {
1171
- await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1172
- await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1173
- await this.railLocator.locator(`input[id="${propertyName}"]`).fill(variableName);
1174
- await this.railLocator.locator(`.dot-popper button`, {
1175
- hasText: variableName
1176
- }).click();
1177
- }
1178
- async setVariable(propertyName, variableName) {
1179
- return this.setValueFromCi(propertyName, variableName);
1180
- }
1181
- async expectValueFromString(propertyName, propertyValue) {
1182
- return await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`)).toHaveText(propertyValue);
1183
- }
1184
- }
1185
1180
 
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;
1186
1198
 
1187
- class $fcbf42f405a34f2e$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1188
- async openTriggers() {
1189
- await this.openSubPage("Triggers");
1190
- return new (0, $133601cfe0486710$export$fb932093f944abe4)(this.page);
1191
- }
1192
- async abort(comment = "Abort for testing") {
1193
- await this.page.locator("action-toolbar button", {
1194
- hasText: "Abort"
1195
- }).click();
1196
- await this.page.locator(".modal textarea").fill(comment);
1197
- await this.page.locator(".modal .continue").click();
1198
- }
1199
- getPhase(phaseName) {
1200
- return new $fcbf42f405a34f2e$var$Phase(this.page, phaseName);
1201
- }
1202
- async start() {
1203
- await this.page.locator("action-toolbar button", {
1204
- hasText: "Start"
1205
- }).click();
1206
- await this.page.locator(".modal button.primary").click();
1207
- }
1208
- async waitForTaskCompleted(taskTitle) {
1209
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.completed").getByText(taskTitle, {
1210
- exact: true
1211
- })).toBeVisible();
1212
- }
1213
- async waitForTaskFailed(taskTitle) {
1214
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.failed").getByText(taskTitle, {
1215
- exact: true
1216
- })).toBeVisible();
1217
- }
1218
- async waitForStatusLine(statusLine) {
1219
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task .status-line").getByText(statusLine, {
1220
- exact: true
1221
- })).toBeVisible();
1222
- }
1223
- /**
1224
- * @deprecated Don't use this, use new TaskDrawer
1225
- */ async openCustomScriptTaskModal(taskName) {
1226
- await this.page.locator(".task-header").getByText(taskName).click();
1227
- return new (0, $487fa7328f6a6cf2$export$b66cc3708c7bd4a4)(this.page);
1228
- }
1229
- async openTaskDrawer(taskName) {
1230
- await this.page.locator(".task-header").getByText(taskName).click();
1231
- return new (0, $d91a6ef09b618c8d$export$e946776eae644790)(this.page);
1232
- }
1233
- async openVariables() {
1234
- await this.openReleaseMenu("Variables");
1235
- return new (0, $e53d02b209248a0b$export$a87f0ae8695e74be)(this.page);
1236
- }
1237
- async openReleaseMenu(menuItem) {
1238
- await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
1239
- exact: true
1240
- }).click();
1241
- }
1242
- async openSubPage(subpage) {
1243
- await this.page.locator("ul.side-nav li", {
1244
- hasText: subpage
1245
- }).click();
1246
- }
1247
- }
1248
- class $fcbf42f405a34f2e$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1249
- constructor(page, phaseName){
1250
- super(page);
1251
- this.phaseLocator = page.locator(".phase", {
1252
- hasText: phaseName
1253
- });
1254
- }
1255
- async addTask(taskName, taskGroup, taskType) {
1256
- await this.phaseLocator.getByText("Add task").click();
1257
- await this.phaseLocator.locator(".quick-title").fill(taskName);
1258
- await this.phaseLocator.locator(".xlr-ctx-menu-toggle").click();
1259
- await this.page.locator(`.xlr-ctx-menu-item`).getByTitle(taskGroup, {
1260
- exact: true
1261
- }).scrollIntoViewIfNeeded();
1262
- await this.page.locator(`.xlr-ctx-menu-item`).getByTitle(taskGroup, {
1263
- exact: true
1264
- }).hover();
1265
- await this.page.locator(`.xlr-ctx-menu.active`).getByTitle(taskType, {
1266
- exact: true
1267
- }).click();
1268
- await this.phaseLocator.locator(".quick-controls-container a").getByText("Add", {
1269
- exact: true
1270
- }).click();
1271
- }
1199
+
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
+ };
1272
1221
  }
1222
+ $f6a97849336ceea8$exports = $f6a97849336ceea8$var$shortOut;
1273
1223
 
1274
1224
 
1275
- class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
1276
- constructor(page){
1277
- this.page = page;
1278
- }
1279
- async openTemplate(id) {
1280
- return this.openReleaseOrTemplate(id, false);
1281
- }
1282
- async openRelease(id) {
1283
- return this.openReleaseOrTemplate(id, true);
1284
- }
1285
- async openReleaseOrTemplate(id, release) {
1286
- const url = release ? "releases" : "templates";
1287
- await this.page.goto(`./#/${url}/${id}`);
1288
- await this.page.waitForSelector("#release");
1289
- return new (0, $fcbf42f405a34f2e$export$f43492e8ac3c566)(this.page);
1290
- }
1291
- }
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;
1292
1234
 
1293
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;
1294
1247
 
1295
1248
 
1296
- class $9a16c8a1280a99a0$export$f14c0e3f98d164c0 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1297
- async login(userName, password) {
1298
- await this.page.goto("./");
1299
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Digital.ai Release");
1300
- await this.page.locator("#inputLogin").fill(userName);
1301
- await this.page.locator("#inputPassword").fill(password);
1302
- await this.page.locator("button[type='submit']").click();
1303
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#releases-content")).toBeVisible();
1304
- }
1305
- async logout() {
1306
- await this.page.locator("button.dot-avatar").click();
1307
- await this.page.getByText("Log out").click();
1308
- }
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;
1309
1283
  }
1284
+ $ceebddaa7160689c$exports = $ceebddaa7160689c$var$eq;
1310
1285
 
1311
1286
 
1287
+ var $e084f044678f4365$exports = {};
1312
1288
 
1313
1289
 
1314
- class $dc91ece6da6cadfa$export$1533b625ec0c75e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1315
- async goToApplicationsPage() {
1316
- await this.page.goto("./#/applications");
1317
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Applications - Digital.ai Release");
1318
- return this;
1319
- }
1320
- async addNewApplication(applicationName) {
1321
- await this.page.locator(`//button[normalize-space()='New application']`).click();
1322
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1323
- await this.page.locator(`//button[normalize-space()='Save']`).click();
1324
- return this;
1325
- }
1326
- async verifyApplicationisCreated(applicationName) {
1327
- await this.page.waitForSelector(`div[title='${applicationName}'] strong`);
1328
- return this;
1329
- }
1330
- async createApplicationAndLinkEnvironment(environmentName, applicationName) {
1331
- await this.page.locator(`//button[normalize-space()='New application']`).click();
1332
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1333
- await this.page.locator("input[placeholder='Filter environment name...']").type(environmentName);
1334
- await this.page.locator(`div[title='${environmentName}']`).click();
1335
- await this.page.locator(`//button[normalize-space()='Save']`).click();
1336
- await this.page.locator("i.xl-icon.close-icon").click();
1337
- return this;
1338
- }
1290
+ var $fegcS = parcelRequire("fegcS");
1291
+
1292
+ var $gf9YK = parcelRequire("gf9YK");
1293
+
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;
1339
1309
  }
1310
+ $e084f044678f4365$exports = $e084f044678f4365$var$isIterateeCall;
1340
1311
 
1341
1312
 
1313
+ var $0e6e2e34ec44a72a$exports = {};
1342
1314
 
1315
+ var $gYWmw = parcelRequire("gYWmw");
1316
+ var $b4b8b2a977b4cc10$exports = {};
1343
1317
 
1344
- class $be4dd73206d8e76b$export$3cac5fd37ae64b91 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1345
- async openPersonalAccessTokenPage() {
1346
- // await this.page.locator("button.dot-avatar").click()
1347
- // await this.page.locator("//div[normalize-space()='Access tokens']").click()
1348
- await this.page.goto("./#/personal-access-token");
1349
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Access tokens / Personal settings - Digital.ai Release");
1350
- return this;
1351
- }
1352
- async addNewToken(tokenName) {
1353
- //await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release')
1354
- await this.page.locator("#tokenText").fill(tokenName);
1355
- await this.page.locator("button[type='submit']").click();
1356
- return this;
1357
- }
1318
+ var $bfk90 = parcelRequire("bfk90");
1319
+
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;
1358
1334
  }
1335
+ $59b6e790ee7519e4$exports = $59b6e790ee7519e4$var$nativeKeysIn;
1359
1336
 
1360
1337
 
1361
- var $3e8b520187e41aa6$exports = {};
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;
1362
1340
  /**
1363
- * Checks if `value` is `undefined`.
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;
1351
+ }
1352
+ $b4b8b2a977b4cc10$exports = $b4b8b2a977b4cc10$var$baseKeysIn;
1353
+
1354
+
1355
+
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.
1364
1361
  *
1365
1362
  * @static
1366
- * @since 0.1.0
1367
1363
  * @memberOf _
1368
- * @category Lang
1369
- * @param {*} value The value to check.
1370
- * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
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.
1371
1368
  * @example
1372
1369
  *
1373
- * _.isUndefined(void 0);
1374
- * // => true
1370
+ * function Foo() {
1371
+ * this.a = 1;
1372
+ * this.b = 2;
1373
+ * }
1375
1374
  *
1376
- * _.isUndefined(null);
1377
- * // => false
1378
- */ function $3e8b520187e41aa6$var$isUndefined(value) {
1379
- return value === undefined;
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);
1380
1381
  }
1381
- $3e8b520187e41aa6$exports = $3e8b520187e41aa6$var$isUndefined;
1382
-
1383
-
1384
- var $952a2b8d8056b381$exports = {};
1385
-
1386
- $952a2b8d8056b381$exports = (parcelRequire("ae8Uz"));
1387
-
1382
+ $0e6e2e34ec44a72a$exports = $0e6e2e34ec44a72a$var$keysIn;
1388
1383
 
1389
1384
 
1390
- var $ae8Uz = parcelRequire("ae8Uz");
1391
- var $732eba8dca8b5420$exports = {};
1392
- var $b1535b4ce0d1bd5f$exports = {};
1393
-
1394
- var $9x2D6 = parcelRequire("9x2D6");
1395
- var $1b1aa0f3fc7256c9$exports = {};
1396
- var $f984f14b3d4f0683$exports = {};
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;
1397
1387
  /**
1398
- * A faster alternative to `Function#apply`, this function invokes `func`
1399
- * with the `this` binding of `thisArg` and the arguments of `args`.
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.
1400
1392
  *
1401
- * @private
1402
- * @param {Function} func The function to invoke.
1403
- * @param {*} thisArg The `this` binding of `func`.
1404
- * @param {Array} args The arguments to invoke `func` with.
1405
- * @returns {*} Returns the result of `func`.
1406
- */ function $f984f14b3d4f0683$var$apply(func, thisArg, args) {
1407
- switch(args.length){
1408
- case 0:
1409
- return func.call(thisArg);
1410
- case 1:
1411
- return func.call(thisArg, args[0]);
1412
- case 2:
1413
- return func.call(thisArg, args[0], args[1]);
1414
- case 3:
1415
- return func.call(thisArg, args[0], args[1], args[2]);
1393
+ * **Note:** This method mutates `object`.
1394
+ *
1395
+ * @static
1396
+ * @since 0.1.0
1397
+ * @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
1403
+ * @example
1404
+ *
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
+ }
1416
1423
  }
1417
- return func.apply(thisArg, args);
1418
- }
1419
- $f984f14b3d4f0683$exports = $f984f14b3d4f0683$var$apply;
1424
+ return object;
1425
+ });
1426
+ $732eba8dca8b5420$exports = $732eba8dca8b5420$var$defaults;
1420
1427
 
1421
1428
 
1422
- /* Built-in method references for those with the same name as other `lodash` methods. */ var $1b1aa0f3fc7256c9$var$nativeMax = Math.max;
1429
+ var $f51969c4a7467fa0$exports = {};
1430
+ var $acbd35b1cbbf33e4$exports = {};
1431
+ var $34482bf0fdb87aa6$exports = {};
1432
+ var $c258ac491a64b22b$exports = {};
1423
1433
  /**
1424
- * A specialized version of `baseRest` which transforms the rest array.
1434
+ * A specialized version of `_.map` for arrays without support for iteratee
1435
+ * shorthands.
1425
1436
  *
1426
1437
  * @private
1427
- * @param {Function} func The function to apply a rest parameter to.
1428
- * @param {number} [start=func.length-1] The start position of the rest parameter.
1429
- * @param {Function} transform The rest array transform.
1430
- * @returns {Function} Returns the new function.
1431
- */ function $1b1aa0f3fc7256c9$var$overRest(func, start, transform) {
1432
- start = $1b1aa0f3fc7256c9$var$nativeMax(start === undefined ? func.length - 1 : start, 0);
1433
- return function() {
1434
- var args = arguments, index = -1, length = $1b1aa0f3fc7256c9$var$nativeMax(args.length - start, 0), array = Array(length);
1435
- while(++index < length)array[index] = args[start + index];
1436
- index = -1;
1437
- var otherArgs = Array(start + 1);
1438
- while(++index < start)otherArgs[index] = args[index];
1439
- otherArgs[start] = transform(array);
1440
- return $f984f14b3d4f0683$exports(func, this, otherArgs);
1441
- };
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;
1442
1445
  }
1443
- $1b1aa0f3fc7256c9$exports = $1b1aa0f3fc7256c9$var$overRest;
1446
+ $c258ac491a64b22b$exports = $c258ac491a64b22b$var$arrayMap;
1444
1447
 
1445
1448
 
1446
- var $0e9d1d7fde57dac1$exports = {};
1447
- var $ef9aec5e693cb6ed$exports = {};
1448
- var $3dc9802adab1dd60$exports = {};
1449
1449
  /**
1450
- * Creates a function that returns `value`.
1451
- *
1452
- * @static
1453
- * @memberOf _
1454
- * @since 2.4.0
1455
- * @category Util
1456
- * @param {*} value The value to return from the new function.
1457
- * @returns {Function} Returns the new constant function.
1458
- * @example
1459
- *
1460
- * var objects = _.times(2, _.constant({ 'a': 1 }));
1461
- *
1462
- * console.log(objects);
1463
- * // => [{ 'a': 1 }, { 'a': 1 }]
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`.
1464
1452
  *
1465
- * console.log(objects[0] === objects[1]);
1466
- * // => true
1467
- */ function $3dc9802adab1dd60$var$constant(value) {
1468
- return function() {
1469
- return value;
1470
- };
1453
+ * @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
+ });
1471
1464
  }
1472
- $3dc9802adab1dd60$exports = $3dc9802adab1dd60$var$constant;
1465
+ $34482bf0fdb87aa6$exports = $34482bf0fdb87aa6$var$baseToPairs;
1473
1466
 
1474
1467
 
1475
- var $97bac00047c338ed$exports = {};
1476
- var $b7745e89d7f5915f$exports = {};
1477
- var $927414f7f9d8afbb$exports = {};
1468
+ var $2184c74fd3b50571$exports = {};
1469
+ var $9707ed10f1d74f7d$exports = {};
1478
1470
 
1479
- var $7T6pQ = parcelRequire("7T6pQ");
1480
- var $1fb1799a04ee25ea$exports = {};
1481
- var $5ee1230bf1668e2a$exports = {};
1482
1471
 
1483
1472
  var $5iYlB = parcelRequire("5iYlB");
1484
- /** Used to detect overreaching core-js shims. */ var $5ee1230bf1668e2a$var$coreJsData = $5iYlB["__core-js_shared__"];
1485
- $5ee1230bf1668e2a$exports = $5ee1230bf1668e2a$var$coreJsData;
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;
1486
1475
 
1487
1476
 
1488
- /** Used to detect methods masquerading as native. */ var $1fb1799a04ee25ea$var$maskSrcKey = function() {
1489
- var uid = /[^.]+$/.exec($5ee1230bf1668e2a$exports && $5ee1230bf1668e2a$exports.keys && $5ee1230bf1668e2a$exports.keys.IE_PROTO || "");
1490
- return uid ? "Symbol(src)_1." + uid : "";
1491
- }();
1492
- /**
1493
- * Checks if `func` has its source masked.
1494
- *
1495
- * @private
1496
- * @param {Function} func The function to check.
1497
- * @returns {boolean} Returns `true` if `func` is masked, else `false`.
1498
- */ function $1fb1799a04ee25ea$var$isMasked(func) {
1499
- return !!$1fb1799a04ee25ea$var$maskSrcKey && $1fb1799a04ee25ea$var$maskSrcKey in func;
1500
- }
1501
- $1fb1799a04ee25ea$exports = $1fb1799a04ee25ea$var$isMasked;
1477
+ var $8c4ecd35968046d6$exports = {};
1502
1478
 
1503
1479
 
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;
1504
1483
 
1505
- var $bfk90 = parcelRequire("bfk90");
1506
- var $c6de24274df36d4e$exports = {};
1507
- /** Used for built-in method references. */ var $c6de24274df36d4e$var$funcProto = Function.prototype;
1508
- /** Used to resolve the decompiled source of functions. */ var $c6de24274df36d4e$var$funcToString = $c6de24274df36d4e$var$funcProto.toString;
1509
- /**
1510
- * Converts `func` to its source code.
1511
- *
1512
- * @private
1513
- * @param {Function} func The function to convert.
1514
- * @returns {string} Returns the source code.
1515
- */ function $c6de24274df36d4e$var$toSource(func) {
1516
- if (func != null) {
1517
- try {
1518
- return $c6de24274df36d4e$var$funcToString.call(func);
1519
- } catch (e) {}
1520
- try {
1521
- return func + "";
1522
- } catch (e) {}
1523
- }
1524
- return "";
1525
- }
1526
- $c6de24274df36d4e$exports = $c6de24274df36d4e$var$toSource;
1527
1484
 
1485
+ var $30f4d64ddd8effd1$exports = {};
1528
1486
 
1529
- /**
1530
- * Used to match `RegExp`
1531
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
1532
- */ var $927414f7f9d8afbb$var$reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
1533
- /** Used to detect host constructors (Safari). */ var $927414f7f9d8afbb$var$reIsHostCtor = /^\[object .+?Constructor\]$/;
1534
- /** Used for built-in method references. */ var $927414f7f9d8afbb$var$funcProto = Function.prototype, $927414f7f9d8afbb$var$objectProto = Object.prototype;
1535
- /** Used to resolve the decompiled source of functions. */ var $927414f7f9d8afbb$var$funcToString = $927414f7f9d8afbb$var$funcProto.toString;
1536
- /** Used to check objects for own properties. */ var $927414f7f9d8afbb$var$hasOwnProperty = $927414f7f9d8afbb$var$objectProto.hasOwnProperty;
1537
- /** 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.*?") + "$");
1538
- /**
1539
- * The base implementation of `_.isNative` without bad shim checks.
1540
- *
1541
- * @private
1542
- * @param {*} value The value to check.
1543
- * @returns {boolean} Returns `true` if `value` is a native function,
1544
- * else `false`.
1545
- */ function $927414f7f9d8afbb$var$baseIsNative(value) {
1546
- if (!$bfk90(value) || $1fb1799a04ee25ea$exports(value)) return false;
1547
- var pattern = $7T6pQ(value) ? $927414f7f9d8afbb$var$reIsNative : $927414f7f9d8afbb$var$reIsHostCtor;
1548
- return pattern.test($c6de24274df36d4e$exports(value));
1549
- }
1550
- $927414f7f9d8afbb$exports = $927414f7f9d8afbb$var$baseIsNative;
1551
1487
 
1488
+ 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;
1552
1491
 
1553
- var $18378a7c2aff899b$exports = {};
1554
- /**
1555
- * Gets the value at `key` of `object`.
1556
- *
1557
- * @private
1558
- * @param {Object} [object] The object to query.
1559
- * @param {string} key The key of the property to get.
1560
- * @returns {*} Returns the property value.
1561
- */ function $18378a7c2aff899b$var$getValue(object, key) {
1562
- return object == null ? undefined : object[key];
1563
- }
1564
- $18378a7c2aff899b$exports = $18378a7c2aff899b$var$getValue;
1565
1492
 
1493
+ var $869474d4b330cc35$exports = {};
1566
1494
 
1567
- /**
1568
- * Gets the native function at `key` of `object`.
1569
- *
1570
- * @private
1571
- * @param {Object} object The object to query.
1572
- * @param {string} key The key of the method to get.
1573
- * @returns {*} Returns the function if it's native, else `undefined`.
1574
- */ function $b7745e89d7f5915f$var$getNative(object, key) {
1575
- var value = $18378a7c2aff899b$exports(object, key);
1576
- return $927414f7f9d8afbb$exports(value) ? value : undefined;
1577
- }
1578
- $b7745e89d7f5915f$exports = $b7745e89d7f5915f$var$getNative;
1579
1495
 
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;
1580
1499
 
1581
- var $97bac00047c338ed$var$defineProperty = function() {
1582
- try {
1583
- var func = $b7745e89d7f5915f$exports(Object, "defineProperty");
1584
- func({}, "", {});
1585
- return func;
1586
- } catch (e) {}
1587
- }();
1588
- $97bac00047c338ed$exports = $97bac00047c338ed$var$defineProperty;
1589
1500
 
1501
+ var $c4df061ad36170d9$exports = {};
1590
1502
 
1591
1503
 
1592
- var $9x2D6 = parcelRequire("9x2D6");
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;
1507
+
1508
+
1509
+
1510
+ var $hi3Ib = parcelRequire("hi3Ib");
1511
+
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);
1593
1515
  /**
1594
- * The base implementation of `setToString` without support for hot loop shorting.
1516
+ * Gets the `toStringTag` of `value`.
1595
1517
  *
1596
1518
  * @private
1597
- * @param {Function} func The function to modify.
1598
- * @param {Function} string The `toString` result.
1599
- * @returns {Function} Returns `func`.
1600
- */ var $ef9aec5e693cb6ed$var$baseSetToString = !$97bac00047c338ed$exports ? $9x2D6 : function(func, string) {
1601
- return $97bac00047c338ed$exports(func, "toString", {
1602
- "configurable": true,
1603
- "enumerable": false,
1604
- "value": $3dc9802adab1dd60$exports(string),
1605
- "writable": true
1606
- });
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;
1607
1538
  };
1608
- $ef9aec5e693cb6ed$exports = $ef9aec5e693cb6ed$var$baseSetToString;
1539
+ $2184c74fd3b50571$exports = $2184c74fd3b50571$var$getTag;
1609
1540
 
1610
1541
 
1611
- var $f6a97849336ceea8$exports = {};
1612
- /** 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;
1613
- /* Built-in method references for those with the same name as other `lodash` methods. */ var $f6a97849336ceea8$var$nativeNow = Date.now;
1542
+ var $5cfa9b34443304aa$exports = {};
1614
1543
  /**
1615
- * Creates a function that'll short out and invoke `identity` instead
1616
- * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
1617
- * milliseconds.
1544
+ * Converts `map` to its key-value pairs.
1618
1545
  *
1619
1546
  * @private
1620
- * @param {Function} func The function to restrict.
1621
- * @returns {Function} Returns the new shortable function.
1622
- */ function $f6a97849336ceea8$var$shortOut(func) {
1623
- var count = 0, lastCalled = 0;
1624
- return function() {
1625
- var stamp = $f6a97849336ceea8$var$nativeNow(), remaining = $f6a97849336ceea8$var$HOT_SPAN - (stamp - lastCalled);
1626
- lastCalled = stamp;
1627
- if (remaining > 0) {
1628
- if (++count >= $f6a97849336ceea8$var$HOT_COUNT) return arguments[0];
1629
- } else count = 0;
1630
- return func.apply(undefined, arguments);
1631
- };
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;
1632
1558
  }
1633
- $f6a97849336ceea8$exports = $f6a97849336ceea8$var$shortOut;
1559
+ $5cfa9b34443304aa$exports = $5cfa9b34443304aa$var$mapToArray;
1634
1560
 
1635
1561
 
1562
+ var $e0efec8f59f2b46b$exports = {};
1636
1563
  /**
1637
- * Sets the `toString` method of `func` to return `string`.
1564
+ * Converts `set` to its value-value pairs.
1638
1565
  *
1639
1566
  * @private
1640
- * @param {Function} func The function to modify.
1641
- * @param {Function} string The `toString` result.
1642
- * @returns {Function} Returns `func`.
1643
- */ var $0e9d1d7fde57dac1$var$setToString = $f6a97849336ceea8$exports($ef9aec5e693cb6ed$exports);
1644
- $0e9d1d7fde57dac1$exports = $0e9d1d7fde57dac1$var$setToString;
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
+ ];
1576
+ });
1577
+ return result;
1578
+ }
1579
+ $e0efec8f59f2b46b$exports = $e0efec8f59f2b46b$var$setToPairs;
1645
1580
 
1646
1581
 
1582
+ /** `Object#toString` result references. */ var $acbd35b1cbbf33e4$var$mapTag = "[object Map]", $acbd35b1cbbf33e4$var$setTag = "[object Set]";
1647
1583
  /**
1648
- * The base implementation of `_.rest` which doesn't validate or coerce arguments.
1584
+ * Creates a `_.toPairs` or `_.toPairsIn` function.
1649
1585
  *
1650
1586
  * @private
1651
- * @param {Function} func The function to apply a rest parameter to.
1652
- * @param {number} [start=func.length-1] The start position of the rest parameter.
1653
- * @returns {Function} Returns the new function.
1654
- */ function $b1535b4ce0d1bd5f$var$baseRest(func, start) {
1655
- return $0e9d1d7fde57dac1$exports($1b1aa0f3fc7256c9$exports(func, start, $9x2D6), func + "");
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));
1595
+ };
1656
1596
  }
1657
- $b1535b4ce0d1bd5f$exports = $b1535b4ce0d1bd5f$var$baseRest;
1597
+ $acbd35b1cbbf33e4$exports = $acbd35b1cbbf33e4$var$createToPairs;
1658
1598
 
1659
1599
 
1660
- var $ceebddaa7160689c$exports = {};
1600
+
1601
+ var $bqLSx = parcelRequire("bqLSx");
1661
1602
  /**
1662
- * Performs a
1663
- * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
1664
- * comparison between two values to determine if they are equivalent.
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.
1665
1606
  *
1666
1607
  * @static
1667
1608
  * @memberOf _
1668
1609
  * @since 4.0.0
1669
- * @category Lang
1670
- * @param {*} value The value to compare.
1671
- * @param {*} other The other value to compare.
1672
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
1610
+ * @alias entries
1611
+ * @category Object
1612
+ * @param {Object} object The object to query.
1613
+ * @returns {Array} Returns the key-value pairs.
1673
1614
  * @example
1674
1615
  *
1675
- * var object = { 'a': 1 };
1676
- * var other = { 'a': 1 };
1677
- *
1678
- * _.eq(object, object);
1679
- * // => true
1680
- *
1681
- * _.eq(object, other);
1682
- * // => false
1683
- *
1684
- * _.eq('a', 'a');
1685
- * // => true
1616
+ * function Foo() {
1617
+ * this.a = 1;
1618
+ * this.b = 2;
1619
+ * }
1686
1620
  *
1687
- * _.eq('a', Object('a'));
1688
- * // => false
1621
+ * Foo.prototype.c = 3;
1689
1622
  *
1690
- * _.eq(NaN, NaN);
1691
- * // => true
1692
- */ function $ceebddaa7160689c$var$eq(value, other) {
1693
- return value === other || value !== value && other !== other;
1694
- }
1695
- $ceebddaa7160689c$exports = $ceebddaa7160689c$var$eq;
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;
1696
1627
 
1697
1628
 
1698
- var $e084f044678f4365$exports = {};
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
+ }();
1699
1760
 
1700
1761
 
1701
- var $fegcS = parcelRequire("fegcS");
1702
1762
 
1703
- var $gf9YK = parcelRequire("gf9YK");
1763
+ class $f8721861c660dd88$export$2b65d1d97338f32b {
1764
+ constructor(page){
1765
+ this.page = page;
1766
+ }
1767
+ }
1704
1768
 
1705
- var $bfk90 = parcelRequire("bfk90");
1706
- /**
1707
- * Checks if the given arguments are from an iteratee call.
1708
- *
1709
- * @private
1710
- * @param {*} value The potential iteratee value argument.
1711
- * @param {*} index The potential iteratee index or key argument.
1712
- * @param {*} object The potential iteratee object argument.
1713
- * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
1714
- * else `false`.
1715
- */ function $e084f044678f4365$var$isIterateeCall(value, index, object) {
1716
- if (!$bfk90(object)) return false;
1717
- var type = typeof index;
1718
- if (type == "number" ? $fegcS(object) && $gf9YK(index, object.length) : type == "string" && index in object) return $ceebddaa7160689c$exports(object[index], value);
1719
- return false;
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.locator("#inputLogin").fill(userName);
1780
+ await this.page.locator("#inputPassword").fill(password);
1781
+ await this.page.locator("button[type='submit']").click();
1782
+ }
1783
+ /**
1784
+ * Logout as authenticated user
1785
+ */ async logout() {
1786
+ await this.page.locator("button.dot-avatar").click();
1787
+ await this.page.getByText("Log out").click();
1788
+ }
1789
+ /**
1790
+ * Expect login to be restricted for a user
1791
+ */ async expectLoginDisallowed() {
1792
+ const val = await this.page.textContent('.error-content span[ng-show="loginInfo.failedStatus == 403"]');
1793
+ (0, $kKeXs$playwrighttest.expect)(val).toContain("You do not have 'login' permission.");
1794
+ }
1795
+ /**
1796
+ * Expect the respective user is logged In
1797
+ * @param username
1798
+ */ async expectToBeLogged(username) {
1799
+ const val = await this.page.locator("top-toolbar .avatar-wrapper span.dot-tooltip").getAttribute("aria-label");
1800
+ (0, $kKeXs$playwrighttest.expect)(val).toContain(username);
1801
+ }
1720
1802
  }
1721
- $e084f044678f4365$exports = $e084f044678f4365$var$isIterateeCall;
1722
1803
 
1723
1804
 
1724
- var $0e6e2e34ec44a72a$exports = {};
1725
1805
 
1726
- var $gYWmw = parcelRequire("gYWmw");
1727
- var $b4b8b2a977b4cc10$exports = {};
1728
1806
 
1729
- var $bfk90 = parcelRequire("bfk90");
1730
1807
 
1731
- var $cjTq2 = parcelRequire("cjTq2");
1732
- var $59b6e790ee7519e4$exports = {};
1733
- /**
1734
- * This function is like
1735
- * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
1736
- * except that it includes inherited enumerable properties.
1737
- *
1738
- * @private
1739
- * @param {Object} object The object to query.
1740
- * @returns {Array} Returns the array of property names.
1741
- */ function $59b6e790ee7519e4$var$nativeKeysIn(object) {
1742
- var result = [];
1743
- if (object != null) for(var key in Object(object))result.push(key);
1744
- return result;
1745
- }
1746
- $59b6e790ee7519e4$exports = $59b6e790ee7519e4$var$nativeKeysIn;
1747
1808
 
1748
1809
 
1749
- /** Used for built-in method references. */ var $b4b8b2a977b4cc10$var$objectProto = Object.prototype;
1750
- /** Used to check objects for own properties. */ var $b4b8b2a977b4cc10$var$hasOwnProperty = $b4b8b2a977b4cc10$var$objectProto.hasOwnProperty;
1751
- /**
1752
- * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
1753
- *
1754
- * @private
1755
- * @param {Object} object The object to query.
1756
- * @returns {Array} Returns the array of property names.
1757
- */ function $b4b8b2a977b4cc10$var$baseKeysIn(object) {
1758
- if (!$bfk90(object)) return $59b6e790ee7519e4$exports(object);
1759
- var isProto = $cjTq2(object), result = [];
1760
- for(var key in object)if (!(key == "constructor" && (isProto || !$b4b8b2a977b4cc10$var$hasOwnProperty.call(object, key)))) result.push(key);
1761
- return result;
1810
+ class $280428cd9976d58e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1811
+ async expectNumberOfReleases(releaseTitle, amount) {
1812
+ if (amount === 1) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible();
1813
+ else await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle).count()).toBe(amount);
1814
+ }
1815
+ async openReleaseByName(releaseTitle) {
1816
+ await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
1817
+ hasText: releaseTitle
1818
+ }).click();
1819
+ return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
1820
+ }
1762
1821
  }
1763
- $b4b8b2a977b4cc10$exports = $b4b8b2a977b4cc10$var$baseKeysIn;
1764
1822
 
1765
1823
 
1766
1824
 
1767
- var $fegcS = parcelRequire("fegcS");
1768
- /**
1769
- * Creates an array of the own and inherited enumerable property names of `object`.
1770
- *
1771
- * **Note:** Non-object values are coerced to objects.
1772
- *
1773
- * @static
1774
- * @memberOf _
1775
- * @since 3.0.0
1776
- * @category Object
1777
- * @param {Object} object The object to query.
1778
- * @returns {Array} Returns the array of property names.
1779
- * @example
1780
- *
1781
- * function Foo() {
1782
- * this.a = 1;
1783
- * this.b = 2;
1784
- * }
1785
- *
1786
- * Foo.prototype.c = 3;
1787
- *
1788
- * _.keysIn(new Foo);
1789
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
1790
- */ function $0e6e2e34ec44a72a$var$keysIn(object) {
1791
- return $fegcS(object) ? $gYWmw(object, true) : $b4b8b2a977b4cc10$exports(object);
1825
+ class $133601cfe0486710$export$fb932093f944abe4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1826
+ async openRelatedReleasesOf(title) {
1827
+ await this.openContextMenu(title);
1828
+ await this.page.locator(".popover-content xlr-context-menu a", {
1829
+ hasText: "View releases"
1830
+ }).click();
1831
+ return new (0, $280428cd9976d58e$export$a678525e79c4ccc4)(this.page);
1832
+ }
1833
+ async openContextMenu(title) {
1834
+ await (0, $kKeXs$playwrighttest.expect)(async ()=>{
1835
+ await this.page.locator(".trigger-row-content", {
1836
+ hasText: title
1837
+ }).locator(".context-menu-button").click();
1838
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".popover-content")).toBeVisible();
1839
+ }).toPass();
1840
+ }
1792
1841
  }
1793
- $0e6e2e34ec44a72a$exports = $0e6e2e34ec44a72a$var$keysIn;
1794
1842
 
1795
1843
 
1796
- /** Used for built-in method references. */ var $732eba8dca8b5420$var$objectProto = Object.prototype;
1797
- /** Used to check objects for own properties. */ var $732eba8dca8b5420$var$hasOwnProperty = $732eba8dca8b5420$var$objectProto.hasOwnProperty;
1798
- /**
1799
- * Assigns own and inherited enumerable string keyed properties of source
1800
- * objects to the destination object for all destination properties that
1801
- * resolve to `undefined`. Source objects are applied from left to right.
1802
- * Once a property is set, additional values of the same property are ignored.
1803
- *
1804
- * **Note:** This method mutates `object`.
1805
- *
1806
- * @static
1807
- * @since 0.1.0
1808
- * @memberOf _
1809
- * @category Object
1810
- * @param {Object} object The destination object.
1811
- * @param {...Object} [sources] The source objects.
1812
- * @returns {Object} Returns `object`.
1813
- * @see _.defaultsDeep
1814
- * @example
1815
- *
1816
- * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
1817
- * // => { 'a': 1, 'b': 2 }
1818
- */ var $732eba8dca8b5420$var$defaults = $b1535b4ce0d1bd5f$exports(function(object, sources) {
1819
- object = Object(object);
1820
- var index = -1;
1821
- var length = sources.length;
1822
- var guard = length > 2 ? sources[2] : undefined;
1823
- if (guard && $e084f044678f4365$exports(sources[0], sources[1], guard)) length = 1;
1824
- while(++index < length){
1825
- var source = sources[index];
1826
- var props = $0e6e2e34ec44a72a$exports(source);
1827
- var propsIndex = -1;
1828
- var propsLength = props.length;
1829
- while(++propsIndex < propsLength){
1830
- var key = props[propsIndex];
1831
- var value = object[key];
1832
- if (value === undefined || $ceebddaa7160689c$exports(value, $732eba8dca8b5420$var$objectProto[key]) && !$732eba8dca8b5420$var$hasOwnProperty.call(object, key)) object[key] = source[key];
1833
- }
1844
+
1845
+
1846
+
1847
+ async function $ef0df8ad8a777ce6$export$a0f926f04148e5d2(locators) {
1848
+ const res = await Promise.all([
1849
+ ...locators.map(async (locator, index)=>{
1850
+ let timedOut = false;
1851
+ await locator.waitFor({
1852
+ state: "visible",
1853
+ timeout: 2000
1854
+ }).catch(()=>timedOut = true);
1855
+ return [
1856
+ timedOut ? -1 : index,
1857
+ locator
1858
+ ];
1859
+ })
1860
+ ]);
1861
+ const resolvedLocator = res.find((r)=>r[0] !== -1);
1862
+ if (!resolvedLocator) {
1863
+ console.warn("waitForOneOf", res);
1864
+ throw new Error("no locator visible before timeout");
1834
1865
  }
1835
- return object;
1836
- });
1837
- $732eba8dca8b5420$exports = $732eba8dca8b5420$var$defaults;
1866
+ return resolvedLocator;
1867
+ }
1838
1868
 
1839
1869
 
1840
- var $f51969c4a7467fa0$exports = {};
1841
- var $acbd35b1cbbf33e4$exports = {};
1842
- var $34482bf0fdb87aa6$exports = {};
1843
- var $c258ac491a64b22b$exports = {};
1844
- /**
1845
- * A specialized version of `_.map` for arrays without support for iteratee
1846
- * shorthands.
1847
- *
1848
- * @private
1849
- * @param {Array} [array] The array to iterate over.
1850
- * @param {Function} iteratee The function invoked per iteration.
1851
- * @returns {Array} Returns the new mapped array.
1852
- */ function $c258ac491a64b22b$var$arrayMap(array, iteratee) {
1853
- var index = -1, length = array == null ? 0 : array.length, result = Array(length);
1854
- while(++index < length)result[index] = iteratee(array[index], index, array);
1855
- return result;
1870
+ class $fd4eef3ad2b2e612$export$a87f0ae8695e74be extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1871
+ async openVariable(variableKey) {
1872
+ await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();
1873
+ return new $fd4eef3ad2b2e612$var$ReleaseVariableModal(this.page);
1874
+ }
1875
+ }
1876
+ class $fd4eef3ad2b2e612$var$ReleaseVariableModal extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1877
+ async expectValue(locators, expectFn) {
1878
+ const [index, locator] = await (0, $ef0df8ad8a777ce6$export$a0f926f04148e5d2)(locators);
1879
+ await expectFn[index](locator);
1880
+ }
1881
+ async expectValueToBe(value) {
1882
+ await this.expectValue([
1883
+ this.page.locator("#modal .variable-value input"),
1884
+ this.page.locator("#modal .variable-value .field-readonly"),
1885
+ this.page.locator("#modal .variable-value .xl-map-string-string")
1886
+ ], [
1887
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveValue(value),
1888
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value),
1889
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value)
1890
+ ]);
1891
+ }
1892
+ async expectValueToContain(value) {
1893
+ await this.expectValue([
1894
+ this.page.locator("#modal .variable-value input"),
1895
+ this.page.locator("#modal .variable-value .field-readonly"),
1896
+ this.page.locator("#modal .variable-value .xl-map-string-string")
1897
+ ], [
1898
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l.inputValue()).toContain(value),
1899
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value),
1900
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value)
1901
+ ]);
1902
+ }
1903
+ async close() {
1904
+ await this.page.locator("#modal .modal-header button.close").click();
1905
+ }
1856
1906
  }
1857
- $c258ac491a64b22b$exports = $c258ac491a64b22b$var$arrayMap;
1858
1907
 
1859
1908
 
1860
- /**
1861
- * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
1862
- * of key-value pairs for `object` corresponding to the property names of `props`.
1863
- *
1864
- * @private
1865
- * @param {Object} object The object to query.
1866
- * @param {Array} props The property names to get values for.
1867
- * @returns {Object} Returns the key-value pairs.
1868
- */ function $34482bf0fdb87aa6$var$baseToPairs(object, props) {
1869
- return $c258ac491a64b22b$exports(props, function(key) {
1870
- return [
1871
- key,
1872
- object[key]
1873
- ];
1874
- });
1909
+
1910
+
1911
+ class $8be2ce0eccbe6d27$export$64c93bc7fb9ca44e extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1912
+ constructor(page){
1913
+ super(page);
1914
+ this.railLocator = this.page.locator("task-drawer .dot-drawer .task-config");
1915
+ }
1916
+ async openInputProperties() {
1917
+ await this.railLocator.locator(".task-config-header").getByText("Input properties").click();
1918
+ }
1919
+ async openOutputProperties() {
1920
+ await this.railLocator.locator(".task-config-header").getByText("Output properties").click();
1921
+ }
1922
+ async getValueFromCi(propertyName) {
1923
+ return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1924
+ }
1925
+ async getAllOptionsFromCi(propertyName) {
1926
+ await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1927
+ return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();
1928
+ }
1929
+ async setValueFromCi(propertyName, value) {
1930
+ await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1931
+ await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1932
+ await this.railLocator.locator(`.dot-popper ul li`, {
1933
+ hasText: value
1934
+ }).click();
1935
+ }
1936
+ async getValueFromString(propertyName) {
1937
+ await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1938
+ return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1939
+ }
1940
+ async setValueFromString(propertyName, value) {
1941
+ await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1942
+ await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1943
+ }
1944
+ async setValueFromLargeString(propertyName, value) {
1945
+ await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1946
+ await this.railLocator.locator(`textarea[id="${propertyName}"]`).fill(value);
1947
+ }
1948
+ async setValueFromPassword(propertyName, value) {
1949
+ await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1950
+ }
1951
+ async setAndCreateVariable(propertyName, variableName) {
1952
+ await this.railLocator.locator(`input[id="${propertyName}"]`).clear();
1953
+ await this.railLocator.locator(`input[id="${propertyName}"]`).click();
1954
+ await this.railLocator.locator(`input[id="${propertyName}"]`).fill(variableName);
1955
+ await this.railLocator.locator(`.dot-popper button`, {
1956
+ hasText: variableName
1957
+ }).click();
1958
+ }
1959
+ async setVariable(propertyName, variableName) {
1960
+ return this.setValueFromCi(propertyName, variableName);
1961
+ }
1962
+ async expectValueFromString(propertyName, propertyValue) {
1963
+ return await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`)).toHaveText(propertyValue);
1964
+ }
1875
1965
  }
1876
- $34482bf0fdb87aa6$exports = $34482bf0fdb87aa6$var$baseToPairs;
1877
-
1878
-
1879
- var $2184c74fd3b50571$exports = {};
1880
- var $9707ed10f1d74f7d$exports = {};
1881
1966
 
1882
1967
 
1883
- var $5iYlB = parcelRequire("5iYlB");
1884
- /* Built-in method references that are verified to be native. */ var $9707ed10f1d74f7d$var$DataView = $b7745e89d7f5915f$exports($5iYlB, "DataView");
1885
- $9707ed10f1d74f7d$exports = $9707ed10f1d74f7d$var$DataView;
1886
1968
 
1887
1969
 
1888
- var $8c4ecd35968046d6$exports = {};
1889
1970
 
1971
+ class $9c0b0c2caed50730$export$d4865631ba74f3e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1972
+ constructor(page){
1973
+ super(page);
1974
+ this.railLocator = this.page.locator("task-drawer .dot-drawer .task-conditions");
1975
+ this.preconditionToggle = page.getByLabel("Enable precondition");
1976
+ this.textEditor = page.getByRole("textbox");
1977
+ this.saveButton = page.getByTestId("save-btn");
1978
+ }
1979
+ async enablePrecondition() {
1980
+ (0, $kKeXs$playwrighttest.expect)(await this.preconditionToggle.isChecked()).toBe(false);
1981
+ await this.preconditionToggle.check();
1982
+ }
1983
+ async disablePrecondition() {
1984
+ (0, $kKeXs$playwrighttest.expect)(await this.preconditionToggle.isChecked()).toBe(true);
1985
+ await this.preconditionToggle.uncheck();
1986
+ }
1987
+ async setPrecondition(script) {
1988
+ await this.enablePrecondition();
1989
+ await this.textEditor.fill(script);
1990
+ await this.saveButton.dblclick();
1991
+ await this.page.waitForTimeout(1000);
1992
+ }
1993
+ }
1890
1994
 
1891
- var $5iYlB = parcelRequire("5iYlB");
1892
- /* Built-in method references that are verified to be native. */ var $8c4ecd35968046d6$var$Map = $b7745e89d7f5915f$exports($5iYlB, "Map");
1893
- $8c4ecd35968046d6$exports = $8c4ecd35968046d6$var$Map;
1894
1995
 
1996
+ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1997
+ constructor(page){
1998
+ super(page);
1999
+ this.taskDrawerLocator = this.page.locator("task-drawer .dot-drawer");
2000
+ this.retryButton = this.page.getByRole("button", {
2001
+ name: "Retry"
2002
+ });
2003
+ this.cancelButton = this.page.getByTestId("task-action-cancel");
2004
+ this.commentBox = this.page.getByTestId("task-action-comment");
2005
+ this.confirm = this.page.getByTestId("task-action-confirm");
2006
+ this.config = new (0, $8be2ce0eccbe6d27$export$64c93bc7fb9ca44e)(page);
2007
+ this.condition = new (0, $9c0b0c2caed50730$export$d4865631ba74f3e2)(page);
2008
+ this.skipMenu = this.page.getByRole("menuitem", {
2009
+ name: "Skip"
2010
+ });
2011
+ }
2012
+ async openOverviewRail() {
2013
+ await this.openRail("Overview");
2014
+ }
2015
+ async openActivityRail() {
2016
+ await this.openRail("Activity");
2017
+ }
2018
+ async openSchedulingRail() {
2019
+ await this.openRail("Scheduling");
2020
+ }
2021
+ async openConditionRail() {
2022
+ await this.openRail("Conditions");
2023
+ }
2024
+ async openAttributesRail() {
2025
+ await this.openRail("Attributes");
2026
+ }
2027
+ async openAttachRail() {
2028
+ await this.openRail("Attach");
2029
+ }
2030
+ async openTagsRail() {
2031
+ await this.openRail("Tags");
2032
+ }
2033
+ async openRail(rail) {
2034
+ await this.taskDrawerLocator.locator(".task-navigation-rail").getByText(rail).click();
2035
+ }
2036
+ async close() {
2037
+ await this.taskDrawerLocator.locator(".task-drawer-header").getByTestId("close-btn").click();
2038
+ }
2039
+ async retryTask(comment) {
2040
+ await this.retryButton.click();
2041
+ await this.commentBox.fill(comment);
2042
+ await this.confirm.click();
2043
+ }
2044
+ async skipTask(comment) {
2045
+ await this.page.getByRole("button", {
2046
+ name: "arrow-down icon",
2047
+ exact: true
2048
+ }).click();
2049
+ await this.skipMenu.click();
2050
+ await this.commentBox.fill(comment);
2051
+ await this.confirm.click();
2052
+ }
2053
+ }
1895
2054
 
1896
- var $30f4d64ddd8effd1$exports = {};
1897
2055
 
2056
+ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2057
+ constructor(page){
2058
+ super(page);
2059
+ this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
2060
+ }
2061
+ async openTriggers() {
2062
+ await this.openSubPage("Triggers");
2063
+ return new (0, $133601cfe0486710$export$fb932093f944abe4)(this.page);
2064
+ }
2065
+ async abort(comment = "Abort for testing") {
2066
+ await this.page.locator("action-toolbar button", {
2067
+ hasText: "Abort"
2068
+ }).click();
2069
+ await this.page.locator(".modal textarea").fill(comment);
2070
+ await this.page.locator(".modal .continue").click();
2071
+ }
2072
+ getPhase(phaseName) {
2073
+ return new $9b9a8c3da392d020$var$Phase(this.page, phaseName);
2074
+ }
2075
+ async start() {
2076
+ await this.page.getByTestId("start-btn").click();
2077
+ await this.page.getByRole("button", {
2078
+ name: "Start"
2079
+ }).click();
2080
+ }
2081
+ async waitForTaskCompleted(taskTitle) {
2082
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.completed").getByText(taskTitle, {
2083
+ exact: true
2084
+ })).toBeVisible();
2085
+ }
2086
+ async waitForTaskFailed(taskTitle) {
2087
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.failed").getByText(taskTitle, {
2088
+ exact: true
2089
+ })).toBeVisible();
2090
+ }
2091
+ async waitForTaskSkipped(taskTitle) {
2092
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.skipped").getByText(taskTitle, {
2093
+ exact: true
2094
+ })).toBeVisible();
2095
+ }
2096
+ async waitForTaskAborted(taskTitle) {
2097
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.aborted").getByText(taskTitle, {
2098
+ exact: true
2099
+ })).toBeVisible();
2100
+ }
2101
+ async waitForStatusLine(statusLine) {
2102
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task .status-line").getByText(statusLine, {
2103
+ exact: true
2104
+ })).toBeVisible();
2105
+ }
2106
+ async waitForTaskStarted(taskTitle) {
2107
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.in_progress").getByTitle(taskTitle, {
2108
+ exact: true
2109
+ })).toBeVisible();
2110
+ }
2111
+ async openTaskDrawer(taskName) {
2112
+ await this.page.locator(".task-header").getByText(taskName).click();
2113
+ return this.taskDrawer;
2114
+ }
2115
+ async openVariables() {
2116
+ await this.openReleaseMenu("Variables");
2117
+ return new (0, $fd4eef3ad2b2e612$export$a87f0ae8695e74be)(this.page);
2118
+ }
2119
+ async openReleaseMenu(menuItem) {
2120
+ await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
2121
+ exact: true
2122
+ }).click();
2123
+ }
2124
+ async openSubPage(subpage) {
2125
+ await this.page.locator("ul.side-nav li", {
2126
+ hasText: subpage
2127
+ }).click();
2128
+ }
2129
+ async openTask(taskName) {
2130
+ await this.page.getByTitle(taskName, {
2131
+ exact: true
2132
+ }).click();
2133
+ }
2134
+ async collapseAllTaskView() {
2135
+ const icCollapseTreeview1 = this.page.locator("div.pull-left.expander.ng-scope i.xl-icon.arrow-down-icon");
2136
+ for (const element of (await icCollapseTreeview1.all())){
2137
+ const blnVal = await element.isVisible();
2138
+ if (blnVal) {
2139
+ await element.click();
2140
+ await this.collapseAllTaskView();
2141
+ }
2142
+ }
2143
+ }
2144
+ async expandAllTaskView() {
2145
+ const icExpandTreeview1 = this.page.locator("div.pull-left.expander.ng-scope i.xl-icon.arrow-right-icon");
2146
+ for (const element of (await icExpandTreeview1.all())){
2147
+ const blnVal = await element.isVisible();
2148
+ if (blnVal) {
2149
+ await element.click();
2150
+ await this.expandAllTaskView();
2151
+ }
2152
+ }
2153
+ }
2154
+ }
2155
+ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2156
+ constructor(page, phaseName){
2157
+ super(page);
2158
+ this.phaseLocator = page.locator(".phase", {
2159
+ hasText: phaseName
2160
+ });
2161
+ }
2162
+ async addTask(taskName, taskGroup, taskType) {
2163
+ await this.phaseLocator.getByText("Add task").click();
2164
+ await this.phaseLocator.locator(".quick-title").fill(taskName);
2165
+ await this.phaseLocator.locator(".xlr-ctx-menu-toggle").click();
2166
+ await this.page.locator(`.xlr-ctx-menu-item`).getByTitle(taskGroup, {
2167
+ exact: true
2168
+ }).scrollIntoViewIfNeeded();
2169
+ await this.page.locator(`.xlr-ctx-menu-item`).getByTitle(taskGroup, {
2170
+ exact: true
2171
+ }).hover();
2172
+ await this.page.locator(`.xlr-ctx-menu.active`).getByTitle(taskType, {
2173
+ exact: true
2174
+ }).click();
2175
+ await this.phaseLocator.locator(".quick-controls-container a").getByText("Add", {
2176
+ exact: true
2177
+ }).click();
2178
+ }
2179
+ }
1898
2180
 
1899
- var $5iYlB = parcelRequire("5iYlB");
1900
- /* Built-in method references that are verified to be native. */ var $30f4d64ddd8effd1$var$Promise = $b7745e89d7f5915f$exports($5iYlB, "Promise");
1901
- $30f4d64ddd8effd1$exports = $30f4d64ddd8effd1$var$Promise;
1902
2181
 
1903
2182
 
1904
- var $869474d4b330cc35$exports = {};
1905
2183
 
2184
+ class $dc91ece6da6cadfa$export$1533b625ec0c75e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2185
+ async goToApplicationsPage() {
2186
+ await this.page.goto("./#/applications");
2187
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Applications - Digital.ai Release");
2188
+ return this;
2189
+ }
2190
+ async addNewApplication(applicationName) {
2191
+ await this.page.locator(`//button[normalize-space()='New application']`).click();
2192
+ await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
2193
+ await this.page.locator(`//button[normalize-space()='Save']`).click();
2194
+ return this;
2195
+ }
2196
+ async verifyApplicationisCreated(applicationName) {
2197
+ await this.page.waitForSelector(`div[title='${applicationName}'] strong`);
2198
+ return this;
2199
+ }
2200
+ async createApplicationAndLinkEnvironment(environmentName, applicationName) {
2201
+ await this.page.locator(`//button[normalize-space()='New application']`).click();
2202
+ await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
2203
+ await this.page.locator("input[placeholder='Filter environment name...']").type(environmentName);
2204
+ await this.page.locator(`div[title='${environmentName}']`).click();
2205
+ await this.page.locator(`//button[normalize-space()='Save']`).click();
2206
+ await this.page.locator("i.xl-icon.close-icon").click();
2207
+ return this;
2208
+ }
2209
+ }
1906
2210
 
1907
- var $5iYlB = parcelRequire("5iYlB");
1908
- /* Built-in method references that are verified to be native. */ var $869474d4b330cc35$var$Set = $b7745e89d7f5915f$exports($5iYlB, "Set");
1909
- $869474d4b330cc35$exports = $869474d4b330cc35$var$Set;
1910
2211
 
1911
2212
 
1912
- var $c4df061ad36170d9$exports = {};
1913
2213
 
2214
+ class $be4dd73206d8e76b$export$3cac5fd37ae64b91 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2215
+ async openPersonalAccessTokenPage() {
2216
+ // await this.page.locator("button.dot-avatar").click()
2217
+ // await this.page.locator("//div[normalize-space()='Access tokens']").click()
2218
+ await this.page.goto("./#/personal-access-token");
2219
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Access tokens / Personal settings - Digital.ai Release");
2220
+ return this;
2221
+ }
2222
+ async addNewToken(tokenName) {
2223
+ //await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release')
2224
+ await this.page.locator("#tokenText").fill(tokenName);
2225
+ await this.page.locator("button[type='submit']").click();
2226
+ return this;
2227
+ }
2228
+ }
1914
2229
 
1915
- var $5iYlB = parcelRequire("5iYlB");
1916
- /* Built-in method references that are verified to be native. */ var $c4df061ad36170d9$var$WeakMap = $b7745e89d7f5915f$exports($5iYlB, "WeakMap");
1917
- $c4df061ad36170d9$exports = $c4df061ad36170d9$var$WeakMap;
1918
2230
 
1919
2231
 
1920
2232
 
1921
- var $hi3Ib = parcelRequire("hi3Ib");
1922
2233
 
1923
- /** `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]";
1924
- var $2184c74fd3b50571$var$dataViewTag = "[object DataView]";
1925
- /** 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);
1926
- /**
1927
- * Gets the `toStringTag` of `value`.
1928
- *
1929
- * @private
1930
- * @param {*} value The value to query.
1931
- * @returns {string} Returns the `toStringTag`.
1932
- */ var $2184c74fd3b50571$var$getTag = $hi3Ib;
1933
- // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
1934
- 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) {
1935
- var result = $hi3Ib(value), Ctor = result == $2184c74fd3b50571$var$objectTag ? value.constructor : undefined, ctorString = Ctor ? $c6de24274df36d4e$exports(Ctor) : "";
1936
- if (ctorString) switch(ctorString){
1937
- case $2184c74fd3b50571$var$dataViewCtorString:
1938
- return $2184c74fd3b50571$var$dataViewTag;
1939
- case $2184c74fd3b50571$var$mapCtorString:
1940
- return $2184c74fd3b50571$var$mapTag;
1941
- case $2184c74fd3b50571$var$promiseCtorString:
1942
- return $2184c74fd3b50571$var$promiseTag;
1943
- case $2184c74fd3b50571$var$setCtorString:
1944
- return $2184c74fd3b50571$var$setTag;
1945
- case $2184c74fd3b50571$var$weakMapCtorString:
1946
- return $2184c74fd3b50571$var$weakMapTag;
2234
+ class $bb5572a48b31014a$export$e2e2e1ffdce20c30 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2235
+ constructor(page){
2236
+ super(page);
2237
+ this.userName = page.locator("#username");
2238
+ this.name = page.locator("#full-name");
2239
+ this.email = page.locator("#email");
2240
+ this.password = page.locator('[data-test="password-input"]');
2241
+ this.cnfPassword = page.locator("#passwordConfirmation");
2242
+ this.saveButton = page.getByRole("button", {
2243
+ name: "Save"
2244
+ });
2245
+ this.cancelButton = page.getByRole("button", {
2246
+ name: "Cancel"
2247
+ });
2248
+ this.deleteButton = page.getByRole("button", {
2249
+ name: "Delete"
2250
+ });
2251
+ }
2252
+ async setUserName(username) {
2253
+ return await this.userName.fill(username);
2254
+ }
2255
+ async setFullName(fullName) {
2256
+ return await this.name.fill(fullName);
2257
+ }
2258
+ async setEmail(email) {
2259
+ return await this.email.fill(email);
2260
+ }
2261
+ async setPassword(password) {
2262
+ return await this.password.fill(password);
2263
+ }
2264
+ async setConfirmPassword(cnfPassword) {
2265
+ return await this.cnfPassword.fill(cnfPassword);
2266
+ }
2267
+ async save() {
2268
+ await this.saveButton.click();
2269
+ }
2270
+ async cancel() {
2271
+ await this.cancelButton.click();
2272
+ }
2273
+ async delete() {
2274
+ await this.deleteButton.click();
1947
2275
  }
1948
- return result;
1949
- };
1950
- $2184c74fd3b50571$exports = $2184c74fd3b50571$var$getTag;
1951
-
1952
-
1953
- var $5cfa9b34443304aa$exports = {};
1954
- /**
1955
- * Converts `map` to its key-value pairs.
1956
- *
1957
- * @private
1958
- * @param {Object} map The map to convert.
1959
- * @returns {Array} Returns the key-value pairs.
1960
- */ function $5cfa9b34443304aa$var$mapToArray(map) {
1961
- var index = -1, result = Array(map.size);
1962
- map.forEach(function(value, key) {
1963
- result[++index] = [
1964
- key,
1965
- value
1966
- ];
1967
- });
1968
- return result;
1969
2276
  }
1970
- $5cfa9b34443304aa$exports = $5cfa9b34443304aa$var$mapToArray;
1971
2277
 
1972
2278
 
1973
- var $e0efec8f59f2b46b$exports = {};
1974
- /**
1975
- * Converts `set` to its value-value pairs.
1976
- *
1977
- * @private
1978
- * @param {Object} set The set to convert.
1979
- * @returns {Array} Returns the value-value pairs.
1980
- */ function $e0efec8f59f2b46b$var$setToPairs(set) {
1981
- var index = -1, result = Array(set.size);
1982
- set.forEach(function(value) {
1983
- result[++index] = [
1984
- value,
1985
- value
1986
- ];
1987
- });
1988
- return result;
2279
+ class $3ceab7c613cabfd6$export$107317390f5aa598 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2280
+ constructor(page){
2281
+ super(page);
2282
+ this.page = page;
2283
+ this.newUserButton = this.page.getByTestId("new-user-btn");
2284
+ this.modal = new (0, $bb5572a48b31014a$export$e2e2e1ffdce20c30)(page);
2285
+ }
2286
+ async openUsersPage() {
2287
+ this.page.goto("/#/users", {
2288
+ timeout: 1000
2289
+ });
2290
+ }
2291
+ async toggleLoginPermission(username) {
2292
+ await this.page.getByRole("row", {
2293
+ name: "" + username + ""
2294
+ }).getByRole("checkbox").check();
2295
+ //await this.page.locator(`tr:contains('${username}') .login-permission input`).click();
2296
+ }
2297
+ async addUser() {
2298
+ await this.newUserButton.click();
2299
+ }
2300
+ async createUser(username, password) {
2301
+ await this.modal.setUserName(username);
2302
+ await this.modal.setFullName(username);
2303
+ await this.modal.setEmail("testuser@company.com");
2304
+ await this.modal.setPassword(password);
2305
+ await this.modal.setConfirmPassword(password);
2306
+ await this.modal.save();
2307
+ }
2308
+ async expectToHaveLoginPermission(username) {
2309
+ return await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("row", {
2310
+ name: "" + username + ""
2311
+ }).getByRole("checkbox")).toBeChecked();
2312
+ }
2313
+ async deleteUser(username) {
2314
+ await this.page.getByRole("row", {
2315
+ name: "" + username + ""
2316
+ }).locator("i").nth(1).click();
2317
+ await this.modal.delete();
2318
+ }
1989
2319
  }
1990
- $e0efec8f59f2b46b$exports = $e0efec8f59f2b46b$var$setToPairs;
1991
2320
 
1992
2321
 
1993
- /** `Object#toString` result references. */ var $acbd35b1cbbf33e4$var$mapTag = "[object Map]", $acbd35b1cbbf33e4$var$setTag = "[object Set]";
1994
- /**
1995
- * Creates a `_.toPairs` or `_.toPairsIn` function.
1996
- *
1997
- * @private
1998
- * @param {Function} keysFunc The function to get the keys of a given object.
1999
- * @returns {Function} Returns the new pairs function.
2000
- */ function $acbd35b1cbbf33e4$var$createToPairs(keysFunc) {
2001
- return function(object) {
2002
- var tag = $2184c74fd3b50571$exports(object);
2003
- if (tag == $acbd35b1cbbf33e4$var$mapTag) return $5cfa9b34443304aa$exports(object);
2004
- if (tag == $acbd35b1cbbf33e4$var$setTag) return $e0efec8f59f2b46b$exports(object);
2005
- return $34482bf0fdb87aa6$exports(object, keysFunc(object));
2006
- };
2322
+
2323
+ class $7867194f18360347$export$1d7840d5cdc861d5 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2324
+ constructor(page){
2325
+ super(page);
2326
+ this.settingsIcon = this.page.getByRole("button", {
2327
+ name: "Settings"
2328
+ });
2329
+ this.usersAndPermissionMenu = this.page.getByTestId("undefined-menu").getByText("Users and permissions");
2330
+ this.managePluginMenu = this.page.getByText("Manage plugins");
2331
+ }
2332
+ async openUsersAndPermissions() {
2333
+ await this.settingsIcon.click();
2334
+ await this.page.getByTestId("undefined-menu").getByText("Users and permissions").click();
2335
+ }
2336
+ async openManagePlugin() {
2337
+ await this.settingsIcon.click();
2338
+ await this.managePluginMenu.click();
2339
+ }
2007
2340
  }
2008
- $acbd35b1cbbf33e4$exports = $acbd35b1cbbf33e4$var$createToPairs;
2009
2341
 
2010
2342
 
2011
2343
 
2012
- var $bqLSx = parcelRequire("bqLSx");
2013
- /**
2014
- * Creates an array of own enumerable string keyed-value pairs for `object`
2015
- * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
2016
- * entries are returned.
2017
- *
2018
- * @static
2019
- * @memberOf _
2020
- * @since 4.0.0
2021
- * @alias entries
2022
- * @category Object
2023
- * @param {Object} object The object to query.
2024
- * @returns {Array} Returns the key-value pairs.
2025
- * @example
2026
- *
2027
- * function Foo() {
2028
- * this.a = 1;
2029
- * this.b = 2;
2030
- * }
2031
- *
2032
- * Foo.prototype.c = 3;
2033
- *
2034
- * _.toPairs(new Foo);
2035
- * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
2036
- */ var $f51969c4a7467fa0$var$toPairs = $acbd35b1cbbf33e4$exports($bqLSx);
2037
- $f51969c4a7467fa0$exports = $f51969c4a7467fa0$var$toPairs;
2344
+ class $a642d735048996f9$export$922081b54f2ab994 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2345
+ constructor(page){
2346
+ super(page);
2347
+ }
2348
+ }
2038
2349
 
2039
2350
 
2040
- const $8977f8672c5de0fa$export$45f0aca2596a2bb3 = function() {
2041
- const RELEASE_TYPE = "xlrelease.Release";
2042
- const PHASE_TYPE = "xlrelease.Phase";
2043
- const TEAM_TYPE = "xlrelease.Team";
2044
- const TASK_TYPE = "xlrelease.Task";
2045
- const COMMENT_TYPE = "xlrelease.Comment";
2046
- const CONDITION_TYPE = "xlrelease.GateCondition";
2047
- const DEPENDENCY_TYPE = "xlrelease.Dependency";
2048
- const LINK_TYPE = "xlrelease.Link";
2049
- const ATTACHMENT_TYPE = "xlrelease.Attachment";
2050
- const DASHBOARD_TYPE = "xlrelease.Dashboard";
2051
- const _TRIGGER_TYPE = "xlrelease.ReleaseTrigger";
2052
- const JIRA_TYPE = "jira.CreateIssue";
2053
- const DEFAULT_TASK_OWNER = "Itchy";
2054
- const processTasks = (task, container, index)=>{
2055
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.type)) task.type = TASK_TYPE;
2056
- task.id = task.id || `${container.id}/Task${index}`;
2057
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.owner) && task.type !== JIRA_TYPE) task.owner = DEFAULT_TASK_OWNER;
2058
- if (task.owner === null) delete task.owner;
2059
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.conditions, function(condition, idx) {
2060
- condition.type = CONDITION_TYPE;
2061
- condition.id = `${task.id}/GateCondition${idx}`;
2062
- });
2063
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.dependencies, function(dependency, idx) {
2064
- dependency.type = DEPENDENCY_TYPE;
2065
- dependency.id = `${task.id}/Dependency${idx}`;
2066
- });
2067
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.links, function(link, idx) {
2068
- link.type = LINK_TYPE;
2069
- link.id = `${task.id}/Link${idx}`;
2070
- });
2071
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.comments, function(comment, idx) {
2072
- comment.type = COMMENT_TYPE;
2073
- comment.id = `${task.id}/Comment${idx}`;
2074
- });
2075
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.tasks, function(subTask, idx) {
2076
- processTasks(subTask, task, idx);
2077
- });
2078
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.templateVariables, function(variable, idx) {
2079
- (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, task.id, idx));
2080
- });
2081
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.attachments, function(attachment, idx) {
2082
- attachment.type = ATTACHMENT_TYPE;
2083
- attachment.id = `${task.id}/Attachment${idx}`;
2084
- });
2085
- if (task.pythonScript) {
2086
- const pythonScript = task.pythonScript;
2087
- pythonScript.id = `${task.id}/PythonScript`;
2088
- pythonScript.customScriptTask = task.id;
2089
- }
2090
- };
2091
- const processPhases = (phase, release, index)=>{
2092
- phase.type = PHASE_TYPE;
2093
- phase.id = `${release.id}/Phase${index}`;
2094
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(phase.tasks, (task, idx)=>{
2095
- processTasks(task, phase, idx);
2096
- });
2097
- };
2098
- const getVariableEntity = (value, key, containerId, index, password)=>{
2099
- const keyNoSyntax = key.replace("${", "").replace("}", "");
2100
- return {
2101
- id: `${containerId}/Variable${index}`,
2102
- key: keyNoSyntax,
2103
- requiresValue: true,
2104
- showOnReleaseStart: true,
2105
- type: password ? "xlrelease.PasswordStringVariable" : "xlrelease.StringVariable",
2106
- value: value
2107
- };
2108
- };
2109
- const getValueProviderConfigurationEntity = function(containerId) {
2110
- return {
2111
- id: `${containerId}/valueProvider`,
2112
- variable: containerId
2113
- };
2114
- };
2115
- const getDashboardExtension = (dashboard, releaseId)=>{
2116
- const dashboardExtension = {
2117
- id: `${releaseId}/summary`,
2118
- type: DASHBOARD_TYPE,
2119
- tiles: []
2120
- };
2121
- if (dashboard.tiles) (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(dashboard.tiles, function(tile, index) {
2122
- dashboardExtension.tiles.push(getTileEntity(tile, `${releaseId}/summary`, index));
2123
- });
2124
- return dashboardExtension;
2125
- };
2126
- function getTileEntity(tile, containerId, index) {
2127
- tile.id = tile.id || `${containerId}/Tile${index}`;
2128
- return tile;
2351
+ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
2352
+ constructor(page){
2353
+ this.page = page;
2354
+ this.releasePage = new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(page);
2355
+ this.settingsMenu = new (0, $7867194f18360347$export$1d7840d5cdc861d5)(page);
2356
+ this.usersPage = new (0, $3ceab7c613cabfd6$export$107317390f5aa598)(page);
2357
+ this.applicationPage = new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(page);
2358
+ this.taskDetailsPage = new (0, $a642d735048996f9$export$922081b54f2ab994)(page);
2129
2359
  }
2130
- return function(release) {
2131
- release.type = RELEASE_TYPE;
2132
- if (release.id.indexOf("Applications/") === -1) release.id = `Applications/${release.id}`;
2133
- if (release.startDate) release.queryableStartDate = release.startDate;
2134
- else if (release.scheduledStartDate) release.queryableStartDate = release.scheduledStartDate;
2135
- if (release.endDate) release.queryableEndDate = release.endDate;
2136
- else if (release.dueDate) release.queryableEndDate = release.dueDate;
2137
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(release.owner)) release.owner = "Itchy"; // default release manager
2138
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.phases, function(phase, index) {
2139
- processPhases(phase, release, index);
2140
- });
2141
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.teams, function(team, index) {
2142
- team.type = TEAM_TYPE;
2143
- team.id = `${release.id}/Team${index}`;
2144
- });
2145
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.attachments, function(attachment, index) {
2146
- attachment.type = ATTACHMENT_TYPE;
2147
- attachment.id = `${release.id}/Attachment${index}`;
2148
- });
2149
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.variables, function(variable, index) {
2150
- (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, release.id, index));
2151
- if (variable.valueProvider) (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));
2152
- });
2153
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.variableValues), function(keyValue, index) {
2154
- if (!release.variables) release.variables = [];
2155
- release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1000 + index));
2156
- release.variableValues = undefined;
2157
- });
2158
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.passwordVariableValues), function(keyValue, index) {
2159
- if (!release.variables) release.variables = [];
2160
- release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1500 + index, true));
2161
- release.passwordVariableValues = undefined;
2162
- });
2163
- if (release.summary) {
2164
- release.extensions = [
2165
- getDashboardExtension(release.summary, release.id)
2166
- ];
2167
- release.summary = undefined;
2168
- }
2169
- };
2170
- }();
2360
+ async openTemplate(id) {
2361
+ return this.openReleaseOrTemplate(id, false);
2362
+ }
2363
+ async openRelease(id) {
2364
+ return this.openReleaseOrTemplate(id, true);
2365
+ }
2366
+ async openApplicationsPage() {
2367
+ return new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(this.page).goToApplicationsPage();
2368
+ }
2369
+ async openPersonalAccessTokenPage() {
2370
+ return new (0, $be4dd73206d8e76b$export$3cac5fd37ae64b91)(this.page).openPersonalAccessTokenPage();
2371
+ }
2372
+ async gotoFolderPage() {
2373
+ await this.page.getByText("Folders").click();
2374
+ }
2375
+ async gotoTaskPage() {
2376
+ await this.page.getByTestId("sideNav-item-3").getByText("Tasks").click();
2377
+ }
2378
+ async gotoReleasePage() {
2379
+ await this.page.getByText("Releases").click();
2380
+ }
2381
+ async gotoWorkflowCatalogPage() {
2382
+ await this.page.getByText("Workflow catalog").click();
2383
+ }
2384
+ async gotoWorkflowsPage() {
2385
+ await this.page.getByTestId("sideNav-item-6").getByText("Workflows").click();
2386
+ }
2387
+ async gotoGroupsPage() {
2388
+ await this.page.getByText("Groups").click();
2389
+ }
2390
+ async gotoReleaseCalenderPage() {
2391
+ await this.page.getByText("Release calendar").click();
2392
+ }
2393
+ async gotoDeliveriesPage() {
2394
+ await this.page.getByText("Deliveries").click();
2395
+ }
2396
+ async gotoTriggersPage() {
2397
+ await this.page.getByText("Triggers").click();
2398
+ }
2399
+ async gotoDigitalAnalyticsPage() {
2400
+ await this.page.getByText("Digital.ai Analytics").click();
2401
+ }
2402
+ async gotoReportsPage() {
2403
+ await this.page.getByText("Reports").click();
2404
+ }
2405
+ async gotoTemplatesPage() {
2406
+ await this.page.getByText("Templates").click();
2407
+ }
2408
+ async gotoEnvironmentsPage() {
2409
+ await this.page.getByText("Environments").click();
2410
+ }
2411
+ async gotoEnvironmentsCalenderPage() {
2412
+ await this.page.getByText("Environments calendar").click();
2413
+ }
2414
+ async gotoGobalVariablesPage() {
2415
+ await this.page.getByText("Global variables").click();
2416
+ }
2417
+ async gotoConnectionsPage() {
2418
+ await this.page.getByText("Connections").click();
2419
+ }
2420
+ async openReleaseOrTemplate(id, release) {
2421
+ const url = release ? "releases" : "templates";
2422
+ await this.page.goto(`./#/${url}/${id}`);
2423
+ await this.page.waitForSelector("#release");
2424
+ return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
2425
+ }
2426
+ }
2171
2427
 
2172
2428
 
2173
2429
 
@@ -2183,20 +2439,10 @@ const $6998c6a53a9eb4fa$export$e0969da9b8fb378d = (0, $kKeXs$playwrighttest.test
2183
2439
  return fixtures;
2184
2440
  },
2185
2441
  loginPage: async ({ page: page }, use)=>{
2186
- const loginPage = new (0, $9a16c8a1280a99a0$export$f14c0e3f98d164c0)(page);
2442
+ const loginPage = new (0, $258749e0671c845a$export$f14c0e3f98d164c0)(page);
2187
2443
  await use(loginPage);
2188
2444
  return loginPage;
2189
2445
  },
2190
- applicationPage: async ({ page: page }, use)=>{
2191
- const applicationPage = new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(page);
2192
- await use(applicationPage);
2193
- return applicationPage;
2194
- },
2195
- personalAccessTokenPage: async ({ page: page }, use)=>{
2196
- const personalAccessTokenPage = new (0, $be4dd73206d8e76b$export$3cac5fd37ae64b91)(page);
2197
- await use(personalAccessTokenPage);
2198
- return personalAccessTokenPage;
2199
- },
2200
2446
  navigation: async ({ page: page }, use)=>{
2201
2447
  const navigationPage = new (0, $4ef41cf96a5fae4c$export$b8a61e5c71402559)(page);
2202
2448
  await use(navigationPage);
@@ -2207,6 +2453,8 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2207
2453
  releaseIds = [];
2208
2454
  triggerIds = [];
2209
2455
  configurationIds = [];
2456
+ usernames = [];
2457
+ userProfiles = [];
2210
2458
  constructor(request, page){
2211
2459
  this.request = request;
2212
2460
  this.page = page;
@@ -2252,9 +2500,13 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2252
2500
  for (const releaseId of this.releaseIds.reverse())promises.push(this.deleteRelease(releaseId));
2253
2501
  for (const triggerId of this.triggerIds)promises.push(this.deleteTrigger(triggerId));
2254
2502
  for (const confId of this.configurationIds)promises.push(this.deleteConfiguration(confId));
2503
+ for (const usernames of this.usernames)promises.push(this.deleteUser(usernames));
2504
+ for (const userProfiles of this.userProfiles)promises.push(this.deleteUserProfile(userProfiles));
2255
2505
  this.releaseIds = [];
2256
2506
  this.triggerIds = [];
2257
2507
  this.configurationIds = [];
2508
+ this.usernames = [];
2509
+ this.userProfiles = [];
2258
2510
  return Promise.all(promises);
2259
2511
  }
2260
2512
  async waitForReleaseStarted(releaseTitle) {
@@ -2304,6 +2556,27 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2304
2556
  }
2305
2557
  ]);
2306
2558
  }
2559
+ async addUser(username, password) {
2560
+ this.usernames.push(username);
2561
+ return await this.doPost("fixtures/user", {
2562
+ username: username,
2563
+ password: password
2564
+ });
2565
+ }
2566
+ async addUserProfile(username, profile) {
2567
+ if (!profile) profile = {};
2568
+ profile.id = username;
2569
+ profile.type = "xlrelease.UserProfile";
2570
+ profile.canonicalId = username.toLowerCase();
2571
+ this.userProfiles.push(profile.canonicalId);
2572
+ return await this.doPost("fixtures/userProfile", profile);
2573
+ }
2574
+ async deleteUser(username) {
2575
+ return await this.request.delete(`fixtures/user/${username}`);
2576
+ }
2577
+ async deleteUserProfile(username) {
2578
+ return await this.request.delete(`fixtures/userProfile/${username}`);
2579
+ }
2307
2580
  doPost(url, body) {
2308
2581
  return this.request.post(url, {
2309
2582
  data: body,