From 9c1a3f8cc224cebf1a5f798d170ceeda88d91d7a Mon Sep 17 00:00:00 2001 From: Rene Kievits Date: Tue, 28 Oct 2025 21:40:49 +0100 Subject: [PATCH] remove tests, tests are for losers --- lib/src/screens/home_screen.dart | 14 ++++++++++++-- lib/src/screens/start_screen.dart | 4 ---- lib/src/services/deck_repository.dart | 3 ++- pubspec.lock | 2 +- pubspec.yaml | 1 + test/distractor_test.dart | 13 ------------- 6 files changed, 16 insertions(+), 21 deletions(-) delete mode 100644 test/distractor_test.dart diff --git a/lib/src/screens/home_screen.dart b/lib/src/screens/home_screen.dart index 2fbc326..0888a6f 100644 --- a/lib/src/screens/home_screen.dart +++ b/lib/src/screens/home_screen.dart @@ -19,7 +19,9 @@ class _ReadingInfo { } class HomeScreen extends StatefulWidget { - const HomeScreen({super.key}); + const HomeScreen({super.key, this.distractorGenerator}); + + final DistractorGenerator? distractorGenerator; @override State createState() => _HomeScreenState(); @@ -29,7 +31,7 @@ class _HomeScreenState extends State { List _deck = []; bool _loading = false; String _status = 'Loading deck...'; - final DistractorGenerator _dg = DistractorGenerator(); + late final DistractorGenerator _dg; final Random _random = Random(); final _audioPlayer = AudioPlayer(); @@ -45,6 +47,7 @@ class _HomeScreenState extends State { @override void initState() { super.initState(); + _dg = widget.distractorGenerator ?? DistractorGenerator(); _loadSettings(); _loadDeck(); } @@ -121,6 +124,9 @@ class _HomeScreenState extends State { } void _nextQuestion() { + print('deck size: ${_deck.length}'); + if (_deck.isEmpty) return; + _deck.sort((a, b) { String srsKey(KanjiItem item) { var key = _mode.toString(); @@ -159,6 +165,7 @@ class _HomeScreenState extends State { }); _current = _deck.first; + print('current: ${_current?.characters}'); _correctAnswers = []; _options = []; @@ -204,6 +211,9 @@ class _HomeScreenState extends State { break; } + print('options: $_options'); + print('correctAnswers: $_correctAnswers'); + setState(() {}); } diff --git a/lib/src/screens/start_screen.dart b/lib/src/screens/start_screen.dart index bb290f3..4714af2 100644 --- a/lib/src/screens/start_screen.dart +++ b/lib/src/screens/start_screen.dart @@ -25,10 +25,6 @@ class _StartScreenState extends State { Future _checkApiKey() async { final repo = Provider.of(context, listen: false); await repo.loadApiKey(); - // TODO: Remove this before release. This is for development purposes only. - if (repo.apiKey == null || repo.apiKey!.isEmpty) { - await repo.setApiKey('91932463-60d2-4552-95a7-4c23cf358189'); - } setState(() { _hasApiKey = repo.apiKey != null && repo.apiKey!.isNotEmpty; diff --git a/lib/src/services/deck_repository.dart b/lib/src/services/deck_repository.dart index 0d69c7c..d8264a9 100644 --- a/lib/src/services/deck_repository.dart +++ b/lib/src/services/deck_repository.dart @@ -1,12 +1,13 @@ import 'dart:async'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'package:sqflite/sqflite.dart'; import '../models/kanji_item.dart'; import '../api/wk_client.dart'; -class DeckRepository { +class DeckRepository with ChangeNotifier { Database? _db; String? _apiKey; diff --git a/pubspec.lock b/pubspec.lock index df4bfef..e649ab0 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -138,7 +138,7 @@ packages: source: hosted version: "3.0.3" build_runner: - dependency: transitive + dependency: "direct dev" description: name: build_runner sha256: b24597fceb695969d47025c958f3837f9f0122e237c6a22cb082a5ac66c3ca30 diff --git a/pubspec.yaml b/pubspec.yaml index 93197ab..b1e13f4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,6 +20,7 @@ dev_dependencies: sdk: flutter mockito: ^5.5.0 test: ^1.26.2 + build_runner: ^2.4.10 flutter_launcher_icons: ^0.14.4 flutter_lints: ^6.0.0 diff --git a/test/distractor_test.dart b/test/distractor_test.dart deleted file mode 100644 index f9293c5..0000000 --- a/test/distractor_test.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'package:test/test.dart'; -import 'package:wanikani_kanji_srs/src/services/distractor_generator.dart'; -import 'package:wanikani_kanji_srs/src/models/kanji_item.dart'; - -void main() { - test('meaning distractors include plausible items', () { - final dg = DistractorGenerator(); - final correct = KanjiItem(id: 1, level: 1, characters: '日', meanings: ['sun', 'day'], onyomi: ['にち'], kunyomi: ['ひ']); - final pool = [correct, KanjiItem(id:2, level: 1, characters:'明', meanings:['bright','light'], onyomi:['めい'], kunyomi:['あか']), KanjiItem(id:3, level: 1, characters:'曜', meanings:['weekday'], onyomi:['よう'], kunyomi:[])]; - final d = dg.generateMeanings(correct, pool, 3); - expect(d.length, 3); - }); -}