Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
39 changes: 27 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,15 @@ on:
jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
Expand All @@ -26,22 +31,24 @@ jobs:
- name: Generate Icon Packs
run: dart run flutter_iconpicker:generate_packs --packs fontAwesomeIcons

- name: Analyze code
run: flutter analyze

- name: Run tests
run: flutter test

- name: Check formatting
run: dart format --set-exit-if-changed .
- name: Analyze and Test
run: |
flutter analyze
flutter test
dart format --set-exit-if-changed .

build-android:
runs-on: ubuntu-latest
needs: test

steps:
- uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
Expand All @@ -54,5 +61,13 @@ jobs:
- name: Generate Icon Packs
run: dart run flutter_iconpicker:generate_packs --packs fontAwesomeIcons

- name: Build Android APK
run: flutter build apk --release --no-tree-shake-icons
- name: Build Unsigned APK
run: |
flutter build apk --release --split-per-abi --no-tree-shake-icons \
--build-number=$((5100 + ${{ github.run_number }}))

- name: Upload Unsigned APKs
uses: actions/upload-artifact@v4
with:
name: unsigned-apks
path: build/app/outputs/flutter-apk/*-release.apk
21 changes: 5 additions & 16 deletions test/habits/habits_manager_fixed_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@ import 'dart:collection';

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

import 'package:habo/generated/l10n.dart';
import 'package:habo/habits/habit.dart';
import 'package:habo/habits/habits_manager.dart';
import 'package:habo/model/habit_data.dart';
import 'package:habo/repositories/habit_repository.dart';
import 'package:habo/repositories/event_repository.dart';
import 'package:habo/repositories/category_repository.dart';
import 'package:habo/repositories/event_repository.dart';
import 'package:habo/repositories/habit_repository.dart';
import 'package:habo/services/backup_service.dart';
import 'package:habo/services/notification_service.dart';
import 'package:habo/services/ui_feedback_service.dart';
import 'package:habo/generated/l10n.dart';
import 'package:mocktail/mocktail.dart';

class MockHabitRepository extends Mock implements HabitRepository {}
Expand Down Expand Up @@ -304,12 +303,7 @@ void main() {
.thenAnswer((_) async {});
when(() => mockNotificationService.setHabitNotification(
any(), any(), any(), any())).thenReturn(null);
when(() => mockUIFeedbackService.showMessageWithAction(
message: any(named: 'message'),
actionLabel: any(named: 'actionLabel'),
onActionPressed: any(named: 'onActionPressed'),
backgroundColor: any(named: 'backgroundColor'),
)).thenReturn(null);
when(() => mockUIFeedbackService.showSuccess(any())).thenReturn(null);

// Act
habitsManager.unarchiveHabit(1);
Expand All @@ -319,12 +313,7 @@ void main() {
verify(() => mockHabitRepository.updateHabit(any())).called(1);
verify(() => mockNotificationService.setHabitNotification(
1, any(), 'Habo', 'Test Habit')).called(1);
verify(() => mockUIFeedbackService.showMessageWithAction(
message: any(named: 'message'),
actionLabel: any(named: 'actionLabel'),
onActionPressed: any(named: 'onActionPressed'),
backgroundColor: any(named: 'backgroundColor'),
)).called(1);
verify(() => mockUIFeedbackService.showSuccess(any())).called(1);
});

test('should filter active habits correctly', () {
Expand Down