Files
jiu/client/test/theme/app_tokens_test.dart
2026-06-24 21:30:31 +08:00

39 lines
2.1 KiB
Dart

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),
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);
});
}