Commit Graph

149 Commits

Author SHA1 Message Date
Stefan Ceriu
c92e847ed7 Replace ruby/fastlane tools with swift variants. (#5105)
* Replace ruby/fastlane unit and preview test flows with swift variants.

* Switch to swift-log and Logger for logging

* Address (my own!) PR comments.

---------

Co-authored-by: Doug <douglase@element.io>
2026-02-19 09:13:42 +00:00
Stefan Ceriu
04053ae69b Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Doug
e6efdf0e82 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
a78a923b0d Add a dedicated target for SDK mocks to avoid type name conflicts on the generated code. 2026-01-06 10:57:37 +00:00
Stefan Ceriu
ee52d8d11a Remove now unnecessary screen creation UI tests copying step. 2025-12-17 11:45:11 +02:00
Doug
28556da516 Remove eraseToStream now that any AsyncSequence is available to us. (#4836)
* Remove `eraseToStream` now that `any AsyncSequence` is available to us.

* Remove the now unnecessary backport of Mutex.

* Silence a couple more deprecation warnings.
2025-12-10 18:33:15 +00:00
Mauro Romito
50c07b4a40 add NSE sources to EX project to easily implement mocking and allow the code to be unit tested 2025-11-19 13:20:14 +01:00
Valere Fedronic
c75353a903 MSC4075 Use expirationTS to define the call ringing window (#4652)
* Listen to call decline to stop ringing when declined from other device

* MSC4075 Use expirationTS to define the call ringing window

* Implement ElementCallService tests.

* Update acknowledgements.
2025-11-12 12:59:09 +00:00
Mauro Romito
df7c89d3a1 update IDETemplateMacros.plist 2025-11-04 13:28:20 +01:00
Doug
bf533e0572 Fix a potential bug where the token couldn't be refreshed when the cached server /versions had expired. (#4687)
* Update SDK mocks for UniFFI 0.30.0

* Update the SDK.

* Update the SDK again

Includes a temporary workaround that patches the SDK's generated Swift files so that our tests don't crash:
3f0075fb8a
2025-11-03 19:09:31 +00:00
Mauro
6160c44d67 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00
Doug
bab9b89416 Some random tweaks made on a train 🚆 (#4636)
* Fix the search text field's tint colour.

* Don't allow optional content IDs in the placeholder avatar.

* Use SwiftUI to resolve the hex values in the Inspector app.

This fixes incorrect values being shown in dark/high-contrast modes.

* Fix a layout bug with the colour swatch in the Inspector app on iPhone.

* Switch to the chats tab when selecting a room with the global search screen.

* Run the latest SwiftFormat.
2025-10-21 10:04:54 +01:00
Doug
6cf7e90b3b Use the new Icon Composer .icon format. (#4612) 2025-10-10 20:00:03 +01:00
Stefan Ceriu
6cc47e0661 Fix how we generate app icon banners and implicitly the nightly icon (..again 🤦‍♂️). 2025-10-02 21:04:55 +03:00
Stefan Ceriu
4bb8dad64d Have the nightly label actually fit the icon. 2025-09-28 13:11:17 +03:00
Doug
fead5ff191 Initial setup for the SpaceListScreen. (#4380) 2025-08-05 11:06:26 +01:00
Mauro
a18eff9201 Accessibiliy Tests part 2 (#4325)
* running all the tests

* setting up CI

* fixed the workflow

* workflow on pull request, just to make it appear

* removed the test to run var

* fix archived tests name

* improved the tests, by filtering out some noise

* pr suggestions and added an improvement to the filtering

* improved the interrupt handler

* improved the UI interruption monitor handler

* some more refinement to handle the interruptor + false positive for non human readable labels

* reverted wrong commit

* ready for review, removed the on pull request check

* pr suggestions
2025-07-18 10:33:45 +02:00
Mauro
84e095f726 Automatic Accessibility Audits on previews part 1 (#4322)
* setup target

* accessibility tests implementation

* removed ipad check

* pr improvements

* updated project
2025-07-15 14:40:16 +02:00
Stefan Ceriu
5aa41736d6 Make the BuildSDK tool an AsyncParsableCommand and avoid help showing up after the command is run. 2025-06-26 16:10:46 +03:00
Doug
ea4f1ba9f3 Automatically open a PR to bump the calver (#4167)
* Update our tools package to Swift 6.1

Also improves the package layout with subdirectories 📁

* Update GenerateSDKMocks to be an Async command.

* Add a tool to bump the project CalVer every month.

* Add a workflow to automatically bump the calendar version.

Note: This only does year & month, the patch is handled by the release script.
2025-06-03 17:52:16 +01:00
Doug
9e95ef8a70 Add a tool (based on Periphery) that reports any unused strings. 2025-05-05 10:01:59 +03:00
Doug
834f62503e Fix the UI tests. (#4085)
* Compile errors 😬

* Update server selection snapshots.

The default footer string has changed.

* Remove the TemplateScreen UI tests.

We use preview tests for snapshots now, UI tests are for flow coordinators.

* Add the same looping on the OIDC UI test (but disable the test in the end).

* Run UI tests separately for iPhone and iPad.

GitHub runners don't seem to have enough memory to handle 2 simulators at once.
2025-05-02 12:47:31 +01:00
Doug
a67559299a Update the template screen to use the new(ish) Observation framework. (#4077)
* Update the template screen to use the new(ish) Observation framework.

* Add a variant of deferFulfillment that supports observables.

* Update snapshot fulfilment to work with either a publisher or a stream.
2025-04-30 16:49:23 +01:00
Mauro Romito
0ee2199645 updated the SDK to 25.03.24 2025-03-25 12:17:11 +01:00
Stefan Ceriu
1dcf19092d Converge on same naming convention for snapshots in the preview tests as in the UI tests. 2025-03-05 11:43:08 +02:00
Stefan Ceriu
65bf02b70d Revamp the UI test snapshot naming convention to make them easier to organize and find. 2025-03-05 11:43:08 +02:00
Doug
61312fa8ff Update Enterprise submodule.
Include pkl in the dependencies.
2025-02-17 12:01:08 +00:00
Stefan Ceriu
ef9c538cad Replace ImageMagick with a custom tool written in swift. 2025-01-21 16:25:29 +02:00
Stefan Ceriu
9bb462c744 Support double-length pseudlanguage in fallback translations and update snapshots for en-us. 2025-01-15 14:59:54 +02:00
Stefan Ceriu
346b36e5ba Bump the RustSDK to v25.01.15 and fix (most) concurrency sendability warnings in the generated mocks. 2025-01-15 14:59:54 +02:00
manuroe
c29f4cc9b4 Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Stefan Ceriu
87169d9db5 Retrofit deferFulfillment onto snapshot tests. (#3641)
* Retrofit `deferFulfillment` onto snapshot tests.

* Convert a bunch of preview tests to the new fulfillment publisher

* Convert more tests

* Remove unneeded delays from the remaining tests

* Remove snapshotting delay option.
2024-12-20 15:30:59 +02:00
Doug
f39b5ad49b Implement the save action when previewing media. (#3630)
* Implement the save action on the media preview.

* Update Compound and use the correct icon.

Also fixes an icon that has been renamed.

* Update the add to photo library usage description to match the designs.

* PR comments.
2024-12-17 16:35:51 +00:00
Mauro
17ef4093d5 remove iOS 16 support (#3443)
* remove iOS 16 support

* remove iOS 16 support

* test updates

* added more delay

* revert

* adding waiting time on the CI
2024-10-24 17:21:28 +02:00
Doug
48314ec403 Fix an error message in BuildSDK. 2024-10-17 12:45:44 +01:00
Doug
9c15f24ad1 Split up the generated tests from the snapshotting code. 2024-09-23 16:25:49 +01:00
Doug
54b126b8e0 Add support for account deactivation when not using OIDC. (#3295) 2024-09-17 20:08:35 +01:00
Stefan Ceriu
09094784c7 Require a specific snapshotting device minor OS version when running PreviewTests 2024-09-11 15:24:25 +03:00
Stefan Ceriu
eff3dd7cc3 Replace Prefire with a very similar but simpler and more direct approach (#3232)
* Replace Prefire with a very similar but simpler and more direct approach

* Move PreviewTest snapshots to their new location (snapshotting default, mirrors UITests)

* Update acknowledgements

* Switch snapshot configuration extensions to a custom version

* Exclude snapshots from the PreviewTests target

* Fix acknowledgements

* Rename snapshotting preference keys

* Remove `skipPackagePluginValidation`
2024-09-09 15:07:41 +03:00
Stefan Ceriu
ab8095d06c Make SwiftFormat 0.54.4 happy. 2024-09-09 08:23:53 +03:00
Stefan Ceriu
89eae00479 Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Stefan Ceriu
7725c73860 Stop running and publishing performance metrics to gh-pages 2024-09-05 13:49:56 +03:00
Doug
8a8f1fdf2c Use SwiftPackageList to generate acknowledgements. (#3117) 2024-08-06 12:39:37 +01:00
Stefan Ceriu
d8e7585354 Handle multithreaded access crashes on unit tests using generated mocks
- always dispatch receivedInvocations mutations on the main queue
2024-06-13 14:38:33 +03:00
Doug
3f57668f56 Adopt Rust's new sessionPath that replaces the basePath (#2903) 2024-06-06 18:35:57 +01:00
Stefan Ceriu
4d6f5d91a8 Generate mocks for all SDK classes and introduce a simple TimelineItemFactory test to try them out 2024-06-05 17:51:45 +03:00
Doug
fd8367df2a Update the tools to use swift-command-line-tools. 2024-05-15 11:32:45 +01:00
Doug
9efe29621c Fix SDK build script. 2024-05-14 11:06:46 +01:00
Doug
846d00e831 Update build-sdk tool. (#2835)
- Support new --target option on Rust allowing multiple targets to be built.
- Add new --device and --simulator shortcuts.
2024-05-14 10:48:52 +01:00
Stefan Ceriu
c6a4caf493 Attempt to improve unit test reliability:
- synchronize mock properties on the main queue
- sleep for longer when processing routes
- finish encoding before deallocating the keyed archiver
- wait for NotificationCenter notifications to be delivered
- change were we process remote notification permissions
2024-04-10 17:40:47 +03:00