import 'package:eatvio_app/features/settings/models/oauth_attach_request.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { group('OAuthAttachRequest', () { test('creates OAuthAttachRequest with all parameters', () { const request = OAuthAttachRequest( provider: 'google', clientId: 'client123', accessToken: 'access_token_123', refreshToken: 'refresh_token_123', ); expect(request.provider, 'google'); expect(request.clientId, 'client123'); expect(request.accessToken, 'access_token_123'); expect(request.refreshToken, 'refresh_token_123'); }); test('creates OAuthAttachRequest with null clientId', () { const request = OAuthAttachRequest( provider: 'facebook', clientId: null, accessToken: 'access_token_456', refreshToken: 'refresh_token_456', ); expect(request.provider, 'facebook'); expect(request.clientId, null); expect(request.accessToken, 'access_token_456'); expect(request.refreshToken, 'refresh_token_456'); }); test('creates OAuthAttachRequest from JSON with clientId', () { final json = { 'provider': 'google', 'client_id': 'client123', 'access_token': 'access_token_123', 'refresh_token': 'refresh_token_123', }; final request = OAuthAttachRequest.fromJson(json); expect(request.provider, 'google'); expect(request.clientId, 'client123'); expect(request.accessToken, 'access_token_123'); expect(request.refreshToken, 'refresh_token_123'); }); test('creates OAuthAttachRequest from JSON without clientId', () { final json = { 'provider': 'facebook', 'access_token': 'access_token_456', 'refresh_token': 'refresh_token_456', }; final request = OAuthAttachRequest.fromJson(json); expect(request.provider, 'facebook'); expect(request.clientId, null); expect(request.accessToken, 'access_token_456'); expect(request.refreshToken, 'refresh_token_456'); }); test('creates OAuthAttachRequest with different providers', () { const googleRequest = OAuthAttachRequest( provider: 'google', accessToken: 'token1', refreshToken: 'refresh1', ); const facebookRequest = OAuthAttachRequest( provider: 'facebook', accessToken: 'token2', refreshToken: 'refresh2', ); expect(googleRequest.provider, 'google'); expect(facebookRequest.provider, 'facebook'); }); }); }