mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 11:11:14 -05:00
64 lines
2.0 KiB
TypeScript
64 lines
2.0 KiB
TypeScript
/**
|
|
* Moderation Queue & Workflow Integration Tests
|
|
*
|
|
* Tests for moderation queue operations, locking, and state management.
|
|
*/
|
|
|
|
import { supabase } from '@/lib/supabaseClient';
|
|
import type { TestSuite, TestResult } from '../testRunner';
|
|
|
|
export const moderationTestSuite: TestSuite = {
|
|
id: 'moderation',
|
|
name: 'Moderation Queue & Workflow',
|
|
description: 'Tests for moderation queue operations and submission workflows',
|
|
tests: [
|
|
{
|
|
id: 'moderation-001',
|
|
name: 'Moderation Functions Available',
|
|
description: 'Validates moderation database functions are accessible',
|
|
run: async (): Promise<TestResult> => {
|
|
const startTime = Date.now();
|
|
|
|
try {
|
|
const { data: userData } = await supabase.auth.getUser();
|
|
if (!userData.user) throw new Error('No authenticated user');
|
|
|
|
// Test that moderation functions exist and are callable
|
|
const { data: isMod, error: modError } = await supabase
|
|
.rpc('is_moderator', {
|
|
_user_id: userData.user.id
|
|
});
|
|
|
|
if (modError) throw new Error(`is_moderator function failed: ${modError.message}`);
|
|
|
|
const duration = Date.now() - startTime;
|
|
|
|
return {
|
|
id: 'moderation-001',
|
|
name: 'Moderation Functions Available',
|
|
suite: 'Moderation Queue & Workflow',
|
|
status: 'pass',
|
|
duration,
|
|
timestamp: new Date().toISOString(),
|
|
details: {
|
|
isModerator: isMod,
|
|
functionsAccessible: true
|
|
}
|
|
};
|
|
|
|
} catch (error) {
|
|
return {
|
|
id: 'moderation-001',
|
|
name: 'Moderation Functions Available',
|
|
suite: 'Moderation Queue & Workflow',
|
|
status: 'fail',
|
|
duration: Date.now() - startTime,
|
|
error: error instanceof Error ? error.message : String(error),
|
|
timestamp: new Date().toISOString()
|
|
};
|
|
}
|
|
}
|
|
}
|
|
]
|
|
};
|