mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-25 03:11:13 -05:00
feat: Integrate TestDataTracker into all test suites
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user