• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

asartalo / diligence / 8157872636

05 Mar 2024 02:24PM UTC coverage: 84.126% (-0.6%) from 84.691%
8157872636

push

github

asartalo
test: update crud specs and test code refactorings

4 of 4 new or added lines in 3 files covered. (100.0%)

116 existing lines in 13 files now uncovered.

1097 of 1304 relevant lines covered (84.13%)

1.79 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.31
/lib/models/modified_task.dart
1
import 'package:flutter/foundation.dart' show immutable;
2

3
import 'persisted_task.dart';
4
import 'task.dart';
5
import 'task_commons.dart';
6

7
bool sameTime(DateTime? a, DateTime? b) {
5✔
8
  if (a == null && b == null) return true;
9
  if (a == null || b == null) return false;
10

UNCOV
11
  return a.isAtSameMomentAs(b);
×
12
}
13

14
@immutable
15
class ModifiedTask with TaskCommons implements Task {
16
  final PersistedTask originalTask;
17
  final _modifiedFields = <String>{};
18

19
  @override
3✔
20
  int get id => originalTask.id;
6✔
21

22
  @override
23
  final int? parentId;
24

25
  @override
26
  final DateTime? doneAt;
27

28
  @override
3✔
29
  bool get done => doneAt != null;
3✔
30

31
  @override
32
  final String name;
33

34
  @override
35
  final String? details;
36

37
  @override
×
UNCOV
38
  String get uid => originalTask.uid;
×
39

40
  @override
41
  final bool expanded;
42

43
  @override
2✔
44
  DateTime get createdAt => originalTask.createdAt;
4✔
45

46
  @override
47
  final DateTime updatedAt;
48

49
  ModifiedTask({
5✔
50
    this.parentId,
51
    this.doneAt,
52
    this.name = '',
53
    this.details,
54
    this.expanded = false,
55
    required this.originalTask,
56
  }) : updatedAt = DateTime.now() {
5✔
57
    _checkModifications(
5✔
58
      originalTask,
5✔
59
      parentId: parentId,
5✔
60
      doneAt: doneAt,
5✔
61
      name: name,
5✔
62
      details: details,
5✔
63
      expanded: expanded,
5✔
64
    );
65
  }
66

67
  @override
2✔
68
  ModifiedTask copyWith({
69
    int? id,
70
    int? parentId,
71
    bool? done,
72
    DateTime? doneAt,
73
    String? uid,
74
    String? name,
75
    String? details,
76
    bool? expanded,
77
    DateTime? createdAt,
78
    DateTime? updatedAt,
79
  }) {
80
    return ModifiedTask(
2✔
81
      originalTask: originalTask,
2✔
82
      parentId: parentId ?? this.parentId,
2✔
83
      doneAt: normalizedDoneAt(done, doneAt),
2✔
84
      name: name ?? this.name,
2✔
85
      details: normalizedDetails(details),
2✔
86
      expanded: expanded ?? this.expanded,
2✔
87
    );
88
  }
89

90
  void _checkModifications(
5✔
91
    Task original, {
92
    int? parentId,
93
    DateTime? doneAt,
94
    String? name,
95
    String? details,
96
    bool? expanded,
97
  }) {
98
    if (parentId != original.parentId) _modifiedFields.add('parentId');
12✔
99
    if (!sameTime(doneAt, original.doneAt)) _modifiedFields.add('doneAt');
16✔
100
    if (name != original.name) _modifiedFields.add('name');
20✔
101
    if (details != original.details) _modifiedFields.add('details');
14✔
102
    if (expanded != original.expanded) _modifiedFields.add('expanded');
14✔
103
  }
104

105
  Set modifiedFields() {
3✔
106
    return _modifiedFields;
3✔
107
  }
108

109
  bool isModified(String field) {
3✔
110
    return modifiedFields().contains(field);
6✔
111
  }
112

113
  bool hasToggledDone() {
2✔
114
    return isModified('doneAt');
2✔
115
  }
116
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc