Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/68 migration to null safety #939

Merged
merged 66 commits into from
Mar 14, 2024
Merged
Changes from 1 commit
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
74da6e8
Migrate service classes to null safety
XavierPaquet-Rapold Nov 22, 2023
b61dbae
Migrate constants to null safety
XavierPaquet-Rapold Nov 22, 2023
9ff31eb
Migrate utils to null safety
XavierPaquet-Rapold Nov 22, 2023
9eea612
Remove late from GetIt
XavierPaquet-Rapold Nov 22, 2023
536ae08
Change @required to required
XavierPaquet-Rapold Nov 22, 2023
d7fc81a
Migrate models to null safety
XavierPaquet-Rapold Nov 22, 2023
ac2dba1
Migrate main to null safety
XavierPaquet-Rapold Nov 22, 2023
50ce75e
Migrate managers to null safety
XavierPaquet-Rapold Nov 23, 2023
1714af2
Migrate ViewModels to null safety
XavierPaquet-Rapold Dec 21, 2023
1cd67b1
Migrate utils to null safety
XavierPaquet-Rapold Dec 23, 2023
9778d14
Migrate views to null safety
XavierPaquet-Rapold Dec 23, 2023
2f5473a
Migrate Views to null safety
XavierPaquet-Rapold Dec 23, 2023
e2a44bc
Migrate mocks to null safety
XavierPaquet-Rapold Jan 4, 2024
ebc9dae
Use late for all tests
XavierPaquet-Rapold Jan 4, 2024
14b8317
Fix service tests
XavierPaquet-Rapold Jan 4, 2024
c831dd6
Migrate helpers to null safety
XavierPaquet-Rapold Jan 4, 2024
db1fddf
Migrate managers tests to null safety
XavierPaquet-Rapold Jan 4, 2024
62008cc
Migrate ViewModel tests to null safety
XavierPaquet-Rapold Jan 4, 2024
e71aa05
Managers use mocks for managers
XavierPaquet-Rapold Jan 4, 2024
0c2e222
Migrate widget tests to null safety
XavierPaquet-Rapold Jan 4, 2024
3e1f938
Migrate views tests to null safety
XavierPaquet-Rapold Jan 4, 2024
1ecb121
Fix course_repository_test
XavierPaquet-Rapold Jan 5, 2024
bbb3f05
Fix QuickLinkRepository tests
XavierPaquet-Rapold Jan 5, 2024
e2982b6
Fix SettingsManagerTests
XavierPaquet-Rapold Jan 5, 2024
06e1bab
Fix user repository tests
XavierPaquet-Rapold Jan 5, 2024
bccb64c
Fix GradeEvaluationTile tests
XavierPaquet-Rapold Jan 8, 2024
112f050
Fix code problems
XavierPaquet-Rapold Jan 8, 2024
17d0426
Fix DashboardViewModel tests
XavierPaquet-Rapold Jan 8, 2024
00ab827
Fix FeedbackViewModelTest
XavierPaquet-Rapold Jan 13, 2024
ab9255a
Fix GradeViewModel tests
XavierPaquet-Rapold Jan 13, 2024
3d907e8
Fix UserRepositoryMock tests
XavierPaquet-Rapold Jan 13, 2024
1d57405
Fix ScheduleSettingsViewModel tests
XavierPaquet-Rapold Jan 13, 2024
812c59c
Fix ScheduleViewModel tests
XavierPaquet-Rapold Jan 13, 2024
32b1e9d
Fix GradeDetailsView tests
XavierPaquet-Rapold Jan 19, 2024
0c59936
Fix NotFoundView test
XavierPaquet-Rapold Jan 20, 2024
455db7e
Fix GradeDetailsViewModel tests
XavierPaquet-Rapold Jan 21, 2024
2bc71d7
Fix ScheduleViewModel tests
XavierPaquet-Rapold Jan 22, 2024
a788030
Remove use of Future OnError
XavierPaquet-Rapold Mar 9, 2024
94eb2da
Fix ScheduleSettingTest tests
XavierPaquet-Rapold Mar 9, 2024
9ca3608
test: Fix settings loading issue
apomalyn Mar 9, 2024
aa5ebf4
Fix DashboardViewModelTest tests
XavierPaquet-Rapold Mar 9, 2024
9962c86
test: Fix settings loading issue
apomalyn Mar 9, 2024
36b433b
test: Remove useless test
apomalyn Mar 9, 2024
6dcc322
Fix ScheduleViewModel marker not appearing
XavierPaquet-Rapold Mar 9, 2024
37f961f
Fix courses not appearing when no review
XavierPaquet-Rapold Mar 9, 2024
b82a43a
Update CI and documentation
XavierPaquet-Rapold Mar 9, 2024
d8a154b
[BOT] Applying version.
XavierPaquet-Rapold Mar 9, 2024
2575af0
[BOT] Applying format.
clubapplets-server Mar 9, 2024
2167887
Fix analyze
XavierPaquet-Rapold Mar 9, 2024
df2e47a
Fix Golden
XavierPaquet-Rapold Mar 9, 2024
1587f09
[BOT] Applying format.
XavierPaquet-Rapold Mar 9, 2024
d155189
Update pumpAndSettle duration
XavierPaquet-Rapold Mar 9, 2024
9b6160a
Merge branch 'feature/68-migration-to-null-safety' of https://github.…
XavierPaquet-Rapold Mar 9, 2024
07727a6
[BOT] Update golden files
XavierPaquet-Rapold Mar 9, 2024
f25d168
Fix workflows
XavierPaquet-Rapold Mar 9, 2024
312b636
Merge branch 'feature/68-migration-to-null-safety' of https://github.…
XavierPaquet-Rapold Mar 9, 2024
ddf2202
Try to fix grades_details_view_test golden
XavierPaquet-Rapold Mar 10, 2024
eb722a3
[BOT] Applying format.
XavierPaquet-Rapold Mar 10, 2024
238ae35
Try fixing grade_details_view_test
XavierPaquet-Rapold Mar 10, 2024
a40edc4
Merge remote-tracking branch 'origin/feature/68-migration-to-null-saf…
XavierPaquet-Rapold Mar 10, 2024
56a2a38
Fix course evaluation bug and set appVersion
XavierPaquet-Rapold Mar 12, 2024
8a03d5a
[BOT] Applying format.
XavierPaquet-Rapold Mar 12, 2024
6e544f9
Add analytics
XavierPaquet-Rapold Mar 13, 2024
18709ba
Merge branch 'feature/68-migration-to-null-safety' of https://github.…
XavierPaquet-Rapold Mar 13, 2024
a199f96
Chang log
XavierPaquet-Rapold Mar 13, 2024
f2e374e
Add analytics
XavierPaquet-Rapold Mar 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test: Fix settings loading issue
refs: #68
apomalyn authored and XavierPaquet-Rapold committed Mar 9, 2024
commit 9962c86fb345016e55f80943f0104b5f7594e4ed
151 changes: 59 additions & 92 deletions test/viewmodels/schedule_viewmodel_test.dart
Original file line number Diff line number Diff line change
@@ -240,6 +240,13 @@ void main() {
gen110
];

