feat: Update FaceAI upload panel and improve race storage metadata handling in tests
All checks were successful
Publish FaceAI Container / publish (push) Successful in 4m32s

This commit is contained in:
MaddoScientisto 2026-04-20 00:11:03 +02:00
commit c0d072c6ea
6 changed files with 130 additions and 47 deletions

View file

@ -15,8 +15,40 @@ 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');
const LIVE_SITE_RUN_UPLOAD_FLOW = process.env.LIVE_SITE_RUN_UPLOAD_FLOW === '1';
const LIVE_SITE_EXPECT_RACE_DATA_AVAILABLE = process.env.LIVE_SITE_EXPECT_RACE_DATA_AVAILABLE !== '0';
const LIVE_SITE_EXPECT_UNAVAILABLE_REASON_CODE = process.env.LIVE_SITE_EXPECT_UNAVAILABLE_REASON_CODE || 'RACE_DIRECTORY_NOT_FOUND';
const AUTH_FILE = path.join(__dirname, '.auth', 'user.json');
function parseOptionalCsv(value) {
return String(value || '')
.split(',')
.map((entry) => entry.trim())
.filter(Boolean);
}
function parseRaceIdFromUrl(value) {
const match = String(value || '').match(/_gara-(\d+)---/i);
return match ? match[1] : '';
}
const LIVE_SITE_RACE_ID = process.env.LIVE_SITE_RACE_ID || parseRaceIdFromUrl(LIVE_SITE_RACE_URL);
const LIVE_EXPECTED_RACE_STORAGE = {
year: String(process.env.LIVE_SITE_EXPECTED_RACE_YEAR || '').trim(),
monthFolder: String(process.env.LIVE_SITE_EXPECTED_RACE_MONTH_FOLDER || '').trim(),
raceFolder: String(process.env.LIVE_SITE_EXPECTED_RACE_FOLDER || '').trim(),
relativeDir: String(process.env.LIVE_SITE_EXPECTED_RACE_STORAGE_RELATIVE_DIR || '').trim()
};
const LIVE_SITE_SAMPLE_PHOTO_IDS = parseOptionalCsv(process.env.LIVE_SITE_SAMPLE_PHOTO_IDS);
function hasExpectedRaceStorage() {
return Boolean(
LIVE_EXPECTED_RACE_STORAGE.year
&& LIVE_EXPECTED_RACE_STORAGE.monthFolder
&& LIVE_EXPECTED_RACE_STORAGE.raceFolder
&& LIVE_EXPECTED_RACE_STORAGE.relativeDir
);
}
function ensureAuthDirectory() {
fs.mkdirSync(path.dirname(AUTH_FILE), { recursive: true });
}
@ -155,19 +187,26 @@ function requirePortraitFixture() {
module.exports = {
AUTH_FILE,
LIVE_FACEAI_BASE_URL,
LIVE_EXPECTED_RACE_STORAGE,
LIVE_SITE_BASE_URL,
LIVE_SITE_LOGIN_URL,
LIVE_SITE_PASSWORD,
LIVE_SITE_PORTRAIT_PATH,
LIVE_SITE_EXPECT_RACE_DATA_AVAILABLE,
LIVE_SITE_EXPECT_UNAVAILABLE_REASON_CODE,
LIVE_SITE_RACE_ID,
LIVE_SITE_RACE_URL,
LIVE_SITE_RESULT_URL_PATTERN,
LIVE_SITE_RUN_UPLOAD_FLOW,
LIVE_SITE_SAMPLE_PHOTO_IDS,
LIVE_SITE_USERNAME,
dismissCookieBanner,
ensureLiveAuthenticatedRacePage,
ensureAuthDirectory,
expectRacePageLoaded,
hasExpectedRaceStorage,
loginSubmitLocator,
parseRaceIdFromUrl,
performLiveLogin,
performLiveLoginRequest,
requirePortraitFixture,