Compare commits

...

2 commits

Author SHA1 Message Date
Matyáš Caras
54599c7d37
chore: 💄 change theme and icons 2023-09-14 18:12:54 +02:00
Matyáš Caras
a123556ea3
test: create base test 2023-09-14 18:12:54 +02:00
43 changed files with 299 additions and 83 deletions

View file

@ -1,4 +1,6 @@
# prasule # prasule
[![Codemagic build status](https://api.codemagic.io/apps/64faee78aae8c48abc70dbc6/64faee78aae8c48abc70dbc5/status_badge.svg)](https://codemagic.io/apps/64faee78aae8c48abc70dbc6/64faee78aae8c48abc70dbc5/latest_build) [![Bug issue count](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.mnau.xyz%2Fapi%2Fv1%2Frepos%2Fhernik%2Fprasule%2Fissues%3Flabels%3DKind%2FBug&query=%24.length&logo=forgejo&label=bug%20issues&color=red)](https://git.mnau.xyz/hernik/prasule/issues?q=&type=all&sort=&state=open&labels=144&milestone=0&project=0&assignee=0&poster=0)
Expense manager Expense manager
## License ## License
@ -18,4 +20,4 @@ Expense manager
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
``` ```
The base app includes the [tessdata_best](https://github.com/tesseract-ocr/tessdata_best) English trained data, ©️ [tessdata_best / Tesseract contributors](https://github.com/tesseract-ocr/tessdata_best/graphs/contributors), used under the [Apache 2.0 license](https://github.com/tesseract-ocr/tessdata_best/blob/main/LICENSE) The base app includes the [tessdata_best](https://github.com/tesseract-ocr/tessdata_best) English trained data, ©️ [tessdata_best / Tesseract contributors](https://github.com/tesseract-ocr/tessdata_best/graphs/contributors), used under the [Apache 2.0 license](https://github.com/tesseract-ocr/tessdata_best/blob/main/LICENSE)

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#2ce086</color>
</resources>

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
assets/icon/full_ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View file

@ -0,0 +1,25 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:prasule/main.dart';
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
group("Test Setup screen:", () {
testWidgets('First-time setup', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(const MyApp());
expect(find.text('Welcome!'), findsOneWidget);
// // Tap the '+' icon and trigger a frame.
// await tester.tap(find.byIcon(Icons.add));
// await tester.pump();
// // Verify that our counter has incremented.
// expect(find.text('0'), findsNothing);
// expect(find.text('1'), findsOneWidget);
});
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View file

@ -36,4 +36,11 @@ class WalletManager {
} }
wallet.writeAsStringSync(jsonEncode(w.toJson())); wallet.writeAsStringSync(jsonEncode(w.toJson()));
} }
static Future<void> deleteWallet(Wallet w) async {
var path =
Directory("${(await getApplicationDocumentsDirectory()).path}/wallets");
var wallet = File("${path.path}/${w.name}");
wallet.deleteSync();
}
} }

View file

