Skip to content

Commit 31e1904

Browse files
authored
Merge pull request #361 from BrawlerXull/taskfunctions-test
Taskfunctions test
2 parents e6d4e43 + 817695b commit 31e1904

12 files changed

+1026
-3
lines changed

pubspec.lock

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,14 @@ packages:
201201
url: "https://pub.dev"
202202
source: hosted
203203
version: "3.1.1"
204+
coverage:
205+
dependency: transitive
206+
description:
207+
name: coverage
208+
sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e"
209+
url: "https://pub.dev"
210+
source: hosted
211+
version: "1.8.0"
204212
cross_file:
205213
dependency: transitive
206214
description:
@@ -503,7 +511,7 @@ packages:
503511
source: hosted
504512
version: "2.0.9"
505513
flutter_test:
506-
dependency: "direct dev"
514+
dependency: "direct main"
507515
description: flutter
508516
source: sdk
509517
version: "0.0.0"
@@ -528,6 +536,14 @@ packages:
528536
url: "https://pub.dev"
529537
source: hosted
530538
version: "4.6.6"
539+
get_test:
540+
dependency: "direct main"
541+
description:
542+
name: get_test
543+
sha256: "558c39cb35fb37bd501f337dc143de60a4314d5ef3b75f4b0551d6741634995b"
544+
url: "https://pub.dev"
545+
source: hosted
546+
version: "4.0.1"
531547
glob:
532548
dependency: transitive
533549
description:
@@ -760,6 +776,14 @@ packages:
760776
url: "https://pub.dev"
761777
source: hosted
762778
version: "1.0.4"
779+
mockito:
780+
dependency: "direct main"
781+
description:
782+
name: mockito
783+
sha256: "6841eed20a7befac0ce07df8116c8b8233ed1f4486a7647c7fc5a02ae6163917"
784+
url: "https://pub.dev"
785+
source: hosted
786+
version: "5.4.4"
763787
nm:
764788
dependency: transitive
765789
description:
@@ -768,6 +792,14 @@ packages:
768792
url: "https://pub.dev"
769793
source: hosted
770794
version: "0.5.0"
795+
node_preamble:
796+
dependency: transitive
797+
description:
798+
name: node_preamble
799+
sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
800+
url: "https://pub.dev"
801+
source: hosted
802+
version: "2.0.2"
771803
package_config:
772804
dependency: transitive
773805
description:
@@ -1037,6 +1069,22 @@ packages:
10371069
url: "https://pub.dev"
10381070
source: hosted
10391071
version: "1.4.1"
1072+
shelf_packages_handler:
1073+
dependency: transitive
1074+
description:
1075+
name: shelf_packages_handler
1076+
sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
1077+
url: "https://pub.dev"
1078+
source: hosted
1079+
version: "3.0.2"
1080+
shelf_static:
1081+
dependency: transitive
1082+
description:
1083+
name: shelf_static
1084+
sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e
1085+
url: "https://pub.dev"
1086+
source: hosted
1087+
version: "1.1.2"
10401088
shelf_web_socket:
10411089
dependency: transitive
10421090
description:
@@ -1058,6 +1106,30 @@ packages:
10581106
description: flutter
10591107
source: sdk
10601108
version: "0.0.99"
1109+
source_gen:
1110+
dependency: transitive
1111+
description:
1112+
name: source_gen
1113+
sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832"
1114+
url: "https://pub.dev"
1115+
source: hosted
1116+
version: "1.5.0"
1117+
source_map_stack_trace:
1118+
dependency: transitive
1119+
description:
1120+
name: source_map_stack_trace
1121+
sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
1122+
url: "https://pub.dev"
1123+
source: hosted
1124+
version: "2.1.1"
1125+
source_maps:
1126+
dependency: transitive
1127+
description:
1128+
name: source_maps
1129+
sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
1130+
url: "https://pub.dev"
1131+
source: hosted
1132+
version: "0.10.12"
10611133
source_span:
10621134
dependency: transitive
10631135
description:
@@ -1154,6 +1226,14 @@ packages:
11541226
url: "https://pub.dev"
11551227
source: hosted
11561228
version: "1.2.1"
1229+
test:
1230+
dependency: "direct main"
1231+
description:
1232+
name: test
1233+
sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073"
1234+
url: "https://pub.dev"
1235+
source: hosted
1236+
version: "1.25.2"
11571237
test_api:
11581238
dependency: transitive
11591239
description:
@@ -1162,6 +1242,14 @@ packages:
11621242
url: "https://pub.dev"
11631243
source: hosted
11641244
version: "0.7.0"
1245+
test_core:
1246+
dependency: transitive
1247+
description:
1248+
name: test_core
1249+
sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4"
1250+
url: "https://pub.dev"
1251+
source: hosted
1252+
version: "0.6.0"
11651253
time:
11661254
dependency: transitive
11671255
description:
@@ -1362,6 +1450,14 @@ packages:
13621450
url: "https://pub.dev"
13631451
source: hosted
13641452
version: "2.4.0"
1453+
webkit_inspection_protocol:
1454+
dependency: transitive
1455+
description:
1456+
name: webkit_inspection_protocol
1457+
sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
1458+
url: "https://pub.dev"
1459+
source: hosted
1460+
version: "1.2.1"
13651461
win32:
13661462
dependency: transitive
13671463
description:

