1ac2632c45
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
2.1 KiB
Dart
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);
|
|
});
|
|
}
|