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