@digital-ai/devops-page-object-release 0.0.7 → 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,1233 +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
 
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;
1275
1234
 
1276
1235
 
1277
- class $dc91ece6da6cadfa$export$1533b625ec0c75e2 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1278
- async goToApplicationsPage() {
1279
- await this.page.goto("./#/applications");
1280
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Applications - Digital.ai Release");
1281
- return this;
1282
- }
1283
- async addNewApplication(applicationName) {
1284
- await this.page.locator(`//button[normalize-space()='New application']`).click();
1285
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1286
- await this.page.locator(`//button[normalize-space()='Save']`).click();
1287
- return this;
1288
- }
1289
- async verifyApplicationisCreated(applicationName) {
1290
- await this.page.waitForSelector(`div[title='${applicationName}'] strong`);
1291
- return this;
1292
- }
1293
- async createApplicationAndLinkEnvironment(environmentName, applicationName) {
1294
- await this.page.locator(`//button[normalize-space()='New application']`).click();
1295
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1296
- await this.page.locator("input[placeholder='Filter environment name...']").type(environmentName);
1297
- await this.page.locator(`div[title='${environmentName}']`).click();
1298
- await this.page.locator(`//button[normalize-space()='Save']`).click();
1299
- await this.page.locator("i.xl-icon.close-icon").click();
1300
- return this;
1301
- }
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 + "");
1302
1245
  }
1246
+ $b1535b4ce0d1bd5f$exports = $b1535b4ce0d1bd5f$var$baseRest;
1303
1247
 
1304
1248
 
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;
1283
+ }
1284
+ $ceebddaa7160689c$exports = $ceebddaa7160689c$var$eq;
1305
1285
 
1306
1286
 
1307
- class $be4dd73206d8e76b$export$3cac5fd37ae64b91 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1308
- async openPersonalAccessTokenPage() {
1309
- // await this.page.locator("button.dot-avatar").click()
1310
- // await this.page.locator("//div[normalize-space()='Access tokens']").click()
1311
- await this.page.goto("./#/personal-access-token");
1312
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Access tokens / Personal settings - Digital.ai Release");
1313
- return this;
1314
- }
1315
- async addNewToken(tokenName) {
1316
- //await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release')
1317
- await this.page.locator("#tokenText").fill(tokenName);
1318
- await this.page.locator("button[type='submit']").click();
1319
- return this;
1320
- }
1321
- }
1287
+ var $e084f044678f4365$exports = {};
1322
1288
 
1323
1289
 
1324
- class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
1325
- constructor(page){
1326
- this.page = page;
1327
- }
1328
- async openTemplate(id) {
1329
- return this.openReleaseOrTemplate(id, false);
1330
- }
1331
- async openRelease(id) {
1332
- return this.openReleaseOrTemplate(id, true);
1333
- }
1334
- async openApplicationsPage() {
1335
- return new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(this.page).goToApplicationsPage();
1336
- }
1337
- async openPersonalAccessTokenPage() {
1338
- return new (0, $be4dd73206d8e76b$export$3cac5fd37ae64b91)(this.page).openPersonalAccessTokenPage();
1339
- }
1340
- async openReleaseOrTemplate(id, release) {
1341
- const url = release ? "releases" : "templates";
1342
- await this.page.goto(`./#/${url}/${id}`);
1343
- await this.page.waitForSelector("#release");
1344
- return new (0, $fcbf42f405a34f2e$export$f43492e8ac3c566)(this.page);
1345
- }
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;
1346
1309
  }
1310
+ $e084f044678f4365$exports = $e084f044678f4365$var$isIterateeCall;
1347
1311
 
1348
1312
 
1313
+ var $0e6e2e34ec44a72a$exports = {};
1349
1314
 
1315
+ var $gYWmw = parcelRequire("gYWmw");
1316
+ var $b4b8b2a977b4cc10$exports = {};
1350
1317
 
1351
- class $9a16c8a1280a99a0$export$f14c0e3f98d164c0 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1352
- async login(userName, password) {
1353
- await this.page.goto("./");
1354
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Digital.ai Release");
1355
- await this.page.locator("#inputLogin").fill(userName);
1356
- await this.page.locator("#inputPassword").fill(password);
1357
- await this.page.locator("button[type='submit']").click();
1358
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#releases-content")).toBeVisible();
1359
- }
1360
- async logout() {
1361
- await this.page.locator("button.dot-avatar").click();
1362
- await this.page.getByText("Log out").click();
1363
- }
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;
1364
1334
  }
1335
+ $59b6e790ee7519e4$exports = $59b6e790ee7519e4$var$nativeKeysIn;
1365
1336
 
1366
1337
 
1367
- 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;
1368
1340
  /**
1369
- * 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.
1370
1361
  *
1371
1362
  * @static
1372
- * @since 0.1.0
1373
1363
  * @memberOf _
1374
- * @category Lang
1375
- * @param {*} value The value to check.
1376
- * @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.
1377
1368
  * @example
1378
1369
  *
1379
- * _.isUndefined(void 0);
1380
- * // => true
1370
+ * function Foo() {
1371
+ * this.a = 1;
1372
+ * this.b = 2;
1373
+ * }
1381
1374
  *
1382
- * _.isUndefined(null);
1383
- * // => false
1384
- */ function $3e8b520187e41aa6$var$isUndefined(value) {
1385
- 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);
1386
1381
  }
1387
- $3e8b520187e41aa6$exports = $3e8b520187e41aa6$var$isUndefined;
1388
-
1389
-
1390
- var $952a2b8d8056b381$exports = {};
1391
-
1392
- $952a2b8d8056b381$exports = (parcelRequire("ae8Uz"));
1382
+ $0e6e2e34ec44a72a$exports = $0e6e2e34ec44a72a$var$keysIn;
1393
1383
 
