From 873d56e35f354f8275f45ad6f37915f754027cc8 Mon Sep 17 00:00:00 2001 From: kyy Date: Wed, 8 Apr 2026 16:12:31 +0900 Subject: [PATCH] =?UTF-8?q?=ED=85=8C=EB=A7=88=20=EC=98=81=EC=86=8D?= =?UTF-8?q?=ED=99=94=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- userfront/test/theme_controller_test.dart | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 userfront/test/theme_controller_test.dart diff --git a/userfront/test/theme_controller_test.dart b/userfront/test/theme_controller_test.dart new file mode 100644 index 00000000..1c829b93 --- /dev/null +++ b/userfront/test/theme_controller_test.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:userfront/core/theme/theme_controller.dart'; + +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + setUp(() async { + SharedPreferences.setMockInitialValues({}); + await ThemeController.instance.setThemeMode(ThemeMode.light); + }); + + test('저장된 dark 값을 복원한다', () async { + SharedPreferences.setMockInitialValues({ + ThemeController.storageKey: 'dark', + }); + + await ThemeController.instance.restore(); + + expect(ThemeController.instance.value, ThemeMode.dark); + }); + + test('toggle 결과를 저장한다', () async { + await ThemeController.instance.restore(); + await ThemeController.instance.toggle(); + + final prefs = await SharedPreferences.getInstance(); + expect(ThemeController.instance.value, ThemeMode.dark); + expect(prefs.getString(ThemeController.storageKey), 'dark'); + }); +}