Commit Graph

274 Commits

Author SHA1 Message Date
Stefan Ceriu 60c77c6320 Fix one missed UI test snapshot. 2026-10-12 12:54:17 +03:00
Stefan Ceriu eb56586e76 Fix UI test snapshots after enabling the new search tab. 2026-10-12 10:17:46 +03:00
Stefan Ceriu a8bc26dc93 Fix various UI test snapshot issues. 2026-09-30 12:23:54 +03:00
Mauro b1ed870474 Support for Xcode 27 on CI (#6217)
* Run the tests on iOS 27.0

Bump the required simulator OS in the preview, UI and Compound tests, and the CI tool's default OS, from 26.5 to 27.0. Test devices stay the same.

iOS 27 writes transcoded videos 146 bytes larger, so update the expected sizes in MediaUploadingPreprocessorTests.

* Build and test on CI with Xcode 27

Select Xcode 27 in ci_common.sh and move every macOS workflow to the xcode-27 runner image, as macos-26 doesn't include Xcode 27. The Compound workflow now also creates its simulator on the iOS 27.0 runtime.

The xcode-27 runners are slower, so give the unit, Enterprise, Compound and snapshot recording jobs longer timeouts.

* Fix the preview snapshot layout on iOS 27

On iOS 27 the hosting controller applies the window's safe area when rendering, but the snapshot size comes from sizeThatFits, which ignores it. Component previews were shifted down and clipped at the bottom. Disable the hosting controller's safe area regions for these snapshots so the measured and rendered layouts match.

swift-snapshot-testing also renders into a window without a scene, and on iOS 27 a navigation stack in such a window reserves space for a large title it never shows, leaving a gap below the navigation bar. Attach the render window to the app's scene until swift-snapshot-testing handles it.

The invite users and add rooms screens sized their selected items row from a measured width stored in state, which is zero on the first layout pass, so snapshots could draw the row empty. Use containerRelativeFrame instead. The add rooms search previews now also wait for their results, and the search previews that show a clear button get a small precision tolerance, as it renders inconsistently in snapshots.

* Re-record the preview snapshots on iOS 27.0

Recorded on an iPhone SE (3rd generation) simulator running iOS 27.0 with Xcode 27.0 (27A266a). The changes come from iOS 27 rendering: text anti-aliasing, hyphenation and line breaking, navigation bars and toggles that now render in snapshots, lazy stacks that were blank on iOS 26, and pseudo-language locale formatting.

* Fix the UI tests on iOS 27

iOS 27 no longer exposes accessibility identifiers on SwiftUI menu items, so the space exploration test now finds them by label within the menu. On iPad, the start chat search field keeps focus after submitting and can swallow the next tap, so retry the tap if the create room screen doesn't appear.

* Re-record the UI test snapshots on iOS 27.0

Recorded on iPhone 17 and iPad (A16) simulators running iOS 27.0 with Xcode 27.0. The changes come from iOS 27 styling, like the keyboard height and glass borders. This also removes the iPad app lock setup snapshots, which have been orphaned since those tests stopped running on iPad.

* Fix the accessibility tests crashing on iOS 27

The accessibility tests' previews wrapper kept its ImageRenderer alive across the awaits that follow the render. On iOS 27, releasing it at that point tears down its view graph outside of a SwiftUI update, which hits an assertion and crashes the app. Release the renderer as soon as the image has been rendered.

* Keep the accessibility tests' image renderers alive on iOS 27

Releasing the ImageRenderer straight away wasn't enough: on iOS 27, releasing one that rendered a preview crashes SwiftUI whichever context it happens in. Keep the renderers alive instead. Each test launches a fresh app, so they only live for the one test.

* Share the UI tests' app settings with their mock user session

Since the user session flow reads its settings from UserSettings, the UI tests' mock user session was wrapping a fresh volatile AppSettings instead of the one the tests configure. The flags that skip onboarding weren't picked up, so every user session UI test got stuck on the notifications permission screen.

* Re-record the Compound snapshots on iOS 27.0

Apply the same safe area fix as the app's preview tests, so size-that-fits snapshots aren't clipped on iOS 27, and re-record the snapshots on an iPhone SE (3rd generation) simulator running iOS 27.0 in English (US).

* Fix a race reading the keyboard in the accessibility tests

On iOS 27 the QR code login screen's keyboard can be dismissing between checking that it exists and reading its frame, which fails the test. Snapshot it in a single query instead.
2026-09-29 17:02:48 +02:00
Stefan Ceriu cc07e07833 Fix UI test snapshots
after enabling room list badge counts and changing the rail trailing padding.
2026-09-25 12:13:08 +03:00
Stefan Ceriu 0454916b65 Fix start chat UI test snapshots following copy changes 2026-09-09 11:23:12 +03:00
Stefan Ceriu 8752897bc3 Fix UI test snapshots following copy changes and filter reordering 2026-09-03 10:36:31 +03:00
Stefan Ceriu 313f250273 Fix testAcceptSpaceInvite snapshot 2026-08-25 15:11:22 +03:00
Doug b27a549ef8 Update the toolbars in the Chats/Spaces screens. (#6043)
* Fix an issue with macro compilation when using Xcode previews.

* Update the Chats/Spaces toolbars to match the Figma.

Fixes a bug with the status emoji in the liquid glass button.
2026-08-18 17:50:15 +01:00
Doug 2228da3eb9 Make sure the Tab Rail's background matches the split view's detail background. (#6003) 2026-08-11 11:07:24 +01:00
Michael 6efa8743ff Combine the Server Selection screen into the Server Confirmation screen and add autocompletion when entering an account provider. (#5949)
* Adjust login flow to exclusively use the ServerSelectionScreen

* Move async code to server selection vm

* ServerSelection supports pro picker options

* Use homeserver address for both confirmation and picker modes

* rename ServerSelectionScreenMode

* remove ServerConfirmationScreen

It's been superseded by the ServerSelectionScreen

* rename userInput

* Update strings with latest design strings

* Add server input autocompletion

* Store previous servers in AppSettings and autofill on server signin

* Audit changes for logging

* Enforce lowercase server history storage

* Update tests

* Update Xcode project

* PR review fixups

* Add HomeserverHistoryManager

* Review fixups 2

* Review fixups 3
2026-08-10 18:38:37 +01:00
Stefan Ceriu 56b790da74 Fix various UI test snapshots 2026-08-04 14:17:07 +03:00
Doug 80ad39e877 Fix UI tests (#5862)
* Fix UI tests compilation error.

* Update UI Snapshots.
2026-07-10 18:12:05 +01:00
Doug 036c9ce248 Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26. (#5822)
* Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26.

* Use the .avatar label style for NotificationSettingsEditScreenRoomCell.
2026-07-01 12:58:33 +01:00
Doug 123661537a Make LinkNewDeviceScreen fall back to the App Lock PIN code when there's no passcode. (#5794)
* Fall back to the AppLock PIN code when there's no passcode.

* Add extra tests on the LinkNewDeviceFlowCoordinator.

* Misc tweaks for clarification.

* Regenerate snapshots.
2026-07-01 10:13:18 +01:00
Stefan Ceriu 69dd66b432 Fix poll form UI test snapshots after allowing multiple votes. 2026-06-24 11:12:44 +03:00
Stefan Ceriu a04a4c2691 Delete the composerAttachments UI test snapshot step
Because it keeps failing and because we have proper tests for all of those options
2026-06-22 15:09:36 +03:00
Doug 73ea338d67 Regenerate failing UI snapshots. 2026-06-18 12:45:40 +03:00
Mauro Romito 9dd78c0188 updated user sessions flow ui tests 2026-06-11 14:53:50 +02:00
Stefan Ceriu b7b762db16 Update UI test snapshots 2026-06-08 19:54:07 +03:00
Stefan Ceriu 8196fa09bd Update locally failing snapshots 2026-06-03 08:57:04 +03:00
Stefan Ceriu 0c1894e175 Update UI test snapshots that fail on CI 2026-05-29 17:48:00 +03:00
Stefan Ceriu 0138fd2a5e Add message sending end editing steps to the user session flow UI test 2026-05-27 18:05:25 +03:00
Stefan Ceriu 42b3507eaa Fix wrong keyboard type on some iPhone UI test snapshots. 2026-05-15 10:19:29 +03:00
Mauro Romito d60f5d6efb UI tests updated 2026-05-12 14:46:18 +02:00
Stefan Ceriu 80385bbc1e Fix start chat flow UI test snapshots after enabling the room directory by default 2026-05-11 15:37:38 +03:00
Stefan Ceriu 42d726cd50 Fix room roles and permissions UI test snapshots after adding live location sharing 2026-05-11 15:37:38 +03:00
Stefan Ceriu c46a0d22cb Revert "Re-enable the disabled UI tests but delete the snapshotting steps that are conflicting with the secure pin keyboard"
This reverts commit cde1ae61f9aa3c6d3528d390c3bdb37a4301444b.
2026-04-28 10:05:43 +02:00
Stefan Ceriu 893b8f56a6 Re-enable the disabled UI tests but delete the snapshotting steps that are conflicting with the secure pin keyboard 2026-04-28 10:05:43 +02:00
Mauro Romito f7cb0d2ff7 updated tests snapshots 2026-04-28 10:05:43 +02:00
Stefan Ceriu a17b097029 Update all UI test snapshots following 26.4 migration 2026-04-21 20:10:51 +03:00
Stefan Ceriu afd6b8cf55 Fix UI test snapshots after attachment menu and reply bubble UI changes 2026-04-01 13:03:58 +03:00
Mauro dfee18e511 Rename Sign Out to Remove Device + Update SDK 26.03.18 (#5280)
* update the sdk

* updated preview tests

# Conflicts:
#	ElementX/Sources/Screens/Timeline/View/Style/TimelineItemSendInfoLabel.swift
#	ElementX/Sources/Screens/Timeline/View/TimelineItemViews/LiveLocationRoomTimelineView.swift

* update sdk to 26.03.18 + regenerated preview tests after sign out copy change

* updated UI tests

* pr suggestions
2026-03-18 17:34:45 +01:00
Aaron Thornburgh b7bff0a29e Update join call button in room header (#5143)
* Change the Join Call button to 1.) show a Video Call Solid icon, 2.) change the label from "Join call" to "Join", and 3.) change the background color to primary/rest.

* Add a clarifying comment and snapshots.
2026-02-25 16:24:10 +00:00
Mauro 65a4be3df2 Session verification UI tests update (#5120)
session verification tests UI tests update
2026-02-18 10:57:04 +01:00
Stefan Ceriu bd0198c4a5 Fix some iPad UI test snapshots 2026-02-17 18:59:43 +02:00
Mauro Romito b885282b6b fix UI tests not related to auth 2026-02-13 16:45:39 +01:00
Doug b34832f7f8 Re-write the space flow state machine configuration and cover it more in UI tests. (#5098)
* Use the old state machine configuration style.

* Test starting the space settings flow in UI tests.

* Test starting the create space room flow in UI tests.
2026-02-12 13:19:20 +00:00
Doug 17cc41e6a0 More Space tweaks. (#5086)
* Centre align the title in the space filter cells.

* Update SpaceRoomCell and SpaceHeaderView with consistent content.
2026-02-10 13:44:04 +00:00
Mauro Romito deb6e9b285 ui tests updated 2026-01-30 17:33:24 +01:00
Doug 6e2ff7ae56 Include the Members and Add Rooms screens in the spaces UI tests. (#4981)
* Expand the space flow UI tests to include the add rooms screen.

Also fixes some failures in these tests due to the room/space title now being a button.

* Expand the space flow UI tests to include the space members screen.

* Reset AppSettings before running preview tests.
2026-01-21 15:24:54 +00:00
Doug 0360db7924 Tweak the RoomHeaderView to match Figma. (#4975) 2026-01-20 13:09:35 +00:00
Doug c5b1c5d1bd Use more Liquid Glass in the room/space screen toolbars (#4965)
* Add a glass style to the Room/Space header view on iOS 26.

* Update snapshots and fix the join call button.
2026-01-16 19:29:27 +00:00
Mauro 648caa4e82 Create space flow (#4957)
* create space flow implementation

# Conflicts:
#	ElementX/Sources/FlowCoordinators/SpacesTabFlowCoordinator.swift

* create space flow fully implemented and working

* updated tests and updated the create room camera button UI

* updated the avatar button in the create room screen, and added power level overrides for spaces

* update power level content overrides to behave just as EW, and removed ask to join when creating a space regardless of the FF

* updated UI tests snapshots

* invite for a public space should always be forced to 50

* pr suggestions + PL override fix

* fix a missed code change
2026-01-15 13:52:18 +00:00
Mauro 34123a4567 Empty spaces list screen (#4936)
* Added an FF to create spaces + empty spaces list state

* removed learn more button and improved spacing

* updated toolbar for chats and spaces to match ios 26 designs
2026-01-09 15:17:43 +01:00
Doug 7cb472a4f7 Add tests for linking a new device. (#4934)
* Replace GrantLoginWithQrCodeHandlerSDKMock with LinkNewDeviceServiceMock.

Add tests for all initial states on the QRCodeLoginScreen.

* Add tests for linking both mobile and desktop devices.

* Add UI tests for linking a new device.

* Don't show the Link Desktop Computer button when running on macOS.

This mirrors the decision to hide the Sign In With QR Code button on the start screen.
2026-01-09 13:10:14 +00:00
Doug 85ebf4d1ce Move BigIcon into Compound and add a new TitleAndIcon component. (#4866)
* Move BigIcon into Compound.

* Replace the old server selection image asset with the \.host icon.

* Add a new TitleAndIcon component to Compound.

* Add the ability to override TitleAndIcon's padding.
2025-12-16 16:01:26 +00:00
Doug 93dfc84a57 Add a service and flow coordinator for the LinkNewDevice feature. (#4859)
* Add a LinkNewDeviceService that exposes the SDK's grant QR code login methods.

* Add a flow coordinator for linking a new device.

Changes the presentation too.
2025-12-15 14:44:26 +00:00
Doug 444acc1157 Update Compound's List header style to match our iOS 26 components. (#4797)
* Update Compound's list header font for iOS 26.

* Update the preview snapshots.

* Update UI test snapshots.
2025-11-28 14:31:31 +00:00
Mauro 7fe67f000e Rename snapshots (#4756)
* renaming snapshots so that it's easier to diff them when an upgrade happens.

* fix macOS runner version for the compound tests

* os version update in the yml

* possible fix to run compound-ios tests
2025-11-17 16:46:51 +00:00