1394
1384
 
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;
1387
+ /**
1388
+ * Assigns own and inherited enumerable string keyed properties of source
1389
+ * objects to the destination object for all destination properties that
1390
+ * resolve to `undefined`. Source objects are applied from left to right.
1391
+ * Once a property is set, additional values of the same property are ignored.
1392
+ *
1393
+ * **Note:** This method mutates `object`.
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
+ }
1423
+ }
1424
+ return object;
1425
+ });
1426
+ $732eba8dca8b5420$exports = $732eba8dca8b5420$var$defaults;
1395
1427
 
1396
- var $ae8Uz = parcelRequire("ae8Uz");
1397
- var $732eba8dca8b5420$exports = {};
1398
- var $b1535b4ce0d1bd5f$exports = {};
1399
1428
 
1400
- var $9x2D6 = parcelRequire("9x2D6");
1401
- var $1b1aa0f3fc7256c9$exports = {};
1402
- var $f984f14b3d4f0683$exports = {};
1429
+ var $f51969c4a7467fa0$exports = {};
1430
+ var $acbd35b1cbbf33e4$exports = {};
1431
+ var $34482bf0fdb87aa6$exports = {};
1432
+ var $c258ac491a64b22b$exports = {};
1403
1433
  /**
1404
- * A faster alternative to `Function#apply`, this function invokes `func`
1405
- * with the `this` binding of `thisArg` and the arguments of `args`.
1434
+ * A specialized version of `_.map` for arrays without support for iteratee
1435
+ * shorthands.
1406
1436
  *
1407
1437
  * @private
1408
- * @param {Function} func The function to invoke.
1409
- * @param {*} thisArg The `this` binding of `func`.
1410
- * @param {Array} args The arguments to invoke `func` with.
1411
- * @returns {*} Returns the result of `func`.
1412
- */ function $f984f14b3d4f0683$var$apply(func, thisArg, args) {
1413
- switch(args.length){
1414
- case 0:
1415
- return func.call(thisArg);
1416
- case 1:
1417
- return func.call(thisArg, args[0]);
1418
- case 2:
1419
- return func.call(thisArg, args[0], args[1]);
1420
- case 3:
1421
- return func.call(thisArg, args[0], args[1], args[2]);
1422
- }
1423
- return func.apply(thisArg, args);
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;
1424
1445
  }
1425
- $f984f14b3d4f0683$exports = $f984f14b3d4f0683$var$apply;
1446
+ $c258ac491a64b22b$exports = $c258ac491a64b22b$var$arrayMap;
1426
1447
 
1427
1448
 
1428
- /* Built-in method references for those with the same name as other `lodash` methods. */ var $1b1aa0f3fc7256c9$var$nativeMax = Math.max;
1429
1449
  /**
1430
- * A specialized version of `baseRest` which transforms the rest array.
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`.
1431
1452
  *
1432
1453
  * @private
1433
- * @param {Function} func The function to apply a rest parameter to.
1434
- * @param {number} [start=func.length-1] The start position of the rest parameter.
1435
- * @param {Function} transform The rest array transform.
1436
- * @returns {Function} Returns the new function.
1437
- */ function $1b1aa0f3fc7256c9$var$overRest(func, start, transform) {
1438
- start = $1b1aa0f3fc7256c9$var$nativeMax(start === undefined ? func.length - 1 : start, 0);
1439
- return function() {
1440
- var args = arguments, index = -1, length = $1b1aa0f3fc7256c9$var$nativeMax(args.length - start, 0), array = Array(length);
1441
- while(++index < length)array[index] = args[start + index];
1442
- index = -1;
1443
- var otherArgs = Array(start + 1);
1444
- while(++index < start)otherArgs[index] = args[index];
1445
- otherArgs[start] = transform(array);
1446
- return $f984f14b3d4f0683$exports(func, this, otherArgs);
1447
- };
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
+ });
1448
1464
  }
1449
- $1b1aa0f3fc7256c9$exports = $1b1aa0f3fc7256c9$var$overRest;
1465
+ $34482bf0fdb87aa6$exports = $34482bf0fdb87aa6$var$baseToPairs;
1450
1466
 
1451
1467
 
1452
- var $0e9d1d7fde57dac1$exports = {};
1453
- var $ef9aec5e693cb6ed$exports = {};
1454
- var $3dc9802adab1dd60$exports = {};
1455
- /**
1456
- * Creates a function that returns `value`.
1457
- *
1458
- * @static
1459
- * @memberOf _
1460
- * @since 2.4.0
1461
- * @category Util
1462
- * @param {*} value The value to return from the new function.
1463
- * @returns {Function} Returns the new constant function.
1464
- * @example
1465
- *
1466
- * var objects = _.times(2, _.constant({ 'a': 1 }));
1467
- *
1468
- * console.log(objects);
1469
- * // => [{ 'a': 1 }, { 'a': 1 }]
1470
- *
1471
- * console.log(objects[0] === objects[1]);
1472
- * // => true
1473
- */ function $3dc9802adab1dd60$var$constant(value) {
1474
- return function() {
1475
- return value;
1476
- };
1477
- }
1478
- $3dc9802adab1dd60$exports = $3dc9802adab1dd60$var$constant;
1468
+ var $2184c74fd3b50571$exports = {};
1469
+ var $9707ed10f1d74f7d$exports = {};
1479
1470
 
1480
1471
 
1481
- var $97bac00047c338ed$exports = {};
1482
- var $b7745e89d7f5915f$exports = {};
1483
- var $927414f7f9d8afbb$exports = {};
1472
+ var $5iYlB = parcelRequire("5iYlB");
1473
+ /* Built-in method references that are verified to be native. */ var $9707ed10f1d74f7d$var$DataView = $b7745e89d7f5915f$exports($5iYlB, "DataView");
1474
+ $9707ed10f1d74f7d$exports = $9707ed10f1d74f7d$var$DataView;
1475
+
1476
+
1477
+ var $8c4ecd35968046d6$exports = {};
1484
1478
 
1485
- var $7T6pQ = parcelRequire("7T6pQ");
1486
- var $1fb1799a04ee25ea$exports = {};
1487
- var $5ee1230bf1668e2a$exports = {};
1488
1479
 
1489
1480
  var $5iYlB = parcelRequire("5iYlB");
