Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore : Comprehensive e2e testing for public sharing #50260

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

nfebe
Copy link
Contributor

@nfebe nfebe commented Jan 18, 2025

This PR enhances the testing framework for public sharing by introducing modular improvements and extending test coverage with "before create public share" checks.

Adds the following tests:

  • Password and expiration date enforced
  • Password enforced with a default expiration date
  • Expiration date enforced with optional password
  • Default password and expiration date without enforcement
  • Password enforced, expiration date set but not enforced
  • Both password and expiration date not enforced, but defaults set
  • Password not enforced, expiration date enforced
  • Password not enforced, default expiration date set
  • Password and expiration date not enforced with no defaults

Screencast for e2e plays

public-sharing-e2e-tests.mp4

@nfebe nfebe force-pushed the enhancements/files-sharing-tests branch 4 times, most recently from 088f24e to 2133889 Compare January 20, 2025 17:28
@nfebe nfebe requested review from susnux, artonge, Pytal, provokateurin and a team January 20, 2025 17:31
@nfebe nfebe marked this pull request as ready for review January 20, 2025 17:31
@nfebe nfebe changed the title chore : Improved testing and feature enhancements for public sharing chore : Comprehensive e2e testing public sharing Jan 20, 2025
@nfebe nfebe changed the title chore : Comprehensive e2e testing public sharing chore : Comprehensive e2e testing for public sharing Jan 20, 2025
Copy link
Contributor

@artonge artonge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feels like the missing piece is now to ensure that the submitted share options are effective by accessing the share.

const { dataSnapshot, shareUrl } = data as any || {}
if (dataSnapshot) {
cy.restoreState(dataSnapshot)
defaultShareContext.url = shareUrl
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you set one of its property, it is not a default anymore.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't get the purpose of defaultShareContext. It is a global variable that is used only in this file, but is also passed as an argument in the functions in this file. Feels confusing. And it is mainly used to provide the User object and to receive the url. Can't we use an argument and the return value instead?
Can't we do without?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That method is being used in other tests in away that does not provide parameters those tests just need some or a public link to exist.

This file has now been repurposed to continue serving those tests while this new scenario.

@nfebe nfebe force-pushed the enhancements/files-sharing-tests branch from 2133889 to 4b32508 Compare January 22, 2025 22:42
nfebe added 3 commits January 23, 2025 10:18
This update enhances the testing framework for public sharing by
improving the setup and management of share contexts.
It refactors the code to make the `createShare` function reusable externally,
ensuring better testability and flexibility.
Additionally, the update optimizes share permission adjustments and
improves state management, making public share setups more efficient and maintainable.

Signed-off-by: nfebe <[email protected]>
This commit introduces end-to-end tests for various public link sharing scenarios in the `files_sharing` app. It validates the behavior under multiple configurations:

- Password and expiration date enforced
- Password enforced with a default expiration date
- Expiration date enforced with optional password
- Default password and expiration date without enforcement
- Password enforced, expiration date set but not enforced
- Both password and expiration date not enforced, but defaults set
- Password not enforced, expiration date enforced
- Password not enforced, default expiration date set
- Password and expiration date not enforced with no defaults

The tests ensure proper validation and functionality of the configurations, leveraging the `setupData` and `createShare` utilities.

Signed-off-by: nfebe <[email protected]>
@nfebe nfebe force-pushed the enhancements/files-sharing-tests branch from 4b32508 to 96b7fdb Compare January 23, 2025 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants