import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:jiu_client/core/theme/app_tokens.dart'; AppTokens _sample() => const AppTokens( page: Color(0xFF111111), bg: Color(0xFF222222), surface: Color(0xFF333333), border: Color(0xFF444444), borderSubtle: Color(0xFF555555), text: Color(0xFF666666), heading: Color(0xFF777777), title: Color(0xFF888888), muted: Color(0xFF999999), faint: Color(0xFFAAAAAA), primary: Color(0xFF2563AC), primaryDark: Color(0xFF154072), onPrimary: Color(0xFFFFFFFF), brand400: Color(0xFF4F86C6), brand50: Color(0xFFEEF4FB), accent: Color(0xFF8B2331), success: Color(0xFF2E8B57), danger: Color(0xFFD14343), warn: Color(0xFFE08E00), infoSoft: Color(0xFFEEF4FB), okSoft: Color(0xFFE8F5EE), accentSoft: Color(0xFFFAEEF0), successBg: Color(0xFFE8F5EE), dangerBg: Color(0xFFFDECEC), warnBg: Color(0xFFFFF4DB), thBg: Color(0xFFF7F9FC), rowHover: Color(0xFFEEF4FB), shadow: Color(0x33142846), topBg: Color(0xFF2563AC), topFg: Color(0xFFFFFFFF), topFaint: Color(0xB8FFFFFF), topBorder: Color(0xFF1E5594), topControl: Color(0x29FFFFFF), topMarkBg: Color(0x38FFFFFF), topMarkFg: Color(0xFFFFFFFF), sideBg: Color(0xFF163A6C), sideFg: Color(0xFFC4D6ED), sideMuted: Color(0xFF7C9FCB), sideActiveBg: Color(0xFF2C6BB3), sideActiveFg: Color(0xFFFFFFFF), sideBorder: Color(0xFF1E4A86), sideHover: Color(0xFF1C4680), menuUserBg: Color(0xFF3C79C0), menuUserFg: Color(0xFFFFFFFF), menuUserHover: Color(0xFF4D88CC), toastBg: Color(0xFF1F2330), isDark: false, ); void main() { test('copyWith overrides one field, keeps others', () { final t = _sample().copyWith(primary: const Color(0xFF000000)); expect(t.primary, const Color(0xFF000000)); expect(t.surface, const Color(0xFF333333)); expect(t.isDark, false); }); test('lerp at t=0 returns first, t=1 returns second', () { final a = _sample(); final b = _sample().copyWith(primary: const Color(0xFFFFFFFF)); expect(a.lerp(b, 0).primary, a.primary); expect(a.lerp(b, 1).primary, b.primary); }); }