Skip to content

Commit a3c51ed

Browse files
committed
Papo de sexta-feira
1 parent 4665fb5 commit a3c51ed

15 files changed

+73
-15
lines changed

solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
1515
guard let windowScene = (scene as? UIWindowScene) else { return }
1616

1717
self.window = UIWindow(frame: UIScreen.main.bounds)
18-
self.window?.rootViewController = UINavigationController(rootViewController: TabBarViewController())
18+
self.window?.rootViewController = TabBarViewController()
1919
self.window?.windowScene = windowScene
2020
self.window?.makeKeyAndVisible()
2121
}

solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/TabBarController.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ class TabBarViewController: UITabBarController, UITabBarControllerDelegate {
3535

3636
tabTransfers.tabBarItem = tabTransfersBarItem
3737

38-
self.viewControllers = [tabHome, tabTransfers]
38+
self.viewControllers = [
39+
UINavigationController(rootViewController: tabHome),
40+
tabTransfers
41+
]
3942
}
4043

4144
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {

solutions/devsprint-caio-santos-7/FinanceApp/Screens/ActivityDetails/ActivityCellView.swift

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,20 @@
77

88
import UIKit
99

10+
enum ActivityTypes: String {
11+
case mall = "Mall"
12+
case foodCourt = "Food Court"
13+
14+
func getColor() -> UIColor {
15+
switch self {
16+
case .mall:
17+
return .red
18+
case .foodCourt:
19+
return .blue
20+
}
21+
}
22+
}
23+
1024
class ActivityCellView: UITableViewCell {
1125

1226
private lazy var icon: UIImageView = {
@@ -16,7 +30,6 @@ class ActivityCellView: UITableViewCell {
1630
image.contentMode = .scaleAspectFit
1731
image.layer.cornerRadius = 24
1832
image.clipsToBounds = true
19-
2033
return image
2134
}()
2235

@@ -34,7 +47,7 @@ class ActivityCellView: UITableViewCell {
3447
label.translatesAutoresizingMaskIntoConstraints = false
3548
label.text = "Food court"
3649
label.font = .systemFont(ofSize: 16, weight: .semibold)
37-
50+
label.numberOfLines = 0
3851
return label
3952
}()
4053

@@ -52,6 +65,17 @@ class ActivityCellView: UITableViewCell {
5265
setupView()
5366
configViews()
5467
}
68+
69+
// MARK: Public Methods
70+
func updateValues(activity: Activity) {
71+
titleLabel.text = activity.name
72+
73+
if let type = ActivityTypes(rawValue: activity.name) {
74+
icon.tintColor = type.getColor()
75+
}
76+
77+
titleDescription.text = String.activityDetails(with: activity.price, and: activity.time)
78+
}
5579

5680
@available(*, unavailable)
5781
required init?(coder: NSCoder) { nil }

solutions/devsprint-caio-santos-7/FinanceApp/Screens/ActivityDetails/ActivityDetailsView.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ final class ActivityDetailsView: UIView {
5050
return image
5151
}()
5252

53-
private lazy var mallLabel: UILabel = {
53+
private lazy var activityNameLabel: UILabel = {
5454
let label = UILabel()
5555
label.translatesAutoresizingMaskIntoConstraints = false
5656
label.text = "Mall"
@@ -103,6 +103,13 @@ final class ActivityDetailsView: UIView {
103103
@objc func tappedButton(sender: UIButton) {
104104
print("action disparada")
105105
}
106+
107+
// MARK: Public Methods
108+
func updateValues(activity: Activity) {
109+
activityNameLabel.text = activity.name
110+
valueLabel.text = "\(activity.price)"
111+
hourLabel.text = activity.time
112+
}
106113
}
107114

108115
extension ActivityDetailsView: ViewCodable {
@@ -112,7 +119,7 @@ extension ActivityDetailsView: ViewCodable {
112119
addSubview(vCenterStack)
113120
addSubview(reportIssueButton)
114121
vStack.addArrangedSubview(bagImage)
115-
vStack.addArrangedSubview(mallLabel)
122+
vStack.addArrangedSubview(activityNameLabel)
116123
vStack.addArrangedSubview(shoppingLabel)
117124
vCenterStack.addArrangedSubview(valueLabel)
118125
vCenterStack.addArrangedSubview(hourLabel)

solutions/devsprint-caio-santos-7/FinanceApp/Screens/ActivityDetails/ActivityDetailsViewController.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import UIKit
99

1010
final class ActivityDetailsViewController: UIViewController {
11+
1112
let container = ActivityDetailsView()
1213

1314
override func loadView() {

solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ActivityDetails/ActivityCellViewTests.swift

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,39 @@ final class ActivityCellViewTests: XCTestCase {
1616
private var sut: ActivityCellView?
1717

1818
override func setUp() {
19-
19+
// SnapshotTesting.isRecording = true
2020
sut = ActivityCellView()
2121
let frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 64)
2222
sut?.frame = frame
23-
2423
}
2524

2625
func test_WhenInitActivityCellView_ThenView_ShouldHaveValidSnapshot() throws {
2726
let unwrappedSut = try XCTUnwrap(sut)
2827
assertSnapshot(matching: unwrappedSut, as: .image)
29-
28+
}
29+
30+
func test_WhenInitActivityCellViewWithBigText_ThenView_ShouldHaveValidSnapshot() throws {
31+
let unwrappedSut = try XCTUnwrap(sut)
32+
unwrappedSut.updateValues(activity: Activity(name: "TESTE TESTE TESTE TESTE TESTE TESTE TESTE",
33+
price: 0,
34+
time: "TESTE"))
35+
assertSnapshot(matching: unwrappedSut, as: .image)
36+
}
37+
38+
func test_WhenInitActivityCellViewWithMall_ThenView_ShouldHaveValidSnapshot() throws {
39+
let unwrappedSut = try XCTUnwrap(sut)
40+
unwrappedSut.updateValues(activity: Activity(name: "Mall",
41+
price: 0,
42+
time: "TESTE"))
43+
assertSnapshot(matching: unwrappedSut, as: .image)
44+
}
45+
46+
func test_WhenInitActivityCellViewWithFoodCourt_ThenView_ShouldHaveValidSnapshot() throws {
47+
let unwrappedSut = try XCTUnwrap(sut)
48+
unwrappedSut.updateValues(activity: Activity(name: "Food Court",
49+
price: 0,
50+
time: "TESTE"))
51+
assertSnapshot(matching: unwrappedSut, as: .image)
3052
}
3153

3254
override func tearDown() {

solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ActivityDetails/ActivityDetailsViewTests.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ final class ActivityDetailsViewTests: XCTestCase {
1515
// SnapshotTesting.isRecording = true
1616
}
1717

18-
func testLoadingComponent() {
19-
let component = ActivityDetailsViewController()
20-
assertSnapshot(matching: component, as: .image(on: .iPhoneX))
18+
func testRenderDefaultContent() {
19+
let component = ActivityDetailsView()
20+
assertSnapshot(matching: component, as: .image(size: .init(width: 414, height: 896)))
2121
}
2222

23-
func testRenderView() {
24-
let component = ActivityDetailsViewController()
25-
assertSnapshot(matching: component, as: .image(on: .iPhoneX))
23+
func testRenderUpdatedActivity() {
24+
let component = ActivityDetailsView()
25+
component.updateValues(activity: Activity(name: "TESTE", price: 0, time: "TESTE"))
26+
assertSnapshot(matching: component, as: .image(size: .init(width: 414, height: 896)))
2627
}
2728
}

0 commit comments

Comments
 (0)