feat: Integrate TestDataTracker into all test suites

This commit is contained in:
gpt-engineer-app[bot]
2025-10-30 15:08:33 +00:00
parent 6a30a9e568
commit 1874b6ffbd
5 changed files with 80 additions and 38 deletions

View File

@@ -6,6 +6,7 @@
import { supabase } from '@/integrations/supabase/client';
import type { TestSuite, TestResult } from '../testRunner';
import { TestDataTracker } from '../TestDataTracker';
export const submissionTestSuite: TestSuite = {
id: 'submission',
@@ -18,6 +19,7 @@ export const submissionTestSuite: TestSuite = {
description: 'Validates park submission and creation',
run: async (): Promise<TestResult> => {
const startTime = Date.now();
const tracker = new TestDataTracker();
let parkId: string | null = null;
try {
@@ -93,8 +95,10 @@ export const submissionTestSuite: TestSuite = {
timestamp: new Date().toISOString()
};
} finally {
if (parkId) {
await supabase.from('parks').delete().eq('id', parkId);
await tracker.cleanup();
const remaining = await tracker.verifyCleanup();
if (remaining.length > 0) {
console.warn('submission-001 cleanup incomplete:', remaining);
}
}
}
@@ -105,6 +109,7 @@ export const submissionTestSuite: TestSuite = {
description: 'Validates ride submission requires valid park_id',
run: async (): Promise<TestResult> => {
const startTime = Date.now();
const tracker = new TestDataTracker();
let parkId: string | null = null;
let rideId: string | null = null;
@@ -117,7 +122,8 @@ export const submissionTestSuite: TestSuite = {
name: 'Test Park for Ride',
slug: parkSlug,
park_type: 'theme_park',
status: 'operating'
status: 'operating',
is_test_data: true
})
.select('id')
.single();
@@ -191,11 +197,10 @@ export const submissionTestSuite: TestSuite = {
timestamp: new Date().toISOString()
};
} finally {
if (rideId) {
await supabase.from('rides').delete().eq('id', rideId);
}
if (parkId) {
await supabase.from('parks').delete().eq('id', parkId);
await tracker.cleanup();
const remaining = await tracker.verifyCleanup();
if (remaining.length > 0) {
console.warn('submission-002 cleanup incomplete:', remaining);
}
}
}
@@ -206,6 +211,7 @@ export const submissionTestSuite: TestSuite = {
description: 'Validates company creation for all company types',
run: async (): Promise<TestResult> => {
const startTime = Date.now();
const tracker = new TestDataTracker();
const companyIds: string[] = [];
try {
@@ -233,6 +239,7 @@ export const submissionTestSuite: TestSuite = {
}
companyIds.push(company.id);
tracker.track('companies', company.id);
if (company.company_type !== companyType) {
throw new Error(`Expected company_type "${companyType}", got "${company.company_type}"`);
@@ -266,8 +273,10 @@ export const submissionTestSuite: TestSuite = {
timestamp: new Date().toISOString()
};
} finally {
for (const id of companyIds) {
await supabase.from('companies').delete().eq('id', id);
await tracker.cleanup();
const remaining = await tracker.verifyCleanup();
if (remaining.length > 0) {
console.warn('submission-003 cleanup incomplete:', remaining);
}
}
}