Updated Screenshot Tests and fixed an issue with the MockMediaProvider (#554)

* updated the tests

* updated ui tests

* removed unused files

* fixed a bug that prevented the image to be added in the avatar of the rooms from the mock, and improved some UI tests

* swiftformat

* fixed an issue where the room Id was not matching the real room id coming from the timelineController, also updated some tests, and added a test for the case where the RoomAvatar is available.

* added some waitForExistence checks to allow the CI to find the UI elements

* this should make the loading bar always match at the HStack size

* code improvement for the tests

* fix for the max frame of the loading screen

* updated tests

* regenerated and improved some tests

* sonarcloud improvements

* changelog
This commit is contained in:
Mauro
2023-02-09 14:57:55 +01:00
committed by GitHub
parent a02b461c37
commit 910a8e2067
137 changed files with 293 additions and 260 deletions
@@ -40,7 +40,8 @@ struct UserNotificationModalView: View {
}
}
.padding()
.frame(minWidth: 150.0, maxWidth: 250.0)
.frame(minWidth: 150.0)
.fixedSize(horizontal: true, vertical: false)
.background(Color.element.quinaryContent)
.clipShape(RoundedCornerShape(radius: 12.0, corners: .allCorners))
.shadow(color: .black.opacity(0.1), radius: 10.0, y: 4.0)
@@ -103,13 +103,13 @@ struct RoomDetailsScreen: View {
.background(Color.element.system)
.clipShape(RoundedCornerShape(radius: 8, corners: .allCorners))
.frame(width: menuIconSize, height: menuIconSize)
Text(ElementL10n.bottomActionPeople)
.foregroundColor(.element.primaryContent)
.font(.body)
Spacer()
if context.viewState.isLoadingMembers {
ProgressView()
} else {
@@ -138,19 +138,19 @@ struct RoomDetailsScreen: View {
.background(Color.element.system)
.clipShape(RoundedCornerShape(radius: 8, corners: .allCorners))
.frame(width: menuIconSize, height: menuIconSize)
VStack(alignment: .leading, spacing: 2) {
Text(ElementL10n.encryptionEnabled)
.foregroundColor(.element.primaryContent)
.font(.element.body)
Text(ElementL10n.encryptionEnabledTileDescription)
.foregroundColor(.element.secondaryContent)
.font(.element.footnote)
}
Spacer()
Image(systemName: "checkmark")
.foregroundColor(.element.quaternaryContent)
}
@@ -119,7 +119,7 @@ class BugReportService: NSObject, BugReportServiceProtocol {
if let progressListener {
progressSubject
.receive(on: DispatchQueue.main)
.assign(to: \.value, on: progressListener.progressSubject)
.weakAssign(to: \.value, on: progressListener.progressSubject)
.store(in: &cancellables)
(data, _) = try await session.data(for: request, delegate: self)
} else {
@@ -19,7 +19,7 @@ import UIKit
struct MockMediaProvider: MediaProviderProtocol {
func imageFromSource(_ source: MediaSourceProxy?, size: CGSize?) -> UIImage? {
nil
imageFromURL(source?.url, size: size)
}
func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result<UIImage, MediaProviderError> {
@@ -19,7 +19,7 @@ import Foundation
import MatrixRustSDK
struct MockRoomProxy: RoomProxyProtocol {
let id = UUID().uuidString
var id = UUID().uuidString
let name: String? = nil
let displayName: String?
var topic: String?
@@ -41,6 +41,7 @@ enum UITestScreenIdentifier: String {
case sessionVerification
case userSessionScreen
case roomDetailsScreen
case roomDetailsScreenWithRoomAvatar
case roomMemberDetailsScreen
}
@@ -274,11 +274,24 @@ class MockScreen: Identifiable {
return navigationSplitCoordinator
case .roomDetailsScreen:
let navigationStackCoordinator = NavigationStackCoordinator()
let userNotificationController = UserNotificationController(rootCoordinator: navigationStackCoordinator)
let roomProxy = MockRoomProxy(id: "MockRoomIdentifier",
displayName: "Room",
isEncrypted: true,
members: [.mockAlice, .mockBob, .mockCharlie])
let coordinator = RoomDetailsCoordinator(parameters: .init(navigationStackCoordinator: navigationStackCoordinator,
roomProxy: MockRoomProxy(displayName: "Room",
isEncrypted: true,
members: [.mockAlice, .mockBob, .mockCharlie]),
roomProxy: roomProxy,
mediaProvider: MockMediaProvider()))
navigationStackCoordinator.setRootCoordinator(coordinator)
return navigationStackCoordinator
case .roomDetailsScreenWithRoomAvatar:
let navigationStackCoordinator = NavigationStackCoordinator()
let roomProxy = MockRoomProxy(id: "MockRoomIdentifier",
displayName: "Room",
avatarURL: URL.picturesDirectory,
isEncrypted: true,
members: [.mockAlice, .mockBob, .mockCharlie])
let coordinator = RoomDetailsCoordinator(parameters: .init(navigationStackCoordinator: navigationStackCoordinator,
roomProxy: roomProxy,
mediaProvider: MockMediaProvider()))
navigationStackCoordinator.setRootCoordinator(coordinator)
return navigationStackCoordinator