@ -33,7 +33,12 @@ class MyApp extends StatelessWidget {
), ),
) )
: Theme( : Theme(
data: ThemeData(useMaterial3: true, colorScheme: lightColorScheme), data: ThemeData(
useMaterial3: true,
colorScheme: (MediaQuery.of(context).platformBrightness ==
Brightness.dark)
? darkColorScheme
: lightColorScheme),
child: const CupertinoApp( child: const CupertinoApp(
title: 'Prašule', title: 'Prašule',
home: HomeView(), home: HomeView(),

View file

@ -2,68 +2,68 @@ import 'package:flutter/material.dart';
const lightColorScheme = ColorScheme( const lightColorScheme = ColorScheme(
brightness: Brightness.light, brightness: Brightness.light,
primary: Color(0xFF006D34), primary: Color(0xFF006D3C),
onPrimary: Color(0xFFFFFFFF), onPrimary: Color(0xFFFFFFFF),
primaryContainer: Color(0xFF89FAA5), primaryContainer: Color(0xFF5AFFA2),
onPrimaryContainer: Color(0xFF00210B), onPrimaryContainer: Color(0xFF00210E),
secondary: Color(0xFF506352), secondary: Color(0xFF4F6353),
onSecondary: Color(0xFFFFFFFF), onSecondary: Color(0xFFFFFFFF),
secondaryContainer: Color(0xFFD3E8D2), secondaryContainer: Color(0xFFD2E8D4),
onSecondaryContainer: Color(0xFF0E1F12), onSecondaryContainer: Color(0xFF0D1F13),
tertiary: Color(0xFF286C2A), tertiary: Color(0xFF006B55),
onTertiary: Color(0xFFFFFFFF), onTertiary: Color(0xFFFFFFFF),
tertiaryContainer: Color(0xFFABF4A2), tertiaryContainer: Color(0xFF7FF8D3),
onTertiaryContainer: Color(0xFF002203), onTertiaryContainer: Color(0xFF002118),
error: Color(0xFFBA1A1A), error: Color(0xFFBA1A1A),
errorContainer: Color(0xFFFFDAD6), errorContainer: Color(0xFFFFDAD6),
onError: Color(0xFFFFFFFF), onError: Color(0xFFFFFFFF),
onErrorContainer: Color(0xFF410002), onErrorContainer: Color(0xFF410002),
background: Color(0xFFFCFDF7), background: Color(0xFFFBFDF8),
onBackground: Color(0xFF191C19), onBackground: Color(0xFF191C19),
surface: Color(0xFFFCFDF7), surface: Color(0xFFFBFDF8),
onSurface: Color(0xFF191C19), onSurface: Color(0xFF191C19),
surfaceVariant: Color(0xFFDDE5DA), surfaceVariant: Color(0xFFDCE5DB),
onSurfaceVariant: Color(0xFF414941), onSurfaceVariant: Color(0xFF414942),
outline: Color(0xFF717970), outline: Color(0xFF717971),
onInverseSurface: Color(0xFFF0F1EC), onInverseSurface: Color(0xFFF0F1EC),
inverseSurface: Color(0xFF2E312E), inverseSurface: Color(0xFF2E312E),
inversePrimary: Color(0xFF6DDD8B), inversePrimary: Color(0xFF2FE288),
shadow: Color(0xFF000000), shadow: Color(0xFF000000),
surfaceTint: Color(0xFF006D34), surfaceTint: Color(0xFF006D3C),
outlineVariant: Color(0xFFC1C9BE), outlineVariant: Color(0xFFC0C9BF),
scrim: Color(0xFF000000), scrim: Color(0xFF000000),
); );
const darkColorScheme = ColorScheme( const darkColorScheme = ColorScheme(
brightness: Brightness.dark, brightness: Brightness.dark,
primary: Color(0xFF6DDD8B), primary: Color(0xFF2FE288),
onPrimary: Color(0xFF003918), onPrimary: Color(0xFF00391D),
primaryContainer: Color(0xFF005225), primaryContainer: Color(0xFF00522C),
onPrimaryContainer: Color(0xFF89FAA5), onPrimaryContainer: Color(0xFF5AFFA2),
secondary: Color(0xFFB7CCB7), secondary: Color(0xFFB6CCB9),
onSecondary: Color(0xFF233426), onSecondary: Color(0xFF223527),
secondaryContainer: Color(0xFF394B3B), secondaryContainer: Color(0xFF384B3D),
onSecondaryContainer: Color(0xFFD3E8D2), onSecondaryContainer: Color(0xFFD2E8D4),
tertiary: Color(0xFF90D889), tertiary: Color(0xFF61DBB7),
onTertiary: Color(0xFF003908), onTertiary: Color(0xFF00382B),
tertiaryContainer: Color(0xFF095314), tertiaryContainer: Color(0xFF00513F),
onTertiaryContainer: Color(0xFFABF4A2), onTertiaryContainer: Color(0xFF7FF8D3),
error: Color(0xFFFFB4AB), error: Color(0xFFFFB4AB),
errorContainer: Color(0xFF93000A), errorContainer: Color(0xFF93000A),
onError: Color(0xFF690005), onError: Color(0xFF690005),
onErrorContainer: Color(0xFFFFDAD6), onErrorContainer: Color(0xFFFFDAD6),
background: Color(0xFF191C19), background: Color(0xFF191C19),
onBackground: Color(0xFFE2E3DE), onBackground: Color(0xFFE1E3DE),
surface: Color(0xFF191C19), surface: Color(0xFF191C19),
onSurface: Color(0xFFE2E3DE), onSurface: Color(0xFFE1E3DE),
surfaceVariant: Color(0xFF414941), surfaceVariant: Color(0xFF414942),
onSurfaceVariant: Color(0xFFC1C9BE), onSurfaceVariant: Color(0xFFC0C9BF),
outline: Color(0xFF8B9389), outline: Color(0xFF8B938A),
onInverseSurface: Color(0xFF191C19), onInverseSurface: Color(0xFF191C19),
inverseSurface: Color(0xFFE2E3DE), inverseSurface: Color(0xFFE1E3DE),
inversePrimary: Color(0xFF006D34), inversePrimary: Color(0xFF006D3C),
shadow: Color(0xFF000000), shadow: Color(0xFF000000),
surfaceTint: Color(0xFF6DDD8B), surfaceTint: Color(0xFF2FE288),
outlineVariant: Color(0xFF414941), outlineVariant: Color(0xFF414942),
scrim: Color(0xFF000000), scrim: Color(0xFF000000),
); );

View file

@ -17,6 +17,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.0" version: "6.0.0"
archive:
dependency: transitive
description:
name: archive
sha256: e0902a06f0e00414e4e3438a084580161279f137aeb862274710f29ec10cf01e
url: "https://pub.dev"
source: hosted
version: "3.3.9"
args: args:
dependency: transitive dependency: transitive
description: description:
@ -121,6 +129,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.3" version: "2.0.3"
cli_util:
dependency: transitive
description:
name: cli_util
sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7
url: "https://pub.dev"
source: hosted
version: "0.4.0"
clock: clock:
dependency: transitive dependency: transitive
description: description:
@ -141,10 +157,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.17.2" version: "1.18.0"
convert: convert:
dependency: transitive dependency: transitive
description: description:
@ -153,6 +169,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.1" version: "3.1.1"
coverage:
dependency: transitive
description:
name: coverage
sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097"
url: "https://pub.dev"
source: hosted
version: "1.6.3"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
@ -189,10 +213,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: dart_internal name: dart_internal
sha256: dae3976f383beddcfcd07ad5291a422df2c8c0a8a03c52cda63ac7b4f26e0f4e sha256: "689dccc3d5f62affd339534cca548dce12b3a6b32f0f10861569d3025efc0567"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.8" version: "0.2.9"
dart_style: dart_style:
dependency: transitive dependency: transitive
description: description:
@ -245,10 +269,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: file name: file
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "6.1.4"
file_selector_linux: file_selector_linux:
dependency: transitive dependency: transitive
description: description:
@ -294,6 +318,11 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_driver:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_iconpicker: flutter_iconpicker:
dependency: "direct main" dependency: "direct main"
description: description:
@ -350,6 +379,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
flutter_launcher_icons:
dependency: "direct dev"
description:
name: flutter_launcher_icons
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
url: "https://pub.dev"
source: hosted
version: "0.13.1"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -408,6 +445,11 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.0" version: "3.2.0"
fuchsia_remote_debug_protocol:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
glob: glob:
dependency: transitive dependency: transitive
description: description:
@ -456,6 +498,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.2" version: "4.0.2"
image:
dependency: transitive
description:
name: image
sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf
url: "https://pub.dev"
source: hosted
version: "4.0.17"
image_picker: image_picker:
dependency: "direct main" dependency: "direct main"
description: description:
@ -520,6 +570,11 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.1" version: "0.2.1"
integration_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
intl: intl:
dependency: "direct main" dependency: "direct main"
description: description:
@ -632,6 +687,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
node_preamble:
dependency: transitive
description:
name: node_preamble
sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
url: "https://pub.dev"
source: hosted
version: "2.0.2"
package_config: package_config:
dependency: transitive dependency: transitive
description: description:
@ -696,6 +759,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.7" version: "2.1.7"
petitparser:
dependency: transitive
description:
name: petitparser
sha256: eeb2d1428ee7f4170e2bd498827296a18d4e7fc462b71727d111c0ac7707cfa6
url: "https://pub.dev"
source: hosted
version: "6.0.1"
platform: platform:
dependency: transitive dependency: transitive
description: description:
@ -712,6 +783,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.5" version: "2.1.5"
pointycastle:
dependency: transitive
description:
name: pointycastle
sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c"
url: "https://pub.dev"
source: hosted
version: "3.7.3"
pool: pool:
dependency: transitive dependency: transitive
description: description:
@ -720,6 +799,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.5.1" version: "1.5.1"
process:
dependency: transitive
description:
name: process
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.4"
provider: provider:
dependency: transitive dependency: transitive
description: description:
@ -760,6 +847,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.1" version: "1.4.1"
shelf_packages_handler:
dependency: transitive
description:
name: shelf_packages_handler
sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
shelf_static:
dependency: transitive
description:
name: shelf_static
sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e
url: "https://pub.dev"
source: hosted
version: "1.1.2"
shelf_web_socket: shelf_web_socket:
dependency: transitive dependency: transitive
description: description:
@ -789,6 +892,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.4" version: "1.3.4"
source_map_stack_trace:
dependency: transitive
description:
name: source_map_stack_trace
sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
source_maps:
dependency: transitive
description:
name: source_maps
sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
url: "https://pub.dev"
source: hosted
version: "0.10.12"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
@ -801,18 +920,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.11.0" version: "1.11.1"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
@ -829,6 +948,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
sync_http:
dependency: transitive
description:
name: sync_http
sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961"
url: "https://pub.dev"
source: hosted
version: "0.3.1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
@ -837,14 +964,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
test:
dependency: "direct dev"
description:
name: test
sha256: "9b0dd8e36af4a5b1569029949d50a52cb2a2a2fdaa20cebb96e6603b9ae241f9"
url: "https://pub.dev"
source: hosted
version: "1.24.6"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.0" version: "0.6.1"
test_core:
dependency: transitive
description:
name: test_core
sha256: "4bef837e56375537055fdbbbf6dd458b1859881f4c7e6da936158f77d61ab265"
url: "https://pub.dev"
source: hosted
version: "0.5.6"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -869,6 +1012,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "0fae432c85c4ea880b33b497d32824b97795b04cdaa74d270219572a1f50268d"
url: "https://pub.dev"
source: hosted
version: "11.9.0"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
@ -893,6 +1044,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.0" version: "2.4.0"
webdriver:
dependency: transitive
description:
name: webdriver
sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
webkit_inspection_protocol:
dependency: transitive
description:
name: webkit_inspection_protocol
sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
win32: win32:
dependency: transitive dependency: transitive
description: description:
@ -909,6 +1076,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
xml:
dependency: transitive
description:
name: xml
sha256: af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556
url: "https://pub.dev"
source: hosted
version: "6.4.2"
yaml: yaml:
dependency: transitive dependency: transitive
description: description:
@ -918,5 +1093,5 @@ packages:
source: hosted source: hosted
version: "3.1.2" version: "3.1.2"
sdks: sdks:
dart: ">=3.1.0-262.2.beta <3.2.0" dart: ">=3.1.0-262.2.beta <3.3.0"
flutter: ">=3.4.0-17.0.pre" flutter: ">=3.4.0-17.0.pre"

View file

@ -62,6 +62,28 @@ dev_dependencies:
# rules and activating additional ones. # rules and activating additional ones.
flutter_lints: ^2.0.0 flutter_lints: ^2.0.0
build_runner: ^2.4.6 build_runner: ^2.4.6
test: ^1.24.6
integration_test:
sdk: flutter
flutter_launcher_icons: ^0.13.1
flutter_launcher_icons:
android: true
ios: true
image_path: "assets/icon/full_ico.png"
min_sdk_android: 21 # android min sdk min:16, default 21
adaptive_icon_background: "#2ce086"
adaptive_icon_foreground: "assets/icon/dynamic_foreground.png"
remove_alpha_ios: true
# web:
# generate: true
# background_color: "#2fe288"
# theme_color: "#2fe288"
# windows:
# generate: true
# icon_size: 48 # min:48, max:256, default: 48
# macos:
# generate: true
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -1,30 +0,0 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility in the flutter_test package. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:prasule/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(const MyApp());
// Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing);
// Tap the '+' icon and trigger a frame.
await tester.tap(find.byIcon(Icons.add));
await tester.pump();
// Verify that our counter has incremented.
expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget);
});
}