Commit Graph

110 Commits

Author SHA1 Message Date
ElementRobot
57f30f18d0
[create-pull-request] automated change (#12805)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-07-24 10:30:03 +00:00
ElementRobot
2fd291c23c
[create-pull-request] automated change (#12804)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-23 06:20:25 +00:00
ElementRobot
18398951b4
[create-pull-request] automated change (#12799)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-20 06:21:04 +00:00
ElementRobot
d202295015
[create-pull-request] automated change (#12795)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-19 06:20:58 +00:00
ElementRobot
72d32bd681
[create-pull-request] automated change (#12789)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-18 06:21:00 +00:00
ElementRobot
cf96a6d82c
[create-pull-request] automated change (#12784)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-17 06:19:56 +00:00
ElementRobot
13e10654b0
[create-pull-request] automated change (#12779)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-16 06:20:51 +00:00
ElementRobot
0a622f11fc
[create-pull-request] automated change (#12767)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-12 06:22:06 +00:00
ElementRobot
2772a9b767
[create-pull-request] automated change (#12763)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-11 06:22:30 +00:00
ElementRobot
2712803bbb
[create-pull-request] automated change (#12759)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-10 06:24:03 +00:00
ElementRobot
7487b27857
[create-pull-request] automated change (#12740)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-09 06:24:22 +00:00
ElementRobot
5bda8d0d5c
[create-pull-request] automated change (#12734)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-06 06:22:31 +00:00
David Baker
06117695bc
Fix close button on forgot password flow (#12732)
* Fix close button on forgot password flow

The 'x' had escaped out the right of the button for some reason

* Add test that actually opens the dialog in question

* Actually screenshot the right thing

* Unnecessary screenshot
2024-07-05 09:51:21 +00:00
ElementRobot
6f5d21fedb
[create-pull-request] automated change (#12731)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-05 06:22:38 +00:00
ElementRobot
e75dc4e038
[create-pull-request] automated change (#12724)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-04 06:24:09 +00:00
ElementRobot
2702f8ba8c
[create-pull-request] automated change (#12722)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-03 06:25:00 +00:00
ElementRobot
6ebaf3b46b
[create-pull-request] automated change (#12717)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-07-02 06:25:26 +00:00
ElementRobot
9b00af6b56
[create-pull-request] automated change (#12712)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-06-28 06:24:33 +00:00
ElementRobot
b449dc835b
[create-pull-request] automated change (#12707)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-06-27 06:24:50 +00:00
ElementRobot
95c8aa3d18
[create-pull-request] automated change (#12702)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-06-26 06:24:43 +00:00
ElementRobot
cea0b7c37e
[create-pull-request] automated change (#12678)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-25 06:20:36 +00:00
ElementRobot
ce7b538770
[create-pull-request] automated change (#12671)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-22 06:25:53 +00:00
ElementRobot
d5e06c95cb
[create-pull-request] automated change (#12655)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-20 09:42:39 +00:00
Richard van der Hoff
7e7b55efe3
Playwright tests to replace old loading-test.tsx (#12654)
A selection of Playwright tests intended to replace the old Jest tests in
Element-Web's `loading-test.tsx`.
2024-06-20 09:20:52 +00:00
ElementRobot
2b4b415eb3
[create-pull-request] automated change (#12641)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-19 06:28:14 +00:00
ElementRobot
042aa17a60
[create-pull-request] automated change (#12631)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-18 08:45:08 +00:00
ElementRobot
28bcbd4056
Playwright Docker image updates (#12626)
* [create-pull-request] automated change

* Complete UIA password prompt

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-06-17 09:30:33 +00:00
ElementRobot
bd196aee29
[create-pull-request] automated change (#12620)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-14 09:00:37 +00:00
ElementRobot
7ae50dbce5
[create-pull-request] automated change (#12611)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-13 07:55:04 +00:00
ElementRobot
6198ce511f
[create-pull-request] automated change (#12603)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-12 06:29:49 +00:00
ElementRobot
4e3de2b27e
[create-pull-request] automated change (#12595)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-11 06:28:48 +00:00
ElementRobot
eee17f43c3
[create-pull-request] automated change (#12592)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-08 06:28:33 +00:00
ElementRobot
c0cbd687c2
[create-pull-request] automated change (#12584)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-07 06:29:53 +00:00
ElementRobot
e867196c15
[create-pull-request] automated change (#12581)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-06 06:29:42 +00:00
ElementRobot
5004456d82
[create-pull-request] automated change (#12577)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-05 06:28:32 +00:00
ElementRobot
ab6a94aa8f
[create-pull-request] automated change (#12574)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-04 06:27:48 +00:00
ElementRobot
c3769addd3
[create-pull-request] automated change (#12573)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-06-01 06:27:15 +00:00
ElementRobot
fa7486e415
[create-pull-request] automated change (#12572)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-31 09:28:18 +00:00
Michael Telatynski
aec15a6ac1
Pin playwright synapse docker image to 2 days ago (#12571)
* Pin playwright synapse docker image to 2 days ago

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Automatically update Synapse docker image using GHA PRs

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-30 10:34:34 +00:00
Hubert Chathi
4ed6da4eba
Remove old pre-join UTD logic (#12464)
* remove old pre-join UTD logic

and add a playwright test for new pre-join UTD

* remove variable that isn't used any more

* add missing synapse template

* remove unused variable (again) and run prettier

* add test that we can jump to an event before our latest join membership event

* modify default template instead of creating a new template
2024-05-10 20:20:40 +00:00
Hubert Chathi
31373399f9
Add support for device dehydration v2 (#12316)
* rehydrate/dehydrate device if configured in well-known

* add handling for dehydrated devices

* some fixes

* schedule dehydration

* improve display of own dehydrated device

* created dehydrated device when creating or resetting SSSS

* some UI tweaks

* reorder strings

* lint

* remove statement for testing

* add playwright test

* lint and fix broken test

* update to new dehydration API

* some fixes from review

* try to fix test error

* remove unneeded debug line

* apply changes from review

* add Jest tests

* fix typo

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* don't need Object.assign

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-04-15 15:47:15 +00:00
Michael Telatynski
36a8d503df
Add Playwright tests for OIDC-aware & OIDC-native (#12252)
* Resolve race condition between opening settings & well-known check in OIDC mode

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add OIDC-aware and OIDC-native tests using MAS

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-02-21 10:43:47 +00:00
Michael Telatynski
a9add4504f
Improvements around docker in Playwright (#12261)
* Extract Postgres Docker to its own class

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Don't specify docker `--rm` in CI as it makes debugging harder

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Improve docker commands and introspection

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove `HOST_DOCKER_INTERNAL` magic in favour of `host.containers.internal`

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Always pipe

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Re-add pipe flag to silence pg_isready and podman checks

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-02-20 14:21:10 +00:00
Michael Telatynski
5983528a8d
Remove Cypress & Playwright in their entirety (#12145) 2024-01-16 09:48:49 +00:00
Michael Telatynski
4c21f8fd10
Update homeserver.yaml (#12129) 2024-01-10 15:49:30 +00:00
renovate[bot]
a0c8575113
Update dependency prettier to v3 (#12095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-02 18:56:39 +00:00
R Midhun Suresh
7b3d5b5f21
Playwright: Convert sliding-sync test to playwright (#11989)
* Add method to send text message

* Add dockerUrl to HomeServerConfig

* Implement sliding sync proxy

* Convert tests

* Reload page after applying labs feature

* Remove converted files

* Remove timeout

* Remove sliding-sync

* Remove proxy import

* Remove reference to proxy

* wait for load

* Update date

* Convert enableLabsFeature to separate fixture

* Enable feature in fixture

* Skip over config and just write to local-storage

* Rename fixture

* Fix room header test

* Use type inference

* Override config instead of setting localstorage

* Set default language

* Always add labs feature

* Put this one test into a separate describe block

* Move labs lag within describe block
2023-12-16 10:01:26 +00:00
R Midhun Suresh
a7c039d314
Fix playwright screenshot update command on linux (#12060)
* Change permission for synapse to work

* Upgrade playwright
2023-12-15 14:30:59 +00:00
Michael Telatynski
d5a211c774
Attach synapse logs to failed Playwright test runs (#12027)
* Attach synapse logs to failed Playwright test runs

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update playwright/plugins/homeserver/index.ts

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-14 13:49:35 +00:00
Michael Telatynski
c9008152c5
Migrate widgets/* from Cypress to Playwright (#12032)
* Migrate send_event.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate read_events.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate kick.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate get-openid-token.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate layout.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate events.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate stickers.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate widget-pip-close.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix types

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add screenshot

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* expect.poll to stabilise test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-12 17:26:08 +00:00
Michael Telatynski
99cb985d53
Migrate permalinks.spec.ts from Cypress to Playwright (#12004)
* Migrate permalinks.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Stabilise screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-12 09:56:55 +00:00
Michael Telatynski
b02ff16a21
Migrate room/* from Cypress to Playwright (#11985)
* Remove old percy media query CSS

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Stabilise soft_logout.spec.ts

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update screenshots using `toMatchScreenshot` assertion with CSS overrides

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix accidentally commented test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate room/* from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* delint

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update labs.ts

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-04 12:01:06 +00:00
Michael Telatynski
1b3f473c10
Migrate settings/* from Cypress to Playwright (#11949)
* Migrate location.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate location.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate appearance-user-settings-tab.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate device-management.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate general-room-settings-tab.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate general-user-settings-tab.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate preferences-user-settings-tab.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate security-user-settings-tab.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add screenshot

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Deflake

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Move settings into subclass

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-29 13:50:13 +00:00
Michael Telatynski
1c72bb9e6f
Migrate one-to-one-chat.spec.ts from Cypress to Playwright (#11953)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-28 11:02:50 +00:00
Michael Telatynski
f7aab0e042
Implement dendrite & pinecone support in Playwright (#11943)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-27 14:40:45 +00:00
Michael Telatynski
d827723b3d
Migrate user-onboarding-*.spec.ts from Cypress to Playwright (#11927)
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
Co-authored-by: Johannes Marbach <johannesm@element.io>
Co-authored-by: Milton Moura <miltonmoura@gmail.com>
2023-11-27 12:11:00 +00:00
Michael Telatynski
a231a8d543
Use Playwright snapshot utility instead of Percy (#11922)
* Install playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add foundations for writing tests under Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* .gitignore juggling

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add tsconfig and fix eslint rules

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add docker & synapse plugins

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add login.spec.ts

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Wire up fixture which sets up ElementAppPage & bakes config.json

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove launch test, it has served its purpose

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove test which has been ported to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix test not cleaning up after itself

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Move registerUser to the Homeserver interface

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove unused fixture param

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove redundant launch test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add newline

* Run both legacy & rust crypto tests in Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove redundant comment

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Create plugin for mail-hog

* Move injectAxe into element-web-test.ts

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Switch out axe-playwright for @axe-core/playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Migrate email.spec.ts from Cypress to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* prettier

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Use Playwright snapshot utility over Percy

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove commented our Percy badge as we're unlikely to want to go back

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2023-11-24 12:32:07 +00:00
Michael Telatynski
a6705304aa
Port remaining login.spec.ts & soft_logout.spec.ts tests from Cypress to Playwright (#11917)
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2023-11-23 10:27:11 +00:00
Michael Telatynski
8dcd13eb6d
Migrate email.spec.ts from Cypress to Playwright (#11920)
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2023-11-23 09:09:32 +00:00
Michael Telatynski
52e3e0de1f
Add a login test against Synapse to Playwright (#11913)
* Install playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add foundations for writing tests under Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* .gitignore juggling

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add tsconfig and fix eslint rules

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add docker & synapse plugins

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add login.spec.ts

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Wire up fixture which sets up ElementAppPage & bakes config.json

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove launch test, it has served its purpose

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove test which has been ported to Playwright

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix test not cleaning up after itself

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Move registerUser to the Homeserver interface

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove unused fixture param

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove redundant launch test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add newline

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2023-11-22 11:49:51 +00:00