pubspec.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ dependencies:
3131
flutter_platform_widgets: ^6.0.2
3232
flutter_slidable: ^3.0.1
3333
flutter_svg: ^2.0.7
34+
flutter_test:
35+
sdk: flutter
3436
get: ^4.6.5
37+
get_test: ^4.0.1
3538
google_fonts: ^6.1.0
3639
hive: ^2.2.1
3740
hive_flutter: ^1.1.0
@@ -41,6 +44,7 @@ dependencies:
4144
in_app_update: ^4.2.3
4245
intl: ^0.18.0
4346
loggy: ^2.0.1+1
47+
mockito: ^5.4.4
4448
package_info_plus: ^4.0.2
4549
pem: ^2.0.1
4650
permission_handler:
@@ -53,6 +57,7 @@ dependencies:
5357
sizer: ^2.0.15
5458
sqflite: ^2.3.3+1
5559
syncfusion_flutter_charts: ^23.2.7
60+
test: ^1.25.2
5661
timezone: ^0.9.2
5762
tuple: ^2.0.0
5863
tutorial_coach_mark: ^1.2.11
@@ -63,8 +68,6 @@ dev_dependencies:
6368
build_runner: null
6469
flutter_gen_runner: null
6570
flutter_lints: 4.0.0
66-
flutter_test:
67-
sdk: flutter
6871