1490
- /** Used to detect overreaching core-js shims. */ var $5ee1230bf1668e2a$var$coreJsData = $5iYlB["__core-js_shared__"];
1491
- $5ee1230bf1668e2a$exports = $5ee1230bf1668e2a$var$coreJsData;
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;
1492
1483
 
1493
1484
 
1494
- /** Used to detect methods masquerading as native. */ var $1fb1799a04ee25ea$var$maskSrcKey = function() {
1495
- var uid = /[^.]+$/.exec($5ee1230bf1668e2a$exports && $5ee1230bf1668e2a$exports.keys && $5ee1230bf1668e2a$exports.keys.IE_PROTO || "");
1496
- return uid ? "Symbol(src)_1." + uid : "";
1497
- }();
1498
- /**
1499
- * Checks if `func` has its source masked.
1500
- *
1501
- * @private
1502
- * @param {Function} func The function to check.
1503
- * @returns {boolean} Returns `true` if `func` is masked, else `false`.
1504
- */ function $1fb1799a04ee25ea$var$isMasked(func) {
1505
- return !!$1fb1799a04ee25ea$var$maskSrcKey && $1fb1799a04ee25ea$var$maskSrcKey in func;
1506
- }
1507
- $1fb1799a04ee25ea$exports = $1fb1799a04ee25ea$var$isMasked;
1485
+ var $30f4d64ddd8effd1$exports = {};
1508
1486
 
1509
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;
1510
1491
 
1511
- var $bfk90 = parcelRequire("bfk90");
1512
- var $c6de24274df36d4e$exports = {};
1513
- /** Used for built-in method references. */ var $c6de24274df36d4e$var$funcProto = Function.prototype;
1514
- /** Used to resolve the decompiled source of functions. */ var $c6de24274df36d4e$var$funcToString = $c6de24274df36d4e$var$funcProto.toString;
1515
- /**
1516
- * Converts `func` to its source code.
1517
- *
1518
- * @private
1519
- * @param {Function} func The function to convert.
1520
- * @returns {string} Returns the source code.
1521
- */ function $c6de24274df36d4e$var$toSource(func) {
1522
- if (func != null) {
1523
- try {
1524
- return $c6de24274df36d4e$var$funcToString.call(func);
1525
- } catch (e) {}
1526
- try {
1527
- return func + "";
1528
- } catch (e) {}
1529
- }
1530
- return "";
1531
- }
1532
- $c6de24274df36d4e$exports = $c6de24274df36d4e$var$toSource;
1533
1492
 
1493
+ var $869474d4b330cc35$exports = {};
1534
1494
 
1535
- /**
1536
- * Used to match `RegExp`
1537
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
1538
- */ var $927414f7f9d8afbb$var$reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
1539
- /** Used to detect host constructors (Safari). */ var $927414f7f9d8afbb$var$reIsHostCtor = /^\[object .+?Constructor\]$/;
1540
- /** Used for built-in method references. */ var $927414f7f9d8afbb$var$funcProto = Function.prototype, $927414f7f9d8afbb$var$objectProto = Object.prototype;
1541
- /** Used to resolve the decompiled source of functions. */ var $927414f7f9d8afbb$var$funcToString = $927414f7f9d8afbb$var$funcProto.toString;
1542
- /** Used to check objects for own properties. */ var $927414f7f9d8afbb$var$hasOwnProperty = $927414f7f9d8afbb$var$objectProto.hasOwnProperty;
1543
- /** 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.*?") + "$");
1544
- /**
1545
- * The base implementation of `_.isNative` without bad shim checks.
1546
- *
1547
- * @private
1548
- * @param {*} value The value to check.
1549
- * @returns {boolean} Returns `true` if `value` is a native function,
1550
- * else `false`.
1551
- */ function $927414f7f9d8afbb$var$baseIsNative(value) {
1552
- if (!$bfk90(value) || $1fb1799a04ee25ea$exports(value)) return false;
1553
- var pattern = $7T6pQ(value) ? $927414f7f9d8afbb$var$reIsNative : $927414f7f9d8afbb$var$reIsHostCtor;
1554
- return pattern.test($c6de24274df36d4e$exports(value));
1555
- }
1556
- $927414f7f9d8afbb$exports = $927414f7f9d8afbb$var$baseIsNative;
1557
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;
1558
1499
 
1559
- var $18378a7c2aff899b$exports = {};
1560
- /**
1561
- * Gets the value at `key` of `object`.
1562
- *
1563
- * @private
1564
- * @param {Object} [object] The object to query.
1565
- * @param {string} key The key of the property to get.
1566
- * @returns {*} Returns the property value.
1567
- */ function $18378a7c2aff899b$var$getValue(object, key) {
1568
- return object == null ? undefined : object[key];
1569
- }
1570
- $18378a7c2aff899b$exports = $18378a7c2aff899b$var$getValue;
1571
1500
 
1501
+ var $c4df061ad36170d9$exports = {};
1572
1502
 
1573
- /**
1574
- * Gets the native function at `key` of `object`.
1575
- *
1576
- * @private
1577
- * @param {Object} object The object to query.
1578
- * @param {string} key The key of the method to get.
1579
- * @returns {*} Returns the function if it's native, else `undefined`.
1580
- */ function $b7745e89d7f5915f$var$getNative(object, key) {
1581
- var value = $18378a7c2aff899b$exports(object, key);
1582
- return $927414f7f9d8afbb$exports(value) ? value : undefined;
1583
- }
1584
- $b7745e89d7f5915f$exports = $b7745e89d7f5915f$var$getNative;
1585
1503
 
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;
1586
1507
 
1587
- var $97bac00047c338ed$var$defineProperty = function() {
1588
- try {
1589
- var func = $b7745e89d7f5915f$exports(Object, "defineProperty");
1590
- func({}, "", {});
1591
- return func;
1592
- } catch (e) {}
1593
- }();
1594
- $97bac00047c338ed$exports = $97bac00047c338ed$var$defineProperty;
1595
1508
 
1596
1509
 
1510
+ var $hi3Ib = parcelRequire("hi3Ib");
1597
1511
 
