Add unit tests for clients, auth, and theme

This commit is contained in:
2026-01-27 18:30:06 +00:00
parent e39cb841ed
commit ce6e7598dd
3 changed files with 364 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:network_app/config/theme.dart';
void main() {
group('AppTheme', () {
test('light theme uses Material 3', () {
final theme = AppTheme.light;
expect(theme.useMaterial3, isTrue);
});
test('dark theme uses Material 3', () {
final theme = AppTheme.dark;
expect(theme.useMaterial3, isTrue);
});
test('light theme has light brightness', () {
final theme = AppTheme.light;
expect(theme.colorScheme.brightness, Brightness.light);
});
test('dark theme has dark brightness', () {
final theme = AppTheme.dark;
expect(theme.colorScheme.brightness, Brightness.dark);
});
test('app bar is centered', () {
final theme = AppTheme.light;
expect(theme.appBarTheme.centerTitle, isTrue);
});
test('app bar has no elevation', () {
final theme = AppTheme.light;
expect(theme.appBarTheme.elevation, 0);
});
});
group('Color Constants', () {
test('primary color is defined', () {
const primaryColor = Color(0xFF2563EB);
expect(primaryColor.value, 0xFF2563EB);
});
test('primary color is blue', () {
const primaryColor = Color(0xFF2563EB);
expect(primaryColor.blue, greaterThan(200));
});
});
group('Input Decoration', () {
test('inputs are filled', () {
final theme = AppTheme.light;
expect(theme.inputDecorationTheme.filled, isTrue);
});
test('border radius is 12', () {
final theme = AppTheme.light;
final border = theme.inputDecorationTheme.border as OutlineInputBorder?;
expect(border?.borderRadius, BorderRadius.circular(12));
});
});
group('Button Themes', () {
test('elevated button has padding', () {
final theme = AppTheme.light;
final buttonStyle = theme.elevatedButtonTheme.style;
expect(buttonStyle, isNotNull);
});
test('text button has padding', () {
final theme = AppTheme.light;
final buttonStyle = theme.textButtonTheme.style;
expect(buttonStyle, isNotNull);
});
});
group('Card Theme', () {
test('cards have no elevation', () {
final theme = AppTheme.light;
expect(theme.cardTheme.elevation, 0);
});
test('cards have rounded corners', () {
final theme = AppTheme.light;
final shape = theme.cardTheme.shape as RoundedRectangleBorder?;
expect(shape?.borderRadius, BorderRadius.circular(12));
});
});
}