test(accept): одноразовая БД *_rehome_test для rehome-tenant.test.ts
Почему: tests/integration/rehome-tenant.test.ts (codex/fix-tenant-rehome) выполняется только при DATABASE_REHOME_TEST_URL на пустую БД с именем *_rehome_test под суперпользователем и DATABASE_REHOME_TEST_CONFIRM (docs/TENANT-REHOME.md); без них файл пропускается целиком и приёмка ничего не проверяет. В admin-режиме accept-branch создаёт пустую krona_acc_rehome_test только для файлов, которые читают DATABASE_REHOME_TEST_URL. Проверено: accept-branch --skip-check --skip-e2e codex/fix-tenant-rehome → rehome-tenant.test.ts | OK | 1 passed (1) | 1 passed (1).
This commit is contained in:
parent
986843d8d4
commit
18f944e3c3
1 changed files with 22 additions and 0 deletions
|
|
@ -23,6 +23,8 @@
|
||||||
// Интеграционная БД в этом режиме заведомо изолирована, поэтому для тестов с «предохранителем»
|
// Интеграционная БД в этом режиме заведомо изолирована, поэтому для тестов с «предохранителем»
|
||||||
// (codex/fix-live-database: DATABASE_TEST_ISOLATED, DATABASE_TEST_GUARD_TOKEN, таблица
|
// (codex/fix-live-database: DATABASE_TEST_ISOLATED, DATABASE_TEST_GUARD_TOKEN, таблица
|
||||||
// krona_staff_test_guard, имя БД krona_staff_audit_*) он выставляется со случайным маркером.
|
// krona_staff_test_guard, имя БД krona_staff_audit_*) он выставляется со случайным маркером.
|
||||||
|
// Для tests/integration/rehome-tenant.test.ts (codex/fix-tenant-rehome) — отдельная пустая БД
|
||||||
|
// krona_acc_rehome_test под суперпользователем и DATABASE_REHOME_TEST_CONFIRM (docs/TENANT-REHOME.md).
|
||||||
// Файл, где все тесты пропущены, — отдельный вердикт SKIP (ничего не проверил).
|
// Файл, где все тесты пропущены, — отдельный вердикт SKIP (ничего не проверил).
|
||||||
// Если заданы E2E_MIGRATOR_URL и E2E_APP_URL — роли не создаются и пароли не меняются,
|
// Если заданы E2E_MIGRATOR_URL и E2E_APP_URL — роли не создаются и пароли не меняются,
|
||||||
// все прогоны идут последовательно в БД из этих URL со сбросом через откат всех миграций.
|
// все прогоны идут последовательно в БД из этих URL со сбросом через откат всех миграций.
|
||||||
|
|
@ -318,6 +320,19 @@ async function createGuard(db) {
|
||||||
return marker;
|
return marker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Отдельная пустая одноразовая БД для tests/integration/rehome-tenant.test.ts (codex/fix-tenant-rehome,
|
||||||
|
* docs/TENANT-REHOME.md): имя на `_rehome_test`, суперпользователь, явное подтверждение.
|
||||||
|
*/
|
||||||
|
async function rehomeTestDatabase() {
|
||||||
|
const name = 'krona_acc_rehome_test';
|
||||||
|
const db = await freshDatabase(name);
|
||||||
|
return {
|
||||||
|
DATABASE_REHOME_TEST_URL: db.admin,
|
||||||
|
DATABASE_REHOME_TEST_CONFIRM: 'I_ACKNOWLEDGE_DISPOSABLE_PG17_DATABASE',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
async function stepIntegration(target, wt) {
|
async function stepIntegration(target, wt) {
|
||||||
const dir = path.join(wt.dir, 'tests/integration');
|
const dir = path.join(wt.dir, 'tests/integration');
|
||||||
const files = existsSync(dir)
|
const files = existsSync(dir)
|
||||||
|
|
@ -332,6 +347,12 @@ async function stepIntegration(target, wt) {
|
||||||
const db = await freshDatabase('krona_staff_audit_acc_it');
|
const db = await freshDatabase('krona_staff_audit_acc_it');
|
||||||
const m = await migrate(wt, db, path.join(logDir, `${slug}-migrate.txt`));
|
const m = await migrate(wt, db, path.join(logDir, `${slug}-migrate.txt`));
|
||||||
const guard = m.code === 0 && dbMode === 'admin' ? await createGuard(db) : null;
|
const guard = m.code === 0 && dbMode === 'admin' ? await createGuard(db) : null;
|
||||||
|
const rehomeEnv =
|
||||||
|
m.code === 0 &&
|
||||||
|
dbMode === 'admin' &&
|
||||||
|
readFileSync(path.join(dir, file), 'utf8').includes('DATABASE_REHOME_TEST_URL')
|
||||||
|
? await rehomeTestDatabase()
|
||||||
|
: {};
|
||||||
if (m.code !== 0) {
|
if (m.code !== 0) {
|
||||||
results.push({
|
results.push({
|
||||||
file,
|
file,
|
||||||
|
|
@ -352,6 +373,7 @@ async function stepIntegration(target, wt) {
|
||||||
DATABASE_TEST_MIGRATION_URL: db.migrator,
|
DATABASE_TEST_MIGRATION_URL: db.migrator,
|
||||||
DATABASE_MIGRATION_URL: db.migrator,
|
DATABASE_MIGRATION_URL: db.migrator,
|
||||||
...(guard ? { DATABASE_TEST_ISOLATED: 'true', DATABASE_TEST_GUARD_TOKEN: guard } : {}),
|
...(guard ? { DATABASE_TEST_ISOLATED: 'true', DATABASE_TEST_GUARD_TOKEN: guard } : {}),
|
||||||
|
...rehomeEnv,
|
||||||
}),
|
}),
|
||||||
logFile: path.join(logDir, `${slug}.txt`),
|
logFile: path.join(logDir, `${slug}.txt`),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue