From 6c86bef54cecc5f2f61e5d592c74026874149c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Engin=20Gu=CC=88lek?= <74055938+engingulek@users.noreply.github.com> Date: Wed, 12 Nov 2025 22:19:52 +0300 Subject: [PATCH 1/2] updated viewkit added navigaiton title in presenter and swift testing for navigation title --- ICTMDBHomeModule/HomePresenter.swift | 2 ++ ICTMDBHomeModule/HomeProtocols.swift | 2 +- Package.resolved | 4 ++-- Package.swift | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ICTMDBHomeModule/HomePresenter.swift b/ICTMDBHomeModule/HomePresenter.swift index 04b5e4b..9d91cac 100644 --- a/ICTMDBHomeModule/HomePresenter.swift +++ b/ICTMDBHomeModule/HomePresenter.swift @@ -54,6 +54,8 @@ extension HomePresenter: ViewToPresenterHomeProtocol { func viewDidLoad() { view?.setBackColorAble(color: "backColor") + //TODO: move to Localizable + view?.setNavigationTitle(title: "Home Page") interactor.loadPopularMovies() interactor.loadAiringMovies() } diff --git a/ICTMDBHomeModule/HomeProtocols.swift b/ICTMDBHomeModule/HomeProtocols.swift index 752c37a..88c0b65 100644 --- a/ICTMDBHomeModule/HomeProtocols.swift +++ b/ICTMDBHomeModule/HomeProtocols.swift @@ -13,7 +13,7 @@ import UIKit // MARK: - Typealias /// Combines UIViewAble and SegueAble protocols for convenience. -typealias Ables = UIViewAble & SegueAble +typealias Ables = UIViewAble & SegueAble & NavConUIAble // MARK: - View → Presenter /// Protocol for communication from View to Presenter. diff --git a/Package.resolved b/Package.resolved index 062824d..083277f 100644 --- a/Package.resolved +++ b/Package.resolved @@ -51,8 +51,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/engingulek/ICTMDBViewKit", "state" : { - "revision" : "59a0f4675ec6e7c69a26e3277b659d8d6ab0135b", - "version" : "0.0.2" + "revision" : "be3081738b66acd58ebe28de2c62aca91e8afa18", + "version" : "0.0.3" } }, { diff --git a/Package.swift b/Package.swift index ba9a605..ac5f88a 100644 --- a/Package.swift +++ b/Package.swift @@ -15,10 +15,10 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/SnapKit/SnapKit.git", from: "5.0.1"), - .package(url: "https://github.com/engingulek/GenericCollectionViewKit",from:"0.0.1"), + .package(url: "https://github.com/engingulek/GenericCollectionViewKit",from:"0.0.2"), .package(url: "https://github.com/engingulek/ICTMDBModularProtocols", from: "0.0.1"), - .package(url: "https://github.com/engingulek/ICTMDBNetworkManagerKit", from: "0.0.1"), - .package(url: "https://github.com/engingulek/ICTMDBViewKit", from: "0.0.1"), + .package(url: "https://github.com/engingulek/ICTMDBNetworkManagerKit", from: "0.0.2"), + .package(url: "https://github.com/engingulek/ICTMDBViewKit", from: "0.0.3"), .package(url: "https://github.com/engingulek/HPDependencyKit", from: "1.0.0"), ], targets: [ From 8142e9edc05cedfa08c7acabd54e2a3a0939ef37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Engin=20Gu=CC=88lek?= <74055938+engingulek@users.noreply.github.com> Date: Wed, 12 Nov 2025 22:20:03 +0300 Subject: [PATCH 2/2] test --- ICTMDBHomeModule/HomeViewController.swift | 2 +- ICTMDBHomeModuleTests/ICTMDBHomeModuleTests.swift | 14 ++++++++++++++ ICTMDBHomeModuleTests/MockHomeViewController.swift | 12 ++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/ICTMDBHomeModule/HomeViewController.swift b/ICTMDBHomeModule/HomeViewController.swift index 0b9fc79..f29e2d9 100644 --- a/ICTMDBHomeModule/HomeViewController.swift +++ b/ICTMDBHomeModule/HomeViewController.swift @@ -135,5 +135,5 @@ extension HomeViewController: @MainActor PresenterToViewHomeProtocol { // MARK: - Preview #Preview { let module = ICTMDBHomeModule() - module.createHomeModule() + UINavigationController(rootViewController: module.createHomeModule()) } diff --git a/ICTMDBHomeModuleTests/ICTMDBHomeModuleTests.swift b/ICTMDBHomeModuleTests/ICTMDBHomeModuleTests.swift index 49ec9ae..8f8a8dd 100644 --- a/ICTMDBHomeModuleTests/ICTMDBHomeModuleTests.swift +++ b/ICTMDBHomeModuleTests/ICTMDBHomeModuleTests.swift @@ -42,6 +42,20 @@ struct ICTMDBHomeModuleTests { #expect(view.invokedSetBackColorAbleData == ["backColor"]) } + + @Test("Set navigaiton title") + func testNavigationTitle() { + #expect(view.invokedSetNavigationTitle == false) + #expect(view.invokedSetNavigationTitleCount == 0) + + presenter.viewDidLoad() + + #expect(view.invokedSetNavigationTitle == true) + #expect(view.invokedSetNavigationTitleCount == 1) + #expect(view.invokedSetNavigationTitleData.map(\.title) == ["Home Page"]) + + } + @Test("Check number of sections") func testNumberOfSections() { presenter.viewDidLoad() diff --git a/ICTMDBHomeModuleTests/MockHomeViewController.swift b/ICTMDBHomeModuleTests/MockHomeViewController.swift index 9f7f0a9..68a964e 100644 --- a/ICTMDBHomeModuleTests/MockHomeViewController.swift +++ b/ICTMDBHomeModuleTests/MockHomeViewController.swift @@ -10,6 +10,7 @@ import UIKit @testable import ICTMDBHomeModule final class MockHomeViewController: PresenterToViewHomeProtocol { + // MARK: - Mock Functions @@ -19,6 +20,17 @@ final class MockHomeViewController: PresenterToViewHomeProtocol { invokedRelaodCollectionView = true invokedRelaodCollectionViewCount += 1 } + + var invokedSetNavigationTitle = false + var invokedSetNavigationTitleCount = 0 + var invokedSetNavigationTitleData: [(title: String,())] = [] + func setNavigationTitle(title: String) { + invokedSetNavigationTitle = true + invokedSetNavigationTitleCount += 1 + invokedSetNavigationTitleData.append((title: title, ())) + + } + var invokedSendError = false var invokedSendErrorCount = 0