6972
flutter_gen:
7073
output: lib/app/utils/gen/
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import 'package:test/test.dart';
2+
import 'package:taskwarrior/app/utils/taskfunctions/comparator.dart';
3+
import 'package:taskwarrior/app/models/json/task.dart';
4+
5+
void main() {
6+
final task1 = Task((builder) => builder
7+
..entry = DateTime(2024, 7, 20)
8+
..modified = DateTime(2024, 7, 21)
9+
..start = DateTime(2024, 7, 22)
10+
..due = DateTime(2024, 7, 23)
11+
..priority = 'H'
12+
..project = 'Project A'
13+
..tags.replace(['tag1', 'tag2'])
14+
..status = 'pending'
15+
..uuid = 'uuid1'
16+
..description = 'Task 1 Description'
17+
);
18+
19+
final task2 = Task((builder) => builder
20+
..entry = DateTime(2024, 7, 19)
21+
..modified = DateTime(2024, 7, 18)
22+
..start = DateTime(2024, 7, 21)
23+
..due = DateTime(2024, 7, 22)
24+
..priority = 'L'
25+
..project = 'Project B'
26+
..tags.replace(['tag1'])
27+
..status = 'pending'
28+
..uuid = 'uuid2'
29+
..description = 'Task 2 Description'
30+
);
31+
32+
test('Test compareTasks for Created column', () {
33+
final compare = compareTasks('Created');
34+
expect(compare(task1, task2), greaterThan(0));
35+
});
36+
37+
test('Test compareTasks for Modified column', () {
38+
final compare = compareTasks('Modified');
39+
expect(compare(task1, task2), greaterThan(0));
40+
});
41+
42+
test('Test compareTasks for Start Time column', () {
43+
final compare = compareTasks('Start Time');
44+
expect(compare(task1, task2), greaterThan(0));
45+
});
46+
47+
test('Test compareTasks for Priority column', () {
48+
final compare = compareTasks('Priority');
49+
expect(compare(task1, task2), greaterThan(0));
50+
});
51+
52+
test('Test compareTasks for Project column', () {
53+
final compare = compareTasks('Project');
54+
expect(compare(task1, task2), lessThan(0));
55+
});
56+
57+
test('Test compareTasks for Tags column', () {
58+
final compare = compareTasks('Tags');
59+
expect(compare(task1, task2), greaterThan(0));
60+
});
61+
62+
test('Test compareTasks for Urgency column', () {
63+
final compare = compareTasks('Urgency');
64+
expect(compare(task1, task2), lessThan(0));
65+
});
66+
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:taskwarrior/app/utils/taskfunctions/datetime_differences.dart';
3+
4+
void main() {
5+
group('DateTime Functions Tests', () {
6+
test('Test age function', () {
7+
DateTime dt = DateTime.now().subtract(const Duration(days: 365));
8+
String result = age(dt);
9+
expect(result, contains('12mo '));
10+
11+
dt = DateTime.now().subtract(const Duration(days: 60));
12+
result = age(dt);
13+
expect(result, contains('2mo '));
14+
15+
dt = DateTime.now().subtract(const Duration(days: 21));
16+
result = age(dt);
17+
expect(result, contains('3w '));
18+
19+
dt = DateTime.now().subtract(const Duration(days: 4));
20+
result = age(dt);
21+
expect(result, contains('4d '));
22+
23+
dt = DateTime.now().subtract(const Duration(hours: 5));
24+
result = age(dt);
25+
expect(result, contains('5h '));
26+
27+
dt = DateTime.now().subtract(const Duration(minutes: 10));
28+
result = age(dt);
29+
expect(result, contains('10min '));
30+
31+
dt = DateTime.now().subtract(const Duration(seconds: 30));
32+
result = age(dt);
33+
expect(result, contains('30s '));
34+
});
35+
36+
test('Test when function', () {
37+
DateTime dt = DateTime.now().add(const Duration(days: 365));
38+
String result = when(dt);
39+
expect(result, contains('12mo'));
40+
41+
dt = DateTime.now().add(const Duration(days: 60));
42+
result = when(dt);
43+
expect(result, contains('1mo'));
44+
45+
dt = DateTime.now().add(const Duration(days: 21));
46+
result = when(dt);
47+
expect(result, contains('2w'));
48+
49+
dt = DateTime.now().add(const Duration(days: 4));
50+
result = when(dt);
51+
expect(result, contains('3d'));
52+
53+
dt = DateTime.now().add(const Duration(hours: 5));
54+
result = when(dt);
55+
expect(result, contains('4h'));
56+
57+
dt = DateTime.now().add(const Duration(minutes: 10));
58+
result = when(dt);
59+
expect(result, contains('9min'));
60+
61+
dt = DateTime.now().add(const Duration(seconds: 30));
62+
result = when(dt);
63+
expect(result, contains('29s'));
64+
});
65+
66+
test('Test difference function', () {
67+
DateTime dt = DateTime.now().subtract(const Duration(days: 365));
68+
String result = difference(DateTime.now().difference(dt));
69+
expect(result, contains('12mo '));
70+
71+
dt = DateTime.now().subtract(const Duration(days: 60));
72+
result = difference(DateTime.now().difference(dt));
73+
expect(result, contains('2mo '));
74+
75+
dt = DateTime.now().subtract(const Duration(days: 21));
76+
result = difference(DateTime.now().difference(dt));
77+
expect(result, contains('3w '));
78+
79+
dt = DateTime.now().subtract(const Duration(days: 4));
80+
result = difference(DateTime.now().difference(dt));
81+
expect(result, contains('4d '));
82+
83+
dt = DateTime.now().subtract(const Duration(hours: 5));
84+
result = difference(DateTime.now().difference(dt));
85+
expect(result, contains('5h '));
86+
87+
dt = DateTime.now().subtract(const Duration(minutes: 10));
88+
result = difference(DateTime.now().difference(dt));
89+
expect(result, contains('10min '));
90+
91+
dt = DateTime.now().subtract(const Duration(seconds: 30));
92+
result = difference(DateTime.now().difference(dt));
93+
expect(result, contains('30s '));
94+
});
95+
});
96+
}

0 commit comments

Comments
 (0)