import { describe, it, expect } from 'vitest';
import type {
  LoginFormData,
  RegisterFormData,
  ForgotPasswordFormData,
  ResetPasswordFormData,
} from './types';

describe('Auth Types', () => {
  describe('LoginFormData', () => {
    it('should have correct structure', () => {
      const loginData: LoginFormData = {
        email: 'test@example.com',
        password: 'password123',
      };

      expect(loginData.email).toBe('test@example.com');
      expect(loginData.password).toBe('password123');
    });
  });

  describe('RegisterFormData', () => {
    it('should have correct structure', () => {
      const registerData: RegisterFormData = {
        email: 'test@example.com',
        password: 'password123',
        confirmPassword: 'password123',
        username: 'testuser',
      };

      expect(registerData.email).toBe('test@example.com');
      expect(registerData.password).toBe('password123');
      expect(registerData.confirmPassword).toBe('password123');
      expect(registerData.username).toBe('testuser');
    });
  });

  describe('ForgotPasswordFormData', () => {
    it('should have correct structure', () => {
      const forgotPasswordData: ForgotPasswordFormData = {
        email: 'test@example.com',
      };

      expect(forgotPasswordData.email).toBe('test@example.com');
    });
  });

  describe('ResetPasswordFormData', () => {
    it('should have correct structure', () => {
      const resetPasswordData: ResetPasswordFormData = {
        token: 'reset-token-123',
        password: 'newpassword123',
        confirmPassword: 'newpassword123',
      };

      expect(resetPasswordData.token).toBe('reset-token-123');
      expect(resetPasswordData.password).toBe('newpassword123');
      expect(resetPasswordData.confirmPassword).toBe('newpassword123');
    });
  });
});
