
import { SupabaseClient } from '@supabase/supabase-js';
import { supabase } from '../client';
import { LoginTestResult, TestResult } from './types';

// Supabase 인증 서비스 테스트
export const testAuth = async (
  supabase: SupabaseClient,
  url: string
): Promise<TestResult> => {
  try {
    console.log('인증 서비스 테스트 시작...');
    const { data, error } = await supabase.auth.getSession();
    
    if (error) {
      console.error('인증 테스트 실패:', error);
      return { success: false, error: `인증 서비스 오류: ${error.message}` };
    }
    
    console.log('인증 테스트 성공');
    return { success: true, error: null };
  } catch (err: any) {
    console.error('인증 테스트 중 예외:', err);
    return { 
      success: false, 
      error: `인증 테스트 중 예외 발생: ${err.message || '알 수 없는 오류'}`
    };
  }
};

// 테스트용 직접 로그인 함수 (디버깅 전용)
export const testSupabaseLogin = async (email: string, password: string): Promise<LoginTestResult> => {
  try {
    console.log('테스트 로그인 시도:', email);
    
    const { data, error } = await supabase.auth.signInWithPassword({
      email,
      password
    });
    
    if (error) {
      console.error('테스트 로그인 오류:', error);
      return { success: false, error };
    }
    
    console.log('테스트 로그인 성공:', data);
    return { success: true, data };
  } catch (err) {
    console.error('테스트 로그인 중 예외 발생:', err);
    return { success: false, error: err };
  }
};

// 인증 서비스 테스트
export const testAuthService = async (): Promise<{ success: boolean; error?: any }> => {
  try {
    console.log('인증 서비스 테스트 시작...');
    const { data, error } = await supabase.auth.getSession();
    
    if (error) {
      console.error('인증 테스트 실패:', error);
      return { success: false, error };
    }
    
    console.log('인증 테스트 성공');
    return { success: true };
  } catch (err) {
    console.error('인증 테스트 중 예외:', err);
    return { success: false, error: err };
  }
};
