Skip to content

Commit cda46d0

Browse files
committed
set cluster context, and check https in installed apps
1 parent fefaac5 commit cda46d0

File tree

4 files changed

+29
-12
lines changed

4 files changed

+29
-12
lines changed

scripts/pit/its/cc-identity-management.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const {log, err, args, createPage, closePage, takeScreenshot, waitForServerReady
3434

3535
log(`Checking that ${app} installed in ${url} is running ...\n`);
3636
// When app is not running, localization cannot be enabled
37-
let pageApp = await createPage(arg.headless, true);
37+
let pageApp = await createPage(arg.headless, arg.ignoreHTTPSErrors);
3838
await waitForServerReady(pageApp, url);
3939
await takeScreenshot(pageApp, __filename, 'app-running');
4040
await closePage(pageApp);
@@ -83,7 +83,7 @@ const {log, err, args, createPage, closePage, takeScreenshot, waitForServerReady
8383
await takeScreenshot(page, __filename, 'user-created');
8484

8585
log(`Logging in ${app} as ${user} ...\n`);
86-
pageApp = await createPage(arg.headless, true);
86+
pageApp = await createPage(arg.headless, arg.ignoreHTTPSErrors);
8787
await waitForServerReady(pageApp, url);
8888
await takeScreenshot(pageApp, __filename, `app-${app}-loaded`);
8989
await pageApp.getByLabel('Email').fill(user);

scripts/pit/its/cc-localization.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const { assert } = require('console');
3636

3737
log(`Checking that ${app} installed in ${url} is running ...\n`);
3838
// When app is not running, localization cannot be enabled
39-
const pageApp = await createPage(arg.headless, true);
39+
const pageApp = await createPage(arg.headless, arg.ignoreHTTPSErrors);
4040
await waitForServerReady(pageApp, url);
4141
await takeScreenshot(pageApp, __filename, 'app-running');
4242
await closePage(pageApp);
@@ -82,7 +82,8 @@ const { assert } = require('console');
8282

8383
log(`Testing that preview page: ${previewUrl} is up and running\n`);
8484
await page.getByRole('button', { name: 'Start preview' }).click();
85-
const pagePrev = await createPage(arg.headless, true);
85+
await page.waitForTimeout(5000);
86+
const pagePrev = await createPage(arg.headless, true /* preview pages do not have a valid certificate */);
8687
await waitForServerReady(pagePrev, previewUrl);
8788
await takeScreenshot(pagePrev, __filename, 'preview-ready');
8889
const text = await pagePrev.getByText(/Password|Dashboard/).textContent();
@@ -94,7 +95,8 @@ const { assert } = require('console');
9495
await expect(pagePrev.getByRole('button', { name: 'New order' })).toBeVisible();
9596
await takeScreenshot(pagePrev, __filename, 'preview-loaded');
9697
}
97-
// await expect(pagePrev.getByText('Panaderia', { exact: true })).toBeVisible();
98+
// TODO: bakery is not internationalized
99+
// await expect(pagePrev.getByText('Panaderia', { exact: true })).toBeVisible();
98100
await closePage(pagePrev);
99101

100102
log('Cleaning up...\n');

scripts/pit/its/test-utils.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ function log(...args) {
1414
function out(...args) {
1515
process.stderr.write(`\x1b[2m\x1b[196m${args}\x1b[0m`);
1616
}
17+
function ok(...args) {
18+
process.stderr.write(`\x1b[2m\x1b[0;32m${args}\x1b[0m`);
19+
}
20+
1721
function warn(...args) {
1822
process.stderr.write(`\x1b[2m\x1b[91m${args}\x1b[0m`);
1923
}
@@ -67,7 +71,7 @@ async function createPage(headless, ignoreHTTPSErrors) {
6771
const page = await context.newPage();
6872
page.on('console', msg => {
6973
const text = `${msg.text()} - ${msg.location().url}`.replace(/\s+/g, ' ');
70-
if (!/vaadinPush/.test(text)) out("> CONSOLE:", text, '\n');
74+
if (!/vaadinPush|favicon.ico/.test(text)) out("> CONSOLE:", text, '\n');
7175
});
7276
page.on('pageerror', e => warn("> JSERROR:", ('' + e).replace(/\s+/g, ' '), '\n'));
7377
page.browser = browser;
@@ -92,7 +96,7 @@ async function takeScreenshot(page, name, descr) {
9296
// Wait for the server to be ready and to get a valid response
9397
async function waitForServerReady(page, url, options = {}) {
9498
const {
95-
maxRetries = 20, // Max number of retries
99+
maxRetries = 35, // Max number of retries
96100
retryInterval = 5000 // Interval between retries in milliseconds
97101
} = options;
98102

@@ -103,7 +107,7 @@ async function waitForServerReady(page, url, options = {}) {
103107
const response = await page.goto(url, {timeout: 120000});
104108
// Check if the response status is not 503
105109
if (response && response.status() < 400) {
106-
out(` Attempt ${attempt} Server is ready and returned a valid response. ${response.status()}\n`);
110+
ok(` Attempt ${attempt} Server is ready and returned a valid response. ${response.status()}\n`);
107111
page.waitForTimeout(1500);
108112
return response;
109113
} else {

scripts/pit/lib/lib-ccenter.sh

+15-4
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ getTLs() {
8686
}
8787

8888
checkTls() {
89+
log "Checking TLS certificates for all ingresses hosted in the cluster"
8990
[ -n "$TEST" -o -n "$SKIPHELM" ] && return 0
9091
for i in `kubectl get ingresses -n $CC_NS | grep nginx | awk '{print $1}'`; do
9192
getTLs "$i"
@@ -151,11 +152,23 @@ runPwTests() {
151152
[ -z "$CC_CERT" -o -z "$CC_KEY" ] && NO_TLS=--notls || NO_TLS=""
152153
for f in $CC_TESTS; do
153154
runPlaywrightTests "$PIT_SCR_FOLDER/its/$f" "" "prod" "control-center" --url=https://$CC_CONTROL --login=$CC_EMAIL $NO_TLS || return 1
154-
[ "$f" = cc-install-apps.js ] && reloadIngress
155+
[ "$f" = cc-install-apps.js ] && reloadIngress && checkTls || return 1
155156
sleep 3
156157
done
157158
}
158159

160+
setClusterContext() {
161+
[ "$1" = "$CC_CLUSTER" ] && current=kind-$1 || current=$1
162+
ns=$2
163+
H=`kubectl config get-contexts | tr '*' ' ' | awk '{print $1}' | egrep "^$current$"`
164+
[ -z "$H" ] && log "Cluster $current not found in kubectl contexts" && return 1
165+
runCmd "$TEST" "Setting context to $current" "kubectl config use-context $current" || return 1
166+
H=`kubectl config current-context`
167+
[ "$H" != "$current" ] && log "Current context is not $current" && return 1
168+
runCmd "$TEST" "Setting default namespace to $ns" "kubectl config set-context --current --namespace=$ns" || return 1
169+
kubectl get ns >/dev/null 2>&1 || return 1
170+
}
171+
159172
## Main method for running control center
160173
runControlCenter() {
161174
CLUSTER=${CLUSTER:-$CC_CLUSTER}
@@ -167,9 +180,7 @@ runControlCenter() {
167180
[ "$CLUSTER" != "$CC_CLUSTER" ] || createKindCluster $CC_CLUSTER $CC_NS || return 1
168181

169182
## Set the context to the cluster
170-
kubectl config set-context $CLUSTER || return 1
171-
kubectl config set-context --current --namespace=$CC_NS || return 1
172-
kubectl get ns >/dev/null 2>&1 || return 1
183+
setClusterContext "$CLUSTER" "$CC_NS" || return 1
173184

174185
## Clean up CC from a previous run unless SKIPHELM is set
175186
[ -z "$SKIPHELM" ] && uninstallCC $CLUSTER $CC_NS

0 commit comments

Comments
 (0)