// Some settings
final Map<PreferencesFlag, dynamic> settings = {
PreferencesFlag.scheduleCalendarFormat: CalendarFormat.week,
PreferencesFlag.scheduleStartWeekday: StartingDayOfWeek.monday,
PreferencesFlag.scheduleShowTodayBtn: true
};

group("ScheduleViewModel - ", () {
setUp(() async {
// Setting up mocks
@@ -258,21 +265,19 @@ void main() {
test(
"first load from cache than call SignetsAPI to get the latest events",
() async {
CourseRepositoryMock.stubGetCoursesActivities(
courseRepositoryMock);
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock);
CourseRepositoryMock.stubGetCourses(
courseRepositoryMock,
CourseRepositoryMock.stubGetCoursesActivities(courseRepositoryMock);
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock);
CourseRepositoryMock.stubGetCourses(courseRepositoryMock,
fromCacheOnly: true);
CourseRepositoryMock.stubGetCourses(
courseRepositoryMock);
CourseRepositoryMock.stubGetScheduleActivities(
courseRepositoryMock);
CourseRepositoryMock.stubGetCourses(courseRepositoryMock);
CourseRepositoryMock.stubGetScheduleActivities(courseRepositoryMock);
SettingsManagerMock.stubGetScheduleSettings(settingsManagerMock,
toReturn: settings);

expect(await viewModel.futureToRun(), []);

verifyInOrder([
settingsManagerMock.getScheduleSettings(),
courseRepositoryMock.getCoursesActivities(fromCacheOnly: true),
courseRepositoryMock.getCoursesActivities(),
courseRepositoryMock.coursesActivities,
@@ -287,20 +292,17 @@ void main() {

test("Signets throw an error while trying to get new events", () async {
setupFlutterToastMock();
CourseRepositoryMock.stubGetCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubGetCoursesActivities(courseRepositoryMock,
fromCacheOnly: true);
CourseRepositoryMock.stubGetCoursesActivitiesException(
courseRepositoryMock);
CourseRepositoryMock.stubGetCourses(
courseRepositoryMock,
CourseRepositoryMock.stubGetCourses(courseRepositoryMock,
fromCacheOnly: true);
CourseRepositoryMock.stubGetCourses(
courseRepositoryMock);
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock);
CourseRepositoryMock.stubGetScheduleActivities(
courseRepositoryMock);
CourseRepositoryMock.stubGetCourses(courseRepositoryMock);
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock);
CourseRepositoryMock.stubGetScheduleActivities(courseRepositoryMock);
SettingsManagerMock.stubGetScheduleSettings(settingsManagerMock,
toReturn: settings);

expect(await viewModel.futureToRun(), [],
reason: "Even if SignetsAPI fails we should receives a list.");
@@ -309,6 +311,7 @@ void main() {
await untilCalled(courseRepositoryMock.getCoursesActivities());

verifyInOrder([
settingsManagerMock.getScheduleSettings(),
courseRepositoryMock.getCoursesActivities(fromCacheOnly: true),
courseRepositoryMock.getCoursesActivities()
]);
@@ -320,8 +323,7 @@ void main() {

group("coursesActivities - ", () {
test("build the list of activities sort by date", () async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activities);

final expected = {
@@ -340,14 +342,11 @@ void main() {
test(
'scheduleActivityIsSelected returns true when activityDescription is not labA or labB',
() async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activitiesLabs);

SettingsManagerMock.stubGetDynamicString(
settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup,
"GEN103",
SettingsManagerMock.stubGetDynamicString(settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup, "GEN103",
toReturn: ActivityCode.labGroupA);

await viewModel.assignScheduleActivities([
@@ -371,8 +370,7 @@ void main() {
test(
'scheduleActivityIsSelected returns true when the course does not have an activity',
() async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activitiesLabs);

SettingsManagerMock.stubGetDynamicString(
@@ -418,8 +416,7 @@ void main() {

group("coursesActivitiesFor - ", () {
test("Get the correct list of activities for the specified day", () {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activities);

final expected = [gen102, gen103];
@@ -433,8 +430,7 @@ void main() {
});

test("If the day doesn't have any events, return an empty list.", () {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activities);

expect(viewModel.coursesActivitiesFor(DateTime(2020, 1, 3)), isEmpty,
@@ -449,8 +445,7 @@ void main() {

group("selectedDateEvents", () {
test("The events of the date currently selected are return", () {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activities);

final expected = [gen102, gen103];
@@ -467,8 +462,7 @@ void main() {
});

test("The events of the date currently selected are return", () {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activities);

final expected = [];
@@ -500,11 +494,9 @@ void main() {
};

test('selectedWeekEvents for starting day sunday', () async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: weekOfActivities);
SettingsManagerMock.stubGetScheduleSettings(
settingsManagerMock,
SettingsManagerMock.stubGetScheduleSettings(settingsManagerMock,
toReturn: settingsStartingDaySunday);

final expected = {
@@ -527,11 +519,9 @@ void main() {
});

test('selectedWeekEvents for starting day monday', () async {
SettingsManagerMock.stubGetScheduleSettings(
settingsManagerMock,
SettingsManagerMock.stubGetScheduleSettings(settingsManagerMock,
toReturn: settingsStartingDayMonday);
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: weekOfActivities);

final expected = {
@@ -553,11 +543,9 @@ void main() {
});

test('selectedWeekEvents for starting day saturday', () async {
SettingsManagerMock.stubGetScheduleSettings(
settingsManagerMock,
SettingsManagerMock.stubGetScheduleSettings(settingsManagerMock,
toReturn: settingsStartingDaySaturday);
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: weekOfActivities);

final expected = {
@@ -583,8 +571,7 @@ void main() {
test(
'Call SignetsAPI to get the coursesActivities than reload the coursesActivities',
() async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activities);

await viewModel.refresh();
@@ -608,8 +595,7 @@ void main() {

group('loadSettings -', () {
test('calendarFormat changing', () async {
SettingsManagerMock.stubGetScheduleSettings(
settingsManagerMock,
SettingsManagerMock.stubGetScheduleSettings(settingsManagerMock,
toReturn: {
PreferencesFlag.scheduleCalendarFormat: CalendarFormat.month
});
@@ -660,22 +646,15 @@ void main() {
test(
'loadSettingsScheduleActivities - test when one is selected from one group',
() async {
CourseRepositoryMock.stubGetCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubGetCoursesActivities(courseRepositoryMock,
toReturn: activities);
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock);
CourseRepositoryMock.stubGetCourses(
courseRepositoryMock,
fromCacheOnly: true,
toReturn: courses);
CourseRepositoryMock.stubGetCourses(
courseRepositoryMock);
CourseRepositoryMock.stubGetScheduleActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock);
CourseRepositoryMock.stubGetCourses(courseRepositoryMock,
fromCacheOnly: true, toReturn: courses);
CourseRepositoryMock.stubGetCourses(courseRepositoryMock);
CourseRepositoryMock.stubGetScheduleActivities(courseRepositoryMock,
toReturn: classOneWithLaboratoryABscheduleActivities);
SettingsManagerMock.stubGetScheduleSettings(
settingsManagerMock,
SettingsManagerMock.stubGetScheduleSettings(settingsManagerMock,
toReturn: {
PreferencesFlag.scheduleCalendarFormat: CalendarFormat.month
});
@@ -719,14 +698,11 @@ void main() {
test(
'coursesActivities - should fill coursesActivities with the activities',
() async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activitiesLabs);

SettingsManagerMock.stubGetDynamicString(
settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup,
"GEN103",
SettingsManagerMock.stubGetDynamicString(settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup, "GEN103",
toReturn: ActivityCode.labGroupA);

await viewModel.assignScheduleActivities([
@@ -752,14 +728,11 @@ void main() {
test(
'coursesActivities - should fill coursesActivities with the activities with no LabB for GEN103',
() async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activitiesLabs);

SettingsManagerMock.stubGetDynamicString(
settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup,
"GEN103",
SettingsManagerMock.stubGetDynamicString(settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup, "GEN103",
toReturn: ActivityCode.labGroupA);

await viewModel.assignScheduleActivities([
@@ -785,14 +758,11 @@ void main() {
test(
'coursesActivities - should fill coursesActivities with the activities with no LabA for GEN103',
() async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activitiesLabs);

SettingsManagerMock.stubGetDynamicString(
settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup,
"GEN103",
SettingsManagerMock.stubGetDynamicString(settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup, "GEN103",
toReturn: ActivityCode.labGroupB);

await viewModel.assignScheduleActivities([
@@ -818,14 +788,11 @@ void main() {
test(
'coursesActivities - should fill coursesActivities with all the activities if none are selected',
() async {
CourseRepositoryMock.stubCoursesActivities(
courseRepositoryMock,
CourseRepositoryMock.stubCoursesActivities(courseRepositoryMock,
toReturn: activitiesLabs);

SettingsManagerMock.stubGetDynamicString(
settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup,
"GEN103");
SettingsManagerMock.stubGetDynamicString(settingsManagerMock,
PreferencesFlag.scheduleLaboratoryGroup, "GEN103");

await viewModel.assignScheduleActivities([]);