1598
- var $9x2D6 = parcelRequire("9x2D6");
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);
1599
1515
  /**
1600
- * The base implementation of `setToString` without support for hot loop shorting.
1516
+ * Gets the `toStringTag` of `value`.
1601
1517
  *
1602
1518
  * @private
1603
- * @param {Function} func The function to modify.
1604
- * @param {Function} string The `toString` result.
1605
- * @returns {Function} Returns `func`.
1606
- */ var $ef9aec5e693cb6ed$var$baseSetToString = !$97bac00047c338ed$exports ? $9x2D6 : function(func, string) {
1607
- return $97bac00047c338ed$exports(func, "toString", {
1608
- "configurable": true,
1609
- "enumerable": false,
1610
- "value": $3dc9802adab1dd60$exports(string),
1611
- "writable": true
1612
- });
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;
1613
1538
  };
1614
- $ef9aec5e693cb6ed$exports = $ef9aec5e693cb6ed$var$baseSetToString;
1539
+ $2184c74fd3b50571$exports = $2184c74fd3b50571$var$getTag;
1615
1540
 
1616
1541
 
1617
- var $f6a97849336ceea8$exports = {};
1618
- /** 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;
1619
- /* Built-in method references for those with the same name as other `lodash` methods. */ var $f6a97849336ceea8$var$nativeNow = Date.now;
1542
+ var $5cfa9b34443304aa$exports = {};
1620
1543
  /**
1621
- * Creates a function that'll short out and invoke `identity` instead
1622
- * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
1623
- * milliseconds.
1544
+ * Converts `map` to its key-value pairs.
1624
1545
  *
1625
1546
  * @private
1626
- * @param {Function} func The function to restrict.
1627
- * @returns {Function} Returns the new shortable function.
1628
- */ function $f6a97849336ceea8$var$shortOut(func) {
1629
- var count = 0, lastCalled = 0;
1630
- return function() {
1631
- var stamp = $f6a97849336ceea8$var$nativeNow(), remaining = $f6a97849336ceea8$var$HOT_SPAN - (stamp - lastCalled);
1632
- lastCalled = stamp;
1633
- if (remaining > 0) {
1634
- if (++count >= $f6a97849336ceea8$var$HOT_COUNT) return arguments[0];
1635
- } else count = 0;
1636
- return func.apply(undefined, arguments);
1637
- };
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;
1638
1558
  }
1639
- $f6a97849336ceea8$exports = $f6a97849336ceea8$var$shortOut;
1559
+ $5cfa9b34443304aa$exports = $5cfa9b34443304aa$var$mapToArray;
1640
1560
 
1641
1561
 
1562
+ var $e0efec8f59f2b46b$exports = {};
1642
1563
  /**
1643
- * Sets the `toString` method of `func` to return `string`.
1564
+ * Converts `set` to its value-value pairs.
1644
1565
  *
1645
1566
  * @private
1646
- * @param {Function} func The function to modify.
1647
- * @param {Function} string The `toString` result.
1648
- * @returns {Function} Returns `func`.
1649
- */ var $0e9d1d7fde57dac1$var$setToString = $f6a97849336ceea8$exports($ef9aec5e693cb6ed$exports);
1650
- $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;
1651
1580
 
1652
1581
 
1582
+ /** `Object#toString` result references. */ var $acbd35b1cbbf33e4$var$mapTag = "[object Map]", $acbd35b1cbbf33e4$var$setTag = "[object Set]";
1653
1583
  /**
1654
- * The base implementation of `_.rest` which doesn't validate or coerce arguments.
1584
+ * Creates a `_.toPairs` or `_.toPairsIn` function.
1655
1585
  *
1656
1586
  * @private
1657
- * @param {Function} func The function to apply a rest parameter to.
1658
- * @param {number} [start=func.length-1] The start position of the rest parameter.
1659
- * @returns {Function} Returns the new function.
1660
- */ function $b1535b4ce0d1bd5f$var$baseRest(func, start) {
1661
- 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
+ };
1662
1596
  }
1663
- $b1535b4ce0d1bd5f$exports = $b1535b4ce0d1bd5f$var$baseRest;
1597
+ $acbd35b1cbbf33e4$exports = $acbd35b1cbbf33e4$var$createToPairs;
1664
1598
 
1665
1599
 
1666
- var $ceebddaa7160689c$exports = {};
1600
+
1601
+ var $bqLSx = parcelRequire("bqLSx");
1667
1602
  /**
1668
- * Performs a
1669
- * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
1670
- * 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.
1671
1606
  *
1672
1607
  * @static
1673
1608
  * @memberOf _
1674
1609
  * @since 4.0.0
1675
- * @category Lang
1676
- * @param {*} value The value to compare.
1677
- * @param {*} other The other value to compare.
1678
- * @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.
1679
1614
  * @example
1680
1615
  *
1681
- * var object = { 'a': 1 };
1682
- * var other = { 'a': 1 };
1683
- *
1684
- * _.eq(object, object);
1685
- * // => true
1686
- *
1687
- * _.eq(object, other);
1688
- * // => false
1689
- *
1690
- * _.eq('a', 'a');
1691
- * // => true
1616
+ * function Foo() {
1617
+ * this.a = 1;
1618
+ * this.b = 2;
1619
+ * }
1692
1620
  *
1693
- * _.eq('a', Object('a'));
1694
- * // => false
1621
+ * Foo.prototype.c = 3;
1695
1622
  *
1696
- * _.eq(NaN, NaN);
1697
- * // => true
1698
- */ function $ceebddaa7160689c$var$eq(value, other) {
1699
- return value === other || value !== value && other !== other;
1700
- }
1701
- $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;
1702
1627
 
1703
1628
 
1704
- 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
+ }();
1705
1760
 
1706
1761
 
1707
- var $fegcS = parcelRequire("fegcS");
1708
1762
 
1709
- var $gf9YK = parcelRequire("gf9YK");
1763
+ class $f8721861c660dd88$export$2b65d1d97338f32b {
1764
+ constructor(page){
1765
+ this.page = page;
1766
+ }
1767
+ }
1710
1768
 
1711
- var $bfk90 = parcelRequire("bfk90");
1712
- /**
1713
- * Checks if the given arguments are from an iteratee call.
1714
- *
1715
- * @private
1716
- * @param {*} value The potential iteratee value argument.
1717
- * @param {*} index The potential iteratee index or key argument.
1718
- * @param {*} object The potential iteratee object argument.
1719
- * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
1720
- * else `false`.
1721
- */ function $e084f044678f4365$var$isIterateeCall(value, index, object) {
1722
- if (!$bfk90(object)) return false;
1723
- var type = typeof index;
1724
- if (type == "number" ? $fegcS(object) && $gf9YK(index, object.length) : type == "string" && index in object) return $ceebddaa7160689c$exports(object[index], value);
1725
- 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
+ }
1726
1802
  }
1727
- $e084f044678f4365$exports = $e084f044678f4365$var$isIterateeCall;
1728
1803
 
1729
1804
 
1730
- var $0e6e2e34ec44a72a$exports = {};
1731
1805
 
1732
- var $gYWmw = parcelRequire("gYWmw");
1733
- var $b4b8b2a977b4cc10$exports = {};
1734
1806
 
1735
- var $bfk90 = parcelRequire("bfk90");
1736
1807
 
1737
- var $cjTq2 = parcelRequire("cjTq2");
1738
- var $59b6e790ee7519e4$exports = {};
1739
- /**
1740
- * This function is like
1741
- * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
1742
- * except that it includes inherited enumerable properties.
1743
- *
1744
- * @private
1745
- * @param {Object} object The object to query.
1746
- * @returns {Array} Returns the array of property names.
1747
- */ function $59b6e790ee7519e4$var$nativeKeysIn(object) {
1748
- var result = [];
1749
- if (object != null) for(var key in Object(object))result.push(key);
1750
- return result;
1751
- }
1752
- $59b6e790ee7519e4$exports = $59b6e790ee7519e4$var$nativeKeysIn;
1753
1808
 
1754
1809
 
1755
- /** Used for built-in method references. */ var $b4b8b2a977b4cc10$var$objectProto = Object.prototype;
1756
- /** Used to check objects for own properties. */ var $b4b8b2a977b4cc10$var$hasOwnProperty = $b4b8b2a977b4cc10$var$objectProto.hasOwnProperty;
1757
- /**
1758
- * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
1759
- *
1760
- * @private
1761
- * @param {Object} object The object to query.
1762
- * @returns {Array} Returns the array of property names.
1763
- */ function $b4b8b2a977b4cc10$var$baseKeysIn(object) {
1764
- if (!$bfk90(object)) return $59b6e790ee7519e4$exports(object);
1765
- var isProto = $cjTq2(object), result = [];
1766
- for(var key in object)if (!(key == "constructor" && (isProto || !$b4b8b2a977b4cc10$var$hasOwnProperty.call(object, key)))) result.push(key);
1767
- 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
+ }
1768
1821
  }
1769
- $b4b8b2a977b4cc10$exports = $b4b8b2a977b4cc10$var$baseKeysIn;
1770
1822
 
1771
1823
 
1772
1824
 
1773
- var $fegcS = parcelRequire("fegcS");
1774
- /**
1775
- * Creates an array of the own and inherited enumerable property names of `object`.
1776
- *
1777
- * **Note:** Non-object values are coerced to objects.
1778
- *
1779
- * @static
1780
- * @memberOf _
1781
- * @since 3.0.0
1782
- * @category Object
1783
- * @param {Object} object The object to query.
1784
- * @returns {Array} Returns the array of property names.
1785
- * @example
1786
- *
1787
- * function Foo() {
1788
- * this.a = 1;
1789
- * this.b = 2;
1790
- * }
1791
- *
1792
- * Foo.prototype.c = 3;
1793
- *
1794
- * _.keysIn(new Foo);
1795
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
1796
- */ function $0e6e2e34ec44a72a$var$keysIn(object) {
1797
- 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
+ }
1798
1841
  }
1799
- $0e6e2e34ec44a72a$exports = $0e6e2e34ec44a72a$var$keysIn;
1800
1842
 
1801
1843
 
1802
- /** Used for built-in method references. */ var $732eba8dca8b5420$var$objectProto = Object.prototype;
1803
- /** Used to check objects for own properties. */ var $732eba8dca8b5420$var$hasOwnProperty = $732eba8dca8b5420$var$objectProto.hasOwnProperty;
1804
- /**
1805
- * Assigns own and inherited enumerable string keyed properties of source
1806
- * objects to the destination object for all destination properties that
1807
- * resolve to `undefined`. Source objects are applied from left to right.
1808
- * Once a property is set, additional values of the same property are ignored.
1809
- *
1810
- * **Note:** This method mutates `object`.
1811
- *
1812
- * @static
1813
- * @since 0.1.0
1814
- * @memberOf _
1815
- * @category Object
1816
- * @param {Object} object The destination object.
1817
- * @param {...Object} [sources] The source objects.
1818
- * @returns {Object} Returns `object`.
1819
- * @see _.defaultsDeep
1820
- * @example
1821
- *
1822
- * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
1823
- * // => { 'a': 1, 'b': 2 }
1824
- */ var $732eba8dca8b5420$var$defaults = $b1535b4ce0d1bd5f$exports(function(object, sources) {
1825
- object = Object(object);
1826
- var index = -1;
1827
- var length = sources.length;
1828
- var guard = length > 2 ? sources[2] : undefined;
1829
- if (guard && $e084f044678f4365$exports(sources[0], sources[1], guard)) length = 1;
1830
- while(++index < length){
1831
- var source = sources[index];
1832
- var props = $0e6e2e34ec44a72a$exports(source);
1833
- var propsIndex = -1;
1834
- var propsLength = props.length;
1835
- while(++propsIndex < propsLength){
1836
- var key = props[propsIndex];
1837
- var value = object[key];
1838
- if (value === undefined || $ceebddaa7160689c$exports(value, $732eba8dca8b5420$var$objectProto[key]) && !$732eba8dca8b5420$var$hasOwnProperty.call(object, key)) object[key] = source[key];
1839
- }
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");
1840
1865
  }
1841
- return object;
1842
- });
1843
- $732eba8dca8b5420$exports = $732eba8dca8b5420$var$defaults;
1866
+ return resolvedLocator;
1867
+ }
1844
1868
 
