@red-hat-developer-hub/e2e-test-utils 1.1.24 → 1.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deployment/orchestrator/install-orchestrator.sh +10 -6
- package/dist/playwright/helpers/ui-helper.d.ts +7 -0
- package/dist/playwright/helpers/ui-helper.d.ts.map +1 -1
- package/dist/playwright/helpers/ui-helper.js +15 -0
- package/dist/utils/tests/helpers.d.ts +26 -0
- package/dist/utils/tests/helpers.d.ts.map +1 -0
- package/dist/utils/tests/helpers.js +84 -0
- package/dist/utils/tests/plugin-metadata.fixtures.test.d.ts +2 -0
- package/dist/utils/tests/plugin-metadata.fixtures.test.d.ts.map +1 -0
- package/dist/utils/tests/plugin-metadata.fixtures.test.js +563 -0
- package/dist/utils/tests/plugin-metadata.nightly.test.d.ts +2 -0
- package/dist/utils/tests/plugin-metadata.nightly.test.d.ts.map +1 -0
- package/dist/utils/tests/plugin-metadata.nightly.test.js +178 -0
- package/dist/utils/tests/plugin-metadata.pr.test.d.ts +2 -0
- package/dist/utils/tests/plugin-metadata.pr.test.d.ts.map +1 -0
- package/dist/utils/tests/plugin-metadata.pr.test.js +296 -0
- package/dist/utils/tests/plugin-metadata.test.d.ts.map +1 -0
- package/dist/utils/tests/plugin-metadata.test.js +156 -0
- package/package.json +1 -1
- package/dist/utils/plugin-metadata.test.d.ts.map +0 -1
- package/dist/utils/plugin-metadata.test.js +0 -39
- /package/dist/utils/{plugin-metadata.test.d.ts → tests/plugin-metadata.test.d.ts} +0 -0
|
@@ -105,7 +105,9 @@ log::success() {
|
|
|
105
105
|
# Operator subscription and status
|
|
106
106
|
# ---------------------------------------------------------------------------
|
|
107
107
|
install_subscription() {
|
|
108
|
-
local name=$1 namespace=$2 channel=$3 package=$4 source_name=$5 source_namespace=$6
|
|
108
|
+
local name=$1 namespace=$2 channel=$3 package=$4 source_name=$5 source_namespace=$6 starting_csv=${7:-}
|
|
109
|
+
local spec_extra=""
|
|
110
|
+
[[ -n "$starting_csv" ]] && spec_extra=" startingCSV: $starting_csv"
|
|
109
111
|
oc apply -f - << EOD
|
|
110
112
|
apiVersion: operators.coreos.com/v1alpha1
|
|
111
113
|
kind: Subscription
|
|
@@ -118,6 +120,7 @@ spec:
|
|
|
118
120
|
name: $package
|
|
119
121
|
source: $source_name
|
|
120
122
|
sourceNamespace: $source_namespace
|
|
123
|
+
${spec_extra}
|
|
121
124
|
EOD
|
|
122
125
|
return 0
|
|
123
126
|
}
|
|
@@ -136,11 +139,11 @@ check_operator_status() {
|
|
|
136
139
|
}
|
|
137
140
|
|
|
138
141
|
install_serverless_logic_ocp_operator() {
|
|
139
|
-
install_subscription logic-operator
|
|
142
|
+
install_subscription logic-operator openshift-operators stable logic-operator redhat-operators openshift-marketplace
|
|
140
143
|
return 0
|
|
141
144
|
}
|
|
142
145
|
waitfor_serverless_logic_ocp_operator() {
|
|
143
|
-
check_operator_status 500 openshift-operators "OpenShift Serverless Logic
|
|
146
|
+
check_operator_status 500 openshift-operators "Red Hat OpenShift Serverless Logic" Succeeded
|
|
144
147
|
return 0
|
|
145
148
|
}
|
|
146
149
|
|
|
@@ -454,11 +457,12 @@ main() {
|
|
|
454
457
|
log::info "OpenShift Serverless Operator already installed"
|
|
455
458
|
fi
|
|
456
459
|
|
|
457
|
-
if
|
|
460
|
+
if oc get subscription logic-operator -n openshift-operators &>/dev/null || \
|
|
461
|
+
oc get subscription logic-operator-rhel8 -n openshift-operators &>/dev/null; then
|
|
462
|
+
log::info "OpenShift Serverless Logic Operator already installed"
|
|
463
|
+
else
|
|
458
464
|
log::info "Installing OpenShift Serverless Logic Operator..."
|
|
459
465
|
install_serverless_logic_ocp_operator
|
|
460
|
-
else
|
|
461
|
-
log::info "OpenShift Serverless Logic Operator already installed"
|
|
462
466
|
fi
|
|
463
467
|
|
|
464
468
|
log::info "Waiting for operators to be ready..."
|
|
@@ -4,6 +4,13 @@ export declare class UIhelper {
|
|
|
4
4
|
private page;
|
|
5
5
|
constructor(page: Page);
|
|
6
6
|
waitForLoad(timeout?: number): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Closes the quickstart drawer when the "Hide" button is visible (RHDH quickstart plugin),
|
|
9
|
+
* so it does not cover catalog or other UI under test.
|
|
10
|
+
*/
|
|
11
|
+
dismissQuickstartIfVisible(options?: {
|
|
12
|
+
waitHiddenMs?: number;
|
|
13
|
+
}): Promise<void>;
|
|
7
14
|
verifyComponentInCatalog(kind: string, expectedRows: string[]): Promise<void>;
|
|
8
15
|
getSideBarMenuItem(menuItem: string): Locator;
|
|
9
16
|
fillTextInputByLabel(label: string, text: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-helper.d.ts","sourceRoot":"","sources":["../../../src/playwright/helpers/ui-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAMtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,qBAAa,QAAQ;IACnB,OAAO,CAAC,IAAI,CAAO;gBAEP,IAAI,EAAE,IAAI;IAIhB,WAAW,CAAC,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"ui-helper.d.ts","sourceRoot":"","sources":["../../../src/playwright/helpers/ui-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,21 @@ export class UIhelper {
|
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Closes the quickstart drawer when the "Hide" button is visible (RHDH quickstart plugin),
|
|
19
|
+
* so it does not cover catalog or other UI under test.
|
|
20
|
+
*/
|
|
21
|
+
async dismissQuickstartIfVisible(options) {
|
|
22
|
+
const waitHiddenMs = options?.waitHiddenMs ?? 5000;
|
|
23
|
+
const quickstartHide = this.page.getByRole("button", { name: "Hide" });
|
|
24
|
+
if (await quickstartHide.isVisible()) {
|
|
25
|
+
await quickstartHide.click();
|
|
26
|
+
await quickstartHide.waitFor({
|
|
27
|
+
state: "hidden",
|
|
28
|
+
timeout: waitHiddenMs,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
17
32
|
async verifyComponentInCatalog(kind, expectedRows) {
|
|
18
33
|
await this.openSidebar("Catalog");
|
|
19
34
|
await this.selectMuiBox("Kind", kind);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Saves and restores process.env around each test. */
|
|
2
|
+
export declare function withCleanEnv(): {
|
|
3
|
+
save(): void;
|
|
4
|
+
restore(): void;
|
|
5
|
+
};
|
|
6
|
+
/** Creates a temporary metadata directory with Package CRD YAML files. */
|
|
7
|
+
export declare function createMetadataFixture(plugins: Array<{
|
|
8
|
+
name: string;
|
|
9
|
+
packageName: string;
|
|
10
|
+
dynamicArtifact: string;
|
|
11
|
+
appConfigExamples?: Record<string, unknown>;
|
|
12
|
+
}>): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a workspace-like directory structure with metadata, source.json,
|
|
15
|
+
* and plugins-list.yaml. Used for tests that trigger PR OCI URL fetching.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createWorkspaceFixture(plugins: Array<{
|
|
18
|
+
name: string;
|
|
19
|
+
packageName: string;
|
|
20
|
+
dynamicArtifact: string;
|
|
21
|
+
appConfigExamples?: Record<string, unknown>;
|
|
22
|
+
}>): Promise<{
|
|
23
|
+
wsDir: string;
|
|
24
|
+
metadataDir: string;
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/helpers.ts"],"names":[],"mappings":"AAQA,uDAAuD;AACvD,wBAAgB,YAAY;;;EAa3B;AAED,0EAA0E;AAC1E,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC,GACD,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC,GACD,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAyCjD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared test helpers for plugin-metadata tests.
|
|
3
|
+
*/
|
|
4
|
+
import fs from "fs-extra";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import os from "os";
|
|
7
|
+
import yaml from "js-yaml";
|
|
8
|
+
/** Saves and restores process.env around each test. */
|
|
9
|
+
export function withCleanEnv() {
|
|
10
|
+
let savedEnv;
|
|
11
|
+
return {
|
|
12
|
+
save() {
|
|
13
|
+
savedEnv = { ...process.env };
|
|
14
|
+
},
|
|
15
|
+
restore() {
|
|
16
|
+
for (const key of Object.keys(process.env)) {
|
|
17
|
+
if (!(key in savedEnv))
|
|
18
|
+
delete process.env[key];
|
|
19
|
+
}
|
|
20
|
+
Object.assign(process.env, savedEnv);
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** Creates a temporary metadata directory with Package CRD YAML files. */
|
|
25
|
+
export async function createMetadataFixture(plugins) {
|
|
26
|
+
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "metadata-test-"));
|
|
27
|
+
for (const plugin of plugins) {
|
|
28
|
+
const content = {
|
|
29
|
+
apiVersion: "extensions.backstage.io/v1alpha1",
|
|
30
|
+
kind: "Package",
|
|
31
|
+
metadata: { name: plugin.name },
|
|
32
|
+
spec: {
|
|
33
|
+
packageName: plugin.packageName,
|
|
34
|
+
dynamicArtifact: plugin.dynamicArtifact,
|
|
35
|
+
...(plugin.appConfigExamples
|
|
36
|
+
? {
|
|
37
|
+
appConfigExamples: [
|
|
38
|
+
{ title: "Default", content: plugin.appConfigExamples },
|
|
39
|
+
],
|
|
40
|
+
}
|
|
41
|
+
: {}),
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
await fs.writeFile(path.join(tmpDir, `${plugin.name}.yaml`), yaml.dump(content));
|
|
45
|
+
}
|
|
46
|
+
return tmpDir;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates a workspace-like directory structure with metadata, source.json,
|
|
50
|
+
* and plugins-list.yaml. Used for tests that trigger PR OCI URL fetching.
|
|
51
|
+
*/
|
|
52
|
+
export async function createWorkspaceFixture(plugins) {
|
|
53
|
+
const wsDir = await fs.mkdtemp(path.join(os.tmpdir(), "workspace-test-"));
|
|
54
|
+
const metadataDir = path.join(wsDir, "metadata");
|
|
55
|
+
await fs.mkdir(metadataDir);
|
|
56
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
57
|
+
await fs.writeFile(path.join(wsDir, "source.json"), JSON.stringify({
|
|
58
|
+
repo: "https://github.com/test/repo",
|
|
59
|
+
"repo-ref": "main",
|
|
60
|
+
"repo-flat": false,
|
|
61
|
+
}));
|
|
62
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
63
|
+
await fs.writeFile(path.join(wsDir, "plugins-list.yaml"), "{}");
|
|
64
|
+
for (const plugin of plugins) {
|
|
65
|
+
const content = {
|
|
66
|
+
apiVersion: "extensions.backstage.io/v1alpha1",
|
|
67
|
+
kind: "Package",
|
|
68
|
+
metadata: { name: plugin.name },
|
|
69
|
+
spec: {
|
|
70
|
+
packageName: plugin.packageName,
|
|
71
|
+
dynamicArtifact: plugin.dynamicArtifact,
|
|
72
|
+
...(plugin.appConfigExamples
|
|
73
|
+
? {
|
|
74
|
+
appConfigExamples: [
|
|
75
|
+
{ title: "Default", content: plugin.appConfigExamples },
|
|
76
|
+
],
|
|
77
|
+
}
|
|
78
|
+
: {}),
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
await fs.writeFile(path.join(metadataDir, `${plugin.name}.yaml`), yaml.dump(content));
|
|
82
|
+
}
|
|
83
|
+
return { wsDir, metadataDir };
|
|
84
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-metadata.fixtures.test.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/plugin-metadata.fixtures.test.ts"],"names":[],"mappings":""}
|