www in docker support

This commit is contained in:
MaddoScientisto 2026-04-22 18:41:37 +02:00
commit c227fce036
2145 changed files with 399596 additions and 58 deletions

View file

@ -2,11 +2,16 @@ const { test } = require('@playwright/test');
const {
AUTH_FILE,
ensureAuthDirectory,
LIVE_SITE_REQUIRE_AUTH,
performLiveLoginRequest
} = require('./live-site-test-utils');
test('authenticate against the live site', async ({ request }) => {
ensureAuthDirectory();
await performLiveLoginRequest(request);
if (LIVE_SITE_REQUIRE_AUTH) {
await performLiveLoginRequest(request);
}
await request.storageState({ path: AUTH_FILE });
});

View file

@ -11,6 +11,7 @@ const LIVE_SITE_LOGIN_URL = process.env.LIVE_SITE_LOGIN_URL || `${LIVE_SITE_BASE
const LIVE_SITE_RACE_URL = process.env.LIVE_SITE_RACE_URL || `${LIVE_SITE_BASE_URL}/42%20HALF%20MARATHON%20FIRENZE_gara-1018545---96-1.html`;
const LIVE_FACEAI_BASE_URL = process.env.LIVE_FACEAI_BASE_URL || 'https://ai.regalamiunsorriso.it';
const LIVE_SITE_RESULT_URL_PATTERN = process.env.LIVE_SITE_RESULT_URL_PATTERN || `${LIVE_SITE_BASE_URL}/faceai_return.php`;
const LIVE_SITE_REQUIRE_AUTH = process.env.LIVE_SITE_REQUIRE_AUTH !== '0';
const LIVE_SITE_USERNAME = process.env.LIVE_SITE_USERNAME || '';
const LIVE_SITE_PASSWORD = process.env.LIVE_SITE_PASSWORD || '';
const LIVE_SITE_PORTRAIT_PATH = process.env.LIVE_SITE_PORTRAIT_PATH || path.join(WORKSPACE_ROOT, 'test_pkl', 'live', 'test_portrait_1.png');
@ -106,6 +107,10 @@ async function gotoWithRetry(page, url, options = {}, maxAttempts = 3) {
}
async function performLiveLogin(page) {
if (!LIVE_SITE_REQUIRE_AUTH) {
return;
}
requireCredentials();
await gotoWithRetry(page, LIVE_SITE_LOGIN_URL, { waitUntil: 'commit' });
@ -117,6 +122,10 @@ async function performLiveLogin(page) {
}
async function performLiveLoginRequest(requestContext) {
if (!LIVE_SITE_REQUIRE_AUTH) {
return;
}
const response = await requestContext.post(`${LIVE_SITE_BASE_URL}/Logon.abl`, {
form: buildLoginFormData(),
failOnStatusCode: false
@ -166,6 +175,11 @@ async function ensureLiveAuthenticatedRacePage(page) {
await gotoWithRetry(page, LIVE_SITE_RACE_URL, { waitUntil: 'commit' });
await dismissCookieBanner(page);
if (!LIVE_SITE_REQUIRE_AUTH) {
await expectRacePageLoaded(page);
return;
}
try {
await waitForLoggedInUi(page);
} catch (error) {
@ -192,6 +206,7 @@ module.exports = {
LIVE_SITE_LOGIN_URL,
LIVE_SITE_PASSWORD,
LIVE_SITE_PORTRAIT_PATH,
LIVE_SITE_REQUIRE_AUTH,
LIVE_SITE_EXPECT_RACE_DATA_AVAILABLE,
LIVE_SITE_EXPECT_UNAVAILABLE_REASON_CODE,
LIVE_SITE_RACE_ID,