1845
1869
 
1846
- var $f51969c4a7467fa0$exports = {};
1847
- var $acbd35b1cbbf33e4$exports = {};
1848
- var $34482bf0fdb87aa6$exports = {};
1849
- var $c258ac491a64b22b$exports = {};
1850
- /**
1851
- * A specialized version of `_.map` for arrays without support for iteratee
1852
- * shorthands.
1853
- *
1854
- * @private
1855
- * @param {Array} [array] The array to iterate over.
1856
- * @param {Function} iteratee The function invoked per iteration.
1857
- * @returns {Array} Returns the new mapped array.
1858
- */ function $c258ac491a64b22b$var$arrayMap(array, iteratee) {
1859
- var index = -1, length = array == null ? 0 : array.length, result = Array(length);
1860
- while(++index < length)result[index] = iteratee(array[index], index, array);
1861
- 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
+ }
1862
1906
  }
1863
- $c258ac491a64b22b$exports = $c258ac491a64b22b$var$arrayMap;
1864
1907
 
1865
1908
 
1866
- /**
1867
- * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
1868
- * of key-value pairs for `object` corresponding to the property names of `props`.
1869
- *
1870
- * @private
1871
- * @param {Object} object The object to query.
1872
- * @param {Array} props The property names to get values for.
1873
- * @returns {Object} Returns the key-value pairs.
1874
- */ function $34482bf0fdb87aa6$var$baseToPairs(object, props) {
1875
- return $c258ac491a64b22b$exports(props, function(key) {
1876
- return [
1877
- key,
1878
- object[key]
1879
- ];
1880
- });
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
+ }
1881
1965
  }
1882
- $34482bf0fdb87aa6$exports = $34482bf0fdb87aa6$var$baseToPairs;
1883
-
1884
-
1885
- var $2184c74fd3b50571$exports = {};
1886
- var $9707ed10f1d74f7d$exports = {};
1887
1966
 
1888
1967
 
1889
- var $5iYlB = parcelRequire("5iYlB");
1890
- /* Built-in method references that are verified to be native. */ var $9707ed10f1d74f7d$var$DataView = $b7745e89d7f5915f$exports($5iYlB, "DataView");
1891
- $9707ed10f1d74f7d$exports = $9707ed10f1d74f7d$var$DataView;
1892
1968
 
1893
1969
 
1894
- var $8c4ecd35968046d6$exports = {};
1895
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
+ }
1896
1994
 
1897
- var $5iYlB = parcelRequire("5iYlB");
1898
- /* Built-in method references that are verified to be native. */ var $8c4ecd35968046d6$var$Map = $b7745e89d7f5915f$exports($5iYlB, "Map");
1899
- $8c4ecd35968046d6$exports = $8c4ecd35968046d6$var$Map;
1900
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
+ }
1901
2054
 
1902
- var $30f4d64ddd8effd1$exports = {};
1903
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
+ }
1904
2180
 
1905
- var $5iYlB = parcelRequire("5iYlB");
1906
- /* Built-in method references that are verified to be native. */ var $30f4d64ddd8effd1$var$Promise = $b7745e89d7f5915f$exports($5iYlB, "Promise");
1907
- $30f4d64ddd8effd1$exports = $30f4d64ddd8effd1$var$Promise;
1908
2181
 
1909
2182
 
1910
- var $869474d4b330cc35$exports = {};
1911
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
+ }
1912
2210
 
1913
- var $5iYlB = parcelRequire("5iYlB");
1914
- /* Built-in method references that are verified to be native. */ var $869474d4b330cc35$var$Set = $b7745e89d7f5915f$exports($5iYlB, "Set");
1915
- $869474d4b330cc35$exports = $869474d4b330cc35$var$Set;
1916
2211
 
1917
2212
 
1918
- var $c4df061ad36170d9$exports = {};
1919
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
+ }
1920
2229
 
1921
- var $5iYlB = parcelRequire("5iYlB");
1922
- /* Built-in method references that are verified to be native. */ var $c4df061ad36170d9$var$WeakMap = $b7745e89d7f5915f$exports($5iYlB, "WeakMap");
1923
- $c4df061ad36170d9$exports = $c4df061ad36170d9$var$WeakMap;
1924
2230
 
1925
2231
 
1926
2232
 
1927
- var $hi3Ib = parcelRequire("hi3Ib");
1928
2233
 
1929
- /** `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]";
1930
- var $2184c74fd3b50571$var$dataViewTag = "[object DataView]";
1931
- /** 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);
1932
- /**
1933
- * Gets the `toStringTag` of `value`.
1934
- *
1935
- * @private
1936
- * @param {*} value The value to query.
1937
- * @returns {string} Returns the `toStringTag`.
1938
- */ var $2184c74fd3b50571$var$getTag = $hi3Ib;
1939
- // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
1940
- 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) {
1941
- var result = $hi3Ib(value), Ctor = result == $2184c74fd3b50571$var$objectTag ? value.constructor : undefined, ctorString = Ctor ? $c6de24274df36d4e$exports(Ctor) : "";
1942
- if (ctorString) switch(ctorString){
1943
- case $2184c74fd3b50571$var$dataViewCtorString:
1944
- return $2184c74fd3b50571$var$dataViewTag;
1945
- case $2184c74fd3b50571$var$mapCtorString:
1946
- return $2184c74fd3b50571$var$mapTag;
1947
- case $2184c74fd3b50571$var$promiseCtorString:
1948
- return $2184c74fd3b50571$var$promiseTag;
1949
- case $2184c74fd3b50571$var$setCtorString:
1950
- return $2184c74fd3b50571$var$setTag;
1951
- case $2184c74fd3b50571$var$weakMapCtorString:
1952
- 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();
1953
2275
  }
1954
- return result;
1955
- };
1956
- $2184c74fd3b50571$exports = $2184c74fd3b50571$var$getTag;
1957
-
1958
-
1959
- var $5cfa9b34443304aa$exports = {};
1960
- /**
1961
- * Converts `map` to its key-value pairs.
1962
- *
1963
- * @private
1964
- * @param {Object} map The map to convert.
1965
- * @returns {Array} Returns the key-value pairs.
1966
- */ function $5cfa9b34443304aa$var$mapToArray(map) {
1967
- var index = -1, result = Array(map.size);
1968
- map.forEach(function(value, key) {
1969
- result[++index] = [
1970
- key,
1971
- value
1972
- ];
1973
- });
1974
- return result;
1975
2276
  }
1976
- $5cfa9b34443304aa$exports = $5cfa9b34443304aa$var$mapToArray;
1977
2277
 
1978
2278
 
1979
- var $e0efec8f59f2b46b$exports = {};
1980
- /**
1981
- * Converts `set` to its value-value pairs.
1982
- *
1983
- * @private
1984
- * @param {Object} set The set to convert.
1985
- * @returns {Array} Returns the value-value pairs.
1986
- */ function $e0efec8f59f2b46b$var$setToPairs(set) {
1987
- var index = -1, result = Array(set.size);
1988
- set.forEach(function(value) {
1989
- result[++index] = [
1990
- value,
1991
- value
1992
- ];
1993
- });
1994
- 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
+ }
1995
2319
  }
1996
- $e0efec8f59f2b46b$exports = $e0efec8f59f2b46b$var$setToPairs;
1997
2320
 
1998
2321
 
1999
- /** `Object#toString` result references. */ var $acbd35b1cbbf33e4$var$mapTag = "[object Map]", $acbd35b1cbbf33e4$var$setTag = "[object Set]";
2000
- /**
2001
- * Creates a `_.toPairs` or `_.toPairsIn` function.
2002
- *
2003
- * @private
2004
- * @param {Function} keysFunc The function to get the keys of a given object.
2005
- * @returns {Function} Returns the new pairs function.
2006
- */ function $acbd35b1cbbf33e4$var$createToPairs(keysFunc) {
2007
- return function(object) {
2008
- var tag = $2184c74fd3b50571$exports(object);
2009
- if (tag == $acbd35b1cbbf33e4$var$mapTag) return $5cfa9b34443304aa$exports(object);
2010
- if (tag == $acbd35b1cbbf33e4$var$setTag) return $e0efec8f59f2b46b$exports(object);
2011
- return $34482bf0fdb87aa6$exports(object, keysFunc(object));
2012
- };
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
+ }
2013
2340
  }
2014
- $acbd35b1cbbf33e4$exports = $acbd35b1cbbf33e4$var$createToPairs;
2015
2341
 
2016
2342
 
2017
2343
 
2018
- var $bqLSx = parcelRequire("bqLSx");
2019
- /**
2020
- * Creates an array of own enumerable string keyed-value pairs for `object`
2021
- * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
2022
- * entries are returned.
2023
- *
2024
- * @static
2025
- * @memberOf _
2026
- * @since 4.0.0
2027
- * @alias entries
2028
- * @category Object
2029
- * @param {Object} object The object to query.
2030
- * @returns {Array} Returns the key-value pairs.
2031
- * @example
2032
- *
2033
- * function Foo() {
2034
- * this.a = 1;
2035
- * this.b = 2;
2036
- * }
2037
- *
2038
- * Foo.prototype.c = 3;
2039
- *
2040
- * _.toPairs(new Foo);
2041
- * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
2042
- */ var $f51969c4a7467fa0$var$toPairs = $acbd35b1cbbf33e4$exports($bqLSx);
2043
- $f51969c4a7467fa0$exports = $f51969c4a7467fa0$var$toPairs;
2344
+ class $a642d735048996f9$export$922081b54f2ab994 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2345
+ constructor(page){
2346
+ super(page);
2347
+ }
2348
+ }
2044
2349
 
2045
2350
 
2046
- const $8977f8672c5de0fa$export$45f0aca2596a2bb3 = function() {
2047
- const RELEASE_TYPE = "xlrelease.Release";
2048
- const PHASE_TYPE = "xlrelease.Phase";
2049
- const TEAM_TYPE = "xlrelease.Team";
2050
- const TASK_TYPE = "xlrelease.Task";
2051
- const COMMENT_TYPE = "xlrelease.Comment";
2052
- const CONDITION_TYPE = "xlrelease.GateCondition";
2053
- const DEPENDENCY_TYPE = "xlrelease.Dependency";
2054
- const LINK_TYPE = "xlrelease.Link";
2055
- const ATTACHMENT_TYPE = "xlrelease.Attachment";
2056
- const DASHBOARD_TYPE = "xlrelease.Dashboard";
2057
- const _TRIGGER_TYPE = "xlrelease.ReleaseTrigger";
2058
- const JIRA_TYPE = "jira.CreateIssue";
2059
- const DEFAULT_TASK_OWNER = "Itchy";
2060
- const processTasks = (task, container, index)=>{
2061
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.type)) task.type = TASK_TYPE;
2062
- task.id = task.id || `${container.id}/Task${index}`;
2063
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(task.owner) && task.type !== JIRA_TYPE) task.owner = DEFAULT_TASK_OWNER;
2064
- if (task.owner === null) delete task.owner;
2065
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.conditions, function(condition, idx) {
2066
- condition.type = CONDITION_TYPE;
2067
- condition.id = `${task.id}/GateCondition${idx}`;
2068
- });
2069
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.dependencies, function(dependency, idx) {
2070
- dependency.type = DEPENDENCY_TYPE;
2071
- dependency.id = `${task.id}/Dependency${idx}`;
2072
- });
2073
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.links, function(link, idx) {
2074
- link.type = LINK_TYPE;
2075
- link.id = `${task.id}/Link${idx}`;
2076
- });
2077
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.comments, function(comment, idx) {
2078
- comment.type = COMMENT_TYPE;
2079
- comment.id = `${task.id}/Comment${idx}`;
2080
- });
2081
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.tasks, function(subTask, idx) {
2082
- processTasks(subTask, task, idx);
2083
- });
2084
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.templateVariables, function(variable, idx) {
2085
- (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, task.id, idx));
2086
- });
2087
- (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.attachments, function(attachment, idx) {
2088
- attachment.type = ATTACHMENT_TYPE;
2089
- attachment.id = `${task.id}/Attachment${idx}`;
2090
- });
2091
- if (task.pythonScript) {
2092
- const pythonScript = task.pythonScript;
2093
- pythonScript.id = `${task.id}/PythonScript`;
2094
- pythonScript.customScriptTask = task.id;
2095
- }
2096
- };
2097
- const processPhases = (phase, release, index)=>{
2098
- phase.type = PHASE_TYPE;
2099
- phase.id = `${release.id}/Phase${index}`;
2100
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(phase.tasks, (task, idx)=>{
2101
- processTasks(task, phase, idx);
2102
- });
2103
- };
2104
- const getVariableEntity = (value, key, containerId, index, password)=>{
2105
- const keyNoSyntax = key.replace("${", "").replace("}", "");
2106
- return {
2107
- id: `${containerId}/Variable${index}`,
2108
- key: keyNoSyntax,
2109
- requiresValue: true,
2110
- showOnReleaseStart: true,
2111
- type: password ? "xlrelease.PasswordStringVariable" : "xlrelease.StringVariable",
2112
- value: value
2113
- };
2114
- };
2115
- const getValueProviderConfigurationEntity = function(containerId) {
2116
- return {
2117
- id: `${containerId}/valueProvider`,
2118
- variable: containerId
2119
- };
2120
- };
2121
- const getDashboardExtension = (dashboard, releaseId)=>{
2122
- const dashboardExtension = {
2123
- id: `${releaseId}/summary`,
2124
- type: DASHBOARD_TYPE,
2125
- tiles: []
2126
- };
2127
- if (dashboard.tiles) (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(dashboard.tiles, function(tile, index) {
2128
- dashboardExtension.tiles.push(getTileEntity(tile, `${releaseId}/summary`, index));
2129
- });
2130
- return dashboardExtension;
2131
- };
2132
- function getTileEntity(tile, containerId, index) {
2133
- tile.id = tile.id || `${containerId}/Tile${index}`;
2134
- 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);
2135
2359
  }
2136
- return function(release) {
2137
- release.type = RELEASE_TYPE;
2138
- if (release.id.indexOf("Applications/") === -1) release.id = `Applications/${release.id}`;
2139
- if (release.startDate) release.queryableStartDate = release.startDate;
2140
- else if (release.scheduledStartDate) release.queryableStartDate = release.scheduledStartDate;
2141
- if (release.endDate) release.queryableEndDate = release.endDate;
2142
- else if (release.dueDate) release.queryableEndDate = release.dueDate;
2143
- if ((0, (/*@__PURE__*/$parcel$interopDefault($3e8b520187e41aa6$exports)))(release.owner)) release.owner = "Itchy"; // default release manager
2144
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.phases, function(phase, index) {
2145
- processPhases(phase, release, index);
2146
- });
2147
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.teams, function(team, index) {
2148
- team.type = TEAM_TYPE;
2149
- team.id = `${release.id}/Team${index}`;
2150
- });
2151
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.attachments, function(attachment, index) {
2152
- attachment.type = ATTACHMENT_TYPE;
2153
- attachment.id = `${release.id}/Attachment${index}`;
2154
- });
2155
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.variables, function(variable, index) {
2156
- (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, release.id, index));
2157
- if (variable.valueProvider) (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));
2158
- });
2159
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.variableValues), function(keyValue, index) {
2160
- if (!release.variables) release.variables = [];
2161
- release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1000 + index));
2162
- release.variableValues = undefined;
2163
- });
2164
- (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.passwordVariableValues), function(keyValue, index) {
2165
- if (!release.variables) release.variables = [];
2166
- release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1500 + index, true));
2167
- release.passwordVariableValues = undefined;
2168
- });
2169
- if (release.summary) {
2170
- release.extensions = [
2171
- getDashboardExtension(release.summary, release.id)
2172
- ];
2173
- release.summary = undefined;
2174
- }
2175
- };
2176
- }();
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
+ }
2177
2427
 
2178
2428
 
2179
2429
 
@@ -2189,7 +2439,7 @@ const $6998c6a53a9eb4fa$export$e0969da9b8fb378d = (0, $kKeXs$playwrighttest.test
2189
2439
  return fixtures;
2190
2440
  },
2191
2441
  loginPage: async ({ page: page }, use)=>{
2192
- const loginPage = new (0, $9a16c8a1280a99a0$export$f14c0e3f98d164c0)(page);
2442
+ const loginPage = new (0, $258749e0671c845a$export$f14c0e3f98d164c0)(page);
2193
2443
  await use(loginPage);
2194
2444
  return loginPage;
2195
2445
  },
@@ -2203,6 +2453,8 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2203
2453
  releaseIds = [];
2204
2454
  triggerIds = [];
2205
2455
  configurationIds = [];
2456
+ usernames = [];
2457
+ userProfiles = [];
2206
2458
  constructor(request, page){
2207
2459
  this.request = request;
2208
2460
  this.page = page;
@@ -2248,9 +2500,13 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2248
2500
  for (const releaseId of this.releaseIds.reverse())promises.push(this.deleteRelease(releaseId));
2249
2501
  for (const triggerId of this.triggerIds)promises.push(this.deleteTrigger(triggerId));
2250
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));
2251
2505
  this.releaseIds = [];
2252
2506
  this.triggerIds = [];
2253
2507
  this.configurationIds = [];
2508
+ this.usernames = [];
2509
+ this.userProfiles = [];
2254
2510
  return Promise.all(promises);
2255
2511
  }
2256
2512
  async waitForReleaseStarted(releaseTitle) {
@@ -2300,6 +2556,27 @@ class $6998c6a53a9eb4fa$var$Fixtures {
2300
2556
  }
2301
2557
  ]);
2302
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
+ }
2303
2580
  doPost(url, body) {
2304
2581
  return this.request.post(url, {
2305
2582
  data: body,