Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
b73c0c3
fix: resolve issue 581
Demian-Yushyn Jul 30, 2025
cc0e655
fix: update adjustments
Demian-Yushyn Jul 30, 2025
84a2156
fix: add timeout constant
Demian-Yushyn Jul 30, 2025
cd349b3
fix: adjust naming
Demian-Yushyn Jul 30, 2025
5aa8e55
fix: update connectivity
Demian-Yushyn Jul 30, 2025
64c59a1
fix: remove unused functions and hardcoded variables
Demian-Yushyn Jul 31, 2025
b4fcf31
fix: Removed unused functions and hardcoded variables
Demian-Yushyn Jul 31, 2025
253341d
Merge remote-tracking branch 'origin/fix/issue-581' into fix/issue-581
Demian-Yushyn Jul 31, 2025
6121c2a
fix: issue 581
Demian-Yushyn Jul 31, 2025
b26c3d7
fix: progress on issue 581
Demian-Yushyn Jul 31, 2025
f21a460
fix: apply updates
Demian-Yushyn Jul 31, 2025
14441a6
fix: update wi DI Config, thread fixes
Demian-Yushyn Jul 31, 2025
327bb30
fix: connectivity logic update
Demian-Yushyn Jul 31, 2025
a9074d0
fix: cacheValidity change
Demian-Yushyn Jul 31, 2025
dabc744
fix: unit tests update
Demian-Yushyn Aug 6, 2025
48d55bc
fix: removed team and coma
Demian-Yushyn Aug 6, 2025
786fa30
fix: removed extra comas
Demian-Yushyn Aug 6, 2025
a7475cd
Merge branch 'develop' into fix/issue-581
IvanStepanok Sep 16, 2025
0fce30b
fix: unit tests
Demian-Yushyn Sep 16, 2025
635c716
Merge branch 'develop' into fix/issue-581
Demian-Yushyn Oct 29, 2025
ad3f260
fix: removed state object warning
Demian-Yushyn Oct 29, 2025
39ace76
fix: update config
Demian-Yushyn Oct 29, 2025
8465734
Merge pull request #2 from raccoongang/fix/issue-581
IvanStepanok Nov 10, 2025
7196747
Merge branch 'openedx:develop' into develop
Demian-Yushyn Jan 28, 2026
94ba7c2
feat: Core tests migrated to mockolo
Demian-Yushyn Jan 28, 2026
95e79ad
feat: Authorization Test updated
Demian-Yushyn Jan 28, 2026
26b6b87
feat: Course test migrated
Demian-Yushyn Jan 28, 2026
4537184
feat: WhatsNew, Discovery tests migrated
Demian-Yushyn Jan 28, 2026
bc492d5
feat: dashboards tests done
Demian-Yushyn Jan 28, 2026
7469d14
feat: Downloads finished
Demian-Yushyn Jan 28, 2026
e6aa419
feat: profile migrated
Demian-Yushyn Jan 28, 2026
c5379b7
feat: Discussion tests migration
Demian-Yushyn Jan 28, 2026
4d92184
feat: AppDates tests migrated
Demian-Yushyn Jan 28, 2026
6b87fc9
feat: migration finished
Demian-Yushyn Jan 28, 2026
758d216
feat: fully removed SwiftMocky
Demian-Yushyn Jan 28, 2026
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
34 changes: 12 additions & 22 deletions AppDates/AppDates.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
/* Begin PBXBuildFile section */
9941863792906D15DF2A3ECA /* Pods_App_AppDates.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E2984D28B27605D024FE0AC /* Pods_App_AppDates.framework */; };
A1A9C1B7F354E7604855D612 /* Pods_App_AppDates_AppDatesTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CE12953BBB7F7C65675973B /* Pods_App_AppDates_AppDatesTests.framework */; };
CE75F3AE2D9A89AA0024BB43 /* AppDatesMock.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE75F3AD2D9A89AA0024BB43 /* AppDatesMock.generated.swift */; };
A5B468202F2A1101002A4ECA /* AppDatesMocks.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B4681E2F2A1101002A4ECA /* AppDatesMocks.generated.swift */; };
CE815A672D60D75200CB9114 /* AppDates.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE815A5E2D60D75200CB9114 /* AppDates.framework */; };
CE815A792D60D78B00CB9114 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE815A782D60D78B00CB9114 /* Core.framework */; };
CE815A7E2D60D7CC00CB9114 /* OEXFoundation in Frameworks */ = {isa = PBXBuildFile; productRef = CE815A7D2D60D7CC00CB9114 /* OEXFoundation */; };
Expand Down Expand Up @@ -73,11 +73,11 @@
9E2984D28B27605D024FE0AC /* Pods_App_AppDates.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_App_AppDates.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A3F5B654743233E0EBF20ACE /* Pods-App-AppDates.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-AppDates.debug.xcconfig"; path = "Target Support Files/Pods-App-AppDates/Pods-App-AppDates.debug.xcconfig"; sourceTree = "<group>"; };
A4FF28047F07A8E553DD3C3F /* Pods-App-AppDates.releaseprod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-AppDates.releaseprod.xcconfig"; path = "Target Support Files/Pods-App-AppDates/Pods-App-AppDates.releaseprod.xcconfig"; sourceTree = "<group>"; };
A5B4681E2F2A1101002A4ECA /* AppDatesMocks.generated.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDatesMocks.generated.swift; sourceTree = "<group>"; };
AFC846633FC6ED95F9884DE0 /* Pods-App-AppDates-AppDatesTests.releasedev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-AppDates-AppDatesTests.releasedev.xcconfig"; path = "Target Support Files/Pods-App-AppDates-AppDatesTests/Pods-App-AppDates-AppDatesTests.releasedev.xcconfig"; sourceTree = "<group>"; };
B3A97A12BDD649309E86E47F /* Pods-App-AppDates.releasestage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-AppDates.releasestage.xcconfig"; path = "Target Support Files/Pods-App-AppDates/Pods-App-AppDates.releasestage.xcconfig"; sourceTree = "<group>"; };
B425DC0B44831EA155630C1D /* Pods-App-AppDates.debugstage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-AppDates.debugstage.xcconfig"; path = "Target Support Files/Pods-App-AppDates/Pods-App-AppDates.debugstage.xcconfig"; sourceTree = "<group>"; };
CC47B8A74F999FBDA6DC2597 /* Pods-App-AppDates-AppDatesTests.debugprod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-AppDates-AppDatesTests.debugprod.xcconfig"; path = "Target Support Files/Pods-App-AppDates-AppDatesTests/Pods-App-AppDates-AppDatesTests.debugprod.xcconfig"; sourceTree = "<group>"; };
CE75F3AD2D9A89AA0024BB43 /* AppDatesMock.generated.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDatesMock.generated.swift; sourceTree = "<group>"; };
CE815A5E2D60D75200CB9114 /* AppDates.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AppDates.framework; sourceTree = BUILT_PRODUCTS_DIR; };
CE815A662D60D75200CB9114 /* AppDatesTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AppDatesTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
CE815A782D60D78B00CB9114 /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; };
Expand Down Expand Up @@ -152,6 +152,14 @@
path = ../Pods;
sourceTree = "<group>";
};
A5B4681F2F2A1101002A4ECA /* Generated */ = {
isa = PBXGroup;
children = (
A5B4681E2F2A1101002A4ECA /* AppDatesMocks.generated.swift */,
);
path = Generated;
sourceTree = "<group>";
};
CE815A542D60D75200CB9114 = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -186,8 +194,8 @@
CE815AA22D60DD6B00CB9114 /* AppDatesTests */ = {
isa = PBXGroup;
children = (
A5B4681F2F2A1101002A4ECA /* Generated */,
CE815AA12D60DD6B00CB9114 /* AppDatesTests.swift */,
CE75F3AD2D9A89AA0024BB43 /* AppDatesMock.generated.swift */,
);
path = AppDatesTests;
sourceTree = "<group>";
Expand Down Expand Up @@ -326,7 +334,6 @@
CE815A622D60D75200CB9114 /* Sources */,
CE815A632D60D75200CB9114 /* Frameworks */,
CE815A642D60D75200CB9114 /* Resources */,
F2D2F6B58295FDBB32EB70FE /* [CP] Copy Pods Resources */,
CE815A9E2D60DB8A00CB9114 /* Embed Frameworks */,
);
buildRules = (
Expand Down Expand Up @@ -463,23 +470,6 @@
shellPath = /bin/sh;
shellScript = "if [[ -f \"${PODS_ROOT}/SwiftGen/bin/swiftgen\" ]]; then\n \"${PODS_ROOT}/SwiftGen/bin/swiftgen\"\nelse\n echo \"warning: SwiftGen is not installed. Run 'pod install --repo-update' to install it.\"\nfi\n";
};
F2D2F6B58295FDBB32EB70FE /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-App-AppDates-AppDatesTests/Pods-App-AppDates-AppDatesTests-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-App-AppDates-AppDatesTests/Pods-App-AppDates-AppDatesTests-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-App-AppDates-AppDatesTests/Pods-App-AppDates-AppDatesTests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
Expand Down Expand Up @@ -510,7 +500,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CE75F3AE2D9A89AA0024BB43 /* AppDatesMock.generated.swift in Sources */,
A5B468202F2A1101002A4ECA /* AppDatesMocks.generated.swift in Sources */,
CE815AA32D60DD6B00CB9114 /* AppDatesTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down
4 changes: 2 additions & 2 deletions AppDates/AppDates/Data/DatesPersistenceProtocol.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
import Foundation
import Core

//sourcery: AutoMockable
/// @mockable
public protocol DatesPersistenceProtocol: Sendable {
func loadCourseDates(limit: Int?, offset: Int?) async throws -> [CourseDate]
func saveCourseDates(dates: [CourseDate], startIndex: Int) async
func clearAllCourseDates() async
}

#if DEBUG
public struct DatesPersistenceMock: DatesPersistenceProtocol {
public struct DatesPersistencePreviewMock: DatesPersistenceProtocol {
public func loadCourseDates(limit: Int?, offset: Int?) async throws -> [CourseDate] {[]}
public func saveCourseDates(dates: [CourseDate], startIndex: Int) async {}
public func clearAllCourseDates() async {}
Expand Down
3 changes: 2 additions & 1 deletion AppDates/AppDates/Data/DatesRepository.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import Foundation
import Core
import OEXFoundation

/// @mockable
public protocol DatesRepositoryProtocol: Sendable {
func getCourseDates(page: Int) async throws -> ([CourseDate], String?)
func getCourseDatesOffline(limit: Int?, offset: Int?) async throws -> [CourseDate]
Expand Down Expand Up @@ -73,7 +74,7 @@ public actor DatesRepository: DatesRepositoryProtocol {

// Mark - For testing and SwiftUI preview
#if DEBUG
public final class DatesRepositoryMock: DatesRepositoryProtocol {
public final class DatesRepositoryPreviewMock: DatesRepositoryProtocol {

public init() {}

Expand Down
4 changes: 2 additions & 2 deletions AppDates/AppDates/Domain/DatesInteractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Foundation
import Core

//sourcery: AutoMockable
/// @mockable
public protocol DatesInteractorProtocol: Sendable {
func getCourseDates(page: Int) async throws -> ([CourseDate], String?)
func getCourseDatesOffline(limit: Int?, offset: Int?) async throws -> [CourseDate]
Expand Down Expand Up @@ -39,6 +39,6 @@ public actor DatesInteractor: DatesInteractorProtocol {
// Mark - For testing and SwiftUI preview
#if DEBUG
public extension DatesInteractor {
static let mock = DatesInteractor(repository: DatesRepositoryMock())
static let mock = DatesInteractor(repository: DatesRepositoryPreviewMock())
}
#endif
6 changes: 3 additions & 3 deletions AppDates/AppDates/Presentation/AppDatesAnalytics.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@

import Foundation

//sourcery: AutoMockable
public protocol AppDatesAnalytics {
/// @mockable
public protocol AppDatesAnalytics: Sendable {
func mainDatesScreenViewed()
func datesCourseClicked(courseId: String, courseName: String)
func datesSettingsClicked()
func datesRefreshPulled()
}

#if DEBUG
class AppDatesAnalyticsMock: AppDatesAnalytics {
public final class `AppDatesAnalyticsPreviewMock`: AppDatesAnalytics {
public func mainDatesScreenViewed() {}
public func datesCourseClicked(courseId: String, courseName: String) {}
public func datesSettingsClicked() {}
Expand Down
3 changes: 2 additions & 1 deletion AppDates/AppDates/Presentation/AppDatesRouter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import Foundation
import Core

/// @mockable
@MainActor
public protocol AppDatesRouter: BaseRouter {
func showSettings()
Expand All @@ -28,7 +29,7 @@ public protocol AppDatesRouter: BaseRouter {

// Mark - For testing and SwiftUI preview
#if DEBUG
public class AppDatesRouterMock: BaseRouterMock, AppDatesRouter {
public class AppDatesRouterPreviewMock: BaseRouterMock, AppDatesRouter {
public func showSettings() {}
public func showUpdateRequiredView(showAccountLink: Bool) {}
public func showCourseScreens(
Expand Down
4 changes: 2 additions & 2 deletions AppDates/AppDates/Presentation/Dates/DatesView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,8 @@ struct DatesEmptyStateView: View {
interactor: DatesInteractor.mock,
connectivity: Connectivity(config: ConfigMock()),
courseManager: CourseStructureManagerMock(),
analytics: AppDatesAnalyticsMock(),
router: AppDatesRouterMock()
analytics: AppDatesAnalyticsPreviewMock(),
router: AppDatesRouterPreviewMock()
)
)
}
Expand Down
Loading
Loading