Regroupe l'état de travail en cours réalisé dans un même worktree sur plusieurs tickets/sprints (#85, #136, #145, #155-160, #162-164), mélangeant des tickets QA et inProgress. Ne constitue pas une feature terminée : commit de sauvegarde avant triage/split par ticket en branches feature/* dédiées. Exclut les dossiers d'environnement de build locaux et le heap dump parasite (.gitignore mis à jour). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
61 lines
1.6 KiB
Dart
61 lines
1.6 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:gametime_server/infrastructure/postgres/postgres_database.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
test('PostgreSQL migrations create the sync-ready schema', () async {
|
|
final databaseUrl = Platform.environment['TEST_DATABASE_URL'];
|
|
if (databaseUrl == null || databaseUrl.trim().isEmpty) {
|
|
markTestSkipped(
|
|
'Set TEST_DATABASE_URL to run PostgreSQL migration tests.',
|
|
);
|
|
return;
|
|
}
|
|
|
|
final connection = await PostgresConnectionFactory.fromDatabaseUrl(
|
|
databaseUrl,
|
|
).open();
|
|
addTearDown(() => connection.close());
|
|
|
|
await PostgresMigrator(connection).applyMigrations();
|
|
|
|
final result = await connection.execute('''
|
|
SELECT table_name
|
|
FROM information_schema.tables
|
|
WHERE table_schema = 'public'
|
|
AND table_name IN (
|
|
'users',
|
|
'auth_sessions',
|
|
'synced_resources',
|
|
'shares',
|
|
'share_recipients'
|
|
)
|
|
''');
|
|
final tableNames = result.map((row) => row[0] as String).toSet();
|
|
|
|
expect(
|
|
tableNames,
|
|
containsAll({
|
|
'users',
|
|
'auth_sessions',
|
|
'synced_resources',
|
|
'shares',
|
|
'share_recipients',
|
|
}),
|
|
);
|
|
|
|
final shareColumns = await connection.execute('''
|
|
SELECT column_name
|
|
FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shares'
|
|
AND column_name IN ('share_kind', 'pack_name', 'resource_type')
|
|
''');
|
|
expect(
|
|
shareColumns.map((row) => row[0] as String).toSet(),
|
|
containsAll({'share_kind', 'pack_name', 'resource_type'}),
|
|
);
|
|
});
|
|
}
|