mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-24 22:31: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 dataIntegrityTestSuite: TestSuite = {
|
||||
id: 'data-integrity',
|
||||
@@ -102,7 +103,8 @@ export const dataIntegrityTestSuite: TestSuite = {
|
||||
slug,
|
||||
park_id: invalidParkId,
|
||||
category: 'roller_coaster',
|
||||
status: 'operating'
|
||||
status: 'operating',
|
||||
is_test_data: true
|
||||
});
|
||||
|
||||
// This SHOULD fail with foreign key violation
|
||||
@@ -150,6 +152,7 @@ export const dataIntegrityTestSuite: TestSuite = {
|
||||
description: 'Tests unique constraints prevent duplicate slugs',
|
||||
run: async (): Promise<TestResult> => {
|
||||
const startTime = Date.now();
|
||||
const tracker = new TestDataTracker();
|
||||
let parkId: string | null = null;
|
||||
|
||||
try {
|
||||
@@ -161,7 +164,8 @@ export const dataIntegrityTestSuite: TestSuite = {
|
||||
name: 'Unique Test Park',
|
||||
slug,
|
||||
park_type: 'theme_park',
|
||||
status: 'operating'
|
||||
status: 'operating',
|
||||
is_test_data: true
|
||||
})
|
||||
.select('id')
|
||||
.single();
|
||||
@@ -170,6 +174,7 @@ export const dataIntegrityTestSuite: TestSuite = {
|
||||
if (!park) throw new Error('No park returned');
|
||||
|
||||
parkId = park.id;
|
||||
tracker.track('parks', parkId);
|
||||
|
||||
// Try to create another park with same slug
|
||||
const { error: duplicateError } = await supabase
|
||||
@@ -178,7 +183,8 @@ export const dataIntegrityTestSuite: TestSuite = {
|
||||
name: 'Duplicate Park',
|
||||
slug, // Same slug
|
||||
park_type: 'theme_park',
|
||||
status: 'operating'
|
||||
status: 'operating',
|
||||
is_test_data: true
|
||||
});
|
||||
|
||||
// This SHOULD fail with unique violation
|
||||
@@ -218,8 +224,10 @@ export const dataIntegrityTestSuite: 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('integrity-003 cleanup incomplete:', remaining);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user