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

refactor query enhancement tests #9208

Merged

Conversation

angle943
Copy link
Collaborator

Description

Refactor various tests within the query enhancement

  • Make a shared.js utils for query enhancement. Move all functions that can be used by all query enhancement tests to here, such as getRandomizedWorkspaceName, generateAllTestConfigurations, and setDatePickerDatesAndSearchIfRelevant
    • Update all tests to use the getRandomizedWorkspaceName instead of each test having that logic themselves
  • Remove all redundant code related to field_display_filtering.spec, such as selecting a dataset, setting datepicker if relevant, etc
  • Update saved-queries-x.spec to remove redundant functions as well as refactor certain tests to work isolated.
    • For example: should see all saved queries depended on previous tests to have already made the queries. So I removed this test and added the logic to the end of the previous test instead

Changelog

  • skip

Check List

  • All tests pass
    • yarn test:jest
    • yarn test:jest_integration
  • New functionality includes testing.
  • New functionality has been documented.
  • Update CHANGELOG.md
  • Commits are signed per the DCO using --signoff

return generateTestConfiguration(datasetToUse, dataset.name, language);
})
);
};
Copy link
Collaborator Author

@angle943 angle943 Jan 17, 2025

Choose a reason for hiding this comment

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

Just a note: All of these utilities already existed in saved_search.js util file. So I renamed the saved_search.js file to saved.js and changed the names/comments of some of the functions so that it is clear that it is to be used by both savedSearch and savedQueries

/**
* Returns an array of test configurations for every query language + dataset permutation
* @param {GenerateTestConfigurationCallback} generateTestConfigurationCallback - cb function that generates a test case for the particular permutation
* @returns {object[]}
Copy link
Collaborator Author

@angle943 angle943 Jan 17, 2025

Choose a reason for hiding this comment

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

Note: This return type have been updated from SavedSearchTestConfig[] to generic object[]. The return type of this function is dictated by the output of the generateTestConfigurationCallback parameter.

If JSDoc had full support for generics or helpful TS utilities like ReturnType, I would be able to correctly type the return type of this function based on the return type of the callback, but based on my research JSDoc falls short when it comes to generics.

So unfortunately I had to resort to generic object[]. One another example of why we should convert our cypress files to be fully Typescript (not even mentioning just how annoying it generally is to type things using JSDoc)

Copy link

codecov bot commented Jan 17, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 61.02%. Comparing base (ed9ef72) to head (6a83304).
Report is 16 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9208      +/-   ##
==========================================
- Coverage   61.05%   61.02%   -0.03%     
==========================================
  Files        3816     3816              
  Lines       91492    91492              
  Branches    14459    14459              
==========================================
- Hits        55859    55835      -24     
- Misses      32069    32138      +69     
+ Partials     3564     3519      -45     
Flag Coverage Δ
Linux_1 29.12% <ø> (ø)
Linux_2 ?
Linux_3 38.03% <ø> (ø)
Linux_4 29.08% <ø> (ø)
Windows_1 29.14% <ø> (ø)
Windows_2 56.40% <ø> (ø)
Windows_3 38.03% <ø> (ø)
Windows_4 29.08% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ananzh ananzh added the discover_2.0-test Issues that are specific to the Discover 2.0 testing initiative label Jan 17, 2025
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: Can we update the name to common_utils.js

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

See my comment below for _utils.js suffix

Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: Can we rename it to saved_object_utils.js .

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

are saved queries considered a saved object? I tried saving a saved query and it does not appear under assets/object page. I initially considered saved_object but after seeing this behavior I decided against it to avoid potential confusion.

Also in regard to the naming convention of X_utils.js, I am ok with that change but for context, we have several files under this directory, all without the _utils suffix, so if I change it for these files, I should change it for all files. (all these utils are under cypres/UTILS/apps/query_enhancements so I thought the _utils was not needed)

Copy link
Collaborator

Choose a reason for hiding this comment

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

saved_queries are also considered a kind of saved object. You can select type as query to filter the assets in assets page to view it. So i think the moniker of saved_objects should be good.

That's nice point which I overlooked that all of the helpers are within the utils folder, which makes _utils kind of redundant. I think we should be good not using the _utils suffix.

Copy link
Collaborator

@LDrago27 LDrago27 left a comment

Choose a reason for hiding this comment

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

Looks good. A couple of nits but no blockers.

@LDrago27 LDrago27 merged commit a2f3b15 into opensearch-project:main Jan 17, 2025
72 of 73 checks passed
@angle943 angle943 deleted the refactor-query-enhancements-tests branch January 21, 2025 22:37
ananzh pushed a commit to ananzh/OpenSearch-Dashboards that referenced this pull request Jan 23, 2025
ananzh added a commit that referenced this pull request Jan 23, 2025
…ing backports (#9261)

* [Discover] Makes caching dataset options optional (#8799)

* [Discover] Makes caching dataset options optional.

* Adds unit test

* Changeset file for PR #8799 created/updated

* Update test

Signed-off-by: Kawika Avilla <[email protected]>

---------

Signed-off-by: Kawika Avilla <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Kawika Avilla <[email protected]>

* Upgrade Cypress to v12 (#8995)

* Update Cypress to v12 (#8926)

* Update cypress to v12

Signed-off-by: Daniel Rowe <[email protected]>

* Add required e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8926 created/updated

* Update license header

Signed-off-by: Daniel Rowe <[email protected]>

* Update license in e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* fix: support imports without extensions in cypress webpack build (#8993)

* fix: support imports without extensions in cypress webpack build

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8993 created/updated

* use typescript config

Signed-off-by: Daniel Rowe <[email protected]>

* fix lint

Signed-off-by: Daniel Rowe <[email protected]>

* disable new test isolation feature

This isolation was causing regressions

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* [Discover Test] TestID-69: Filtering. Add data-test-subj tags. (#9027)

* Update Cypress to v12 (#8926)

* Update cypress to v12

Signed-off-by: Daniel Rowe <[email protected]>

* Add required e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8926 created/updated

* Update license header

Signed-off-by: Daniel Rowe <[email protected]>

* Update license in e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* fix: support imports without extensions in cypress webpack build (#8993)

* fix: support imports without extensions in cypress webpack build

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8993 created/updated

* use typescript config

Signed-off-by: Daniel Rowe <[email protected]>

* fix lint

Signed-off-by: Daniel Rowe <[email protected]>

* disable new test isolation feature

This isolation was causing regressions

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Add data-test-subj tags.

Signed-off-by: Argus Li <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Argus Li <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Migrate query enhancement tests from functional repo to main (#9048)

* migrate query enhacenement tests

Signed-off-by: abbyhu2000 <[email protected]>

* ignore lint in data files

Signed-off-by: abbyhu2000 <[email protected]>

* remove yarn lock changes

Signed-off-by: abbyhu2000 <[email protected]>

* add changelog

Signed-off-by: abbyhu2000 <[email protected]>

---------

Signed-off-by: abbyhu2000 <[email protected]>

* Add missing data-test-subj tags for discover plugin (#9049)

* Add data-test-subj for discover
Signed-off-by: Anan Zhuang <[email protected]>
* fix comment
Signed-off-by: Anan Zhuang <[email protected]>

---------

Signed-off-by: Anan Zhuang <[email protected]>

* Add missing data-test-subj tags for data plugin (#9051)

* Add missing data-test-subj tags for data plugin
* Update Snapshots
* Fix as per the comments

---------

Signed-off-by: Suchit Sahoo <[email protected]>
Co-authored-by: Anan Zhuang <[email protected]>

* Follow up on #9048 by updating data and utilities (#9060)

* Follow up on #9048 by updating data and utilities

Feature branch PRs:
#9038
#9006

Signed-off-by: Anan <[email protected]>

* fix comment

Signed-off-by: Anan <[email protected]>

* update path and add utility from suchit commit

Signed-off-by: Anan <[email protected]>

* update the path to run sample test

Signed-off-by: Anan <[email protected]>

* fix PR comments

Signed-off-by: Anan <[email protected]>

* skip tests before enable workspace

Signed-off-by: Anan <[email protected]>

---------

Signed-off-by: Anan <[email protected]>

* refactor some query-enhancement utility functions, add some missing typings (#9074)

* refactor some query-enhancement utility functions, add some missing typings

Signed-off-by: Justin Kim <[email protected]>

* Changeset file for PR #9074 created/updated

---------

Signed-off-by: Justin Kim <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* add queryEditorLanguageOptions data-test-subj on language_selector.tsx (#9029)

Signed-off-by: Federico Silva <[email protected]>
Co-authored-by: Federico Silva <[email protected]>

* Re-enable dataset_selector.spec.js and queries.spec.js under workspace (#9082)

* Re-enable dataset_selector.spec.js and queries.spec.js under workspace

Signed-off-by: Anan <[email protected]>

* fix comment

Signed-off-by: Anan <[email protected]>

* add verifyHitCount for PPL

Signed-off-by: Anan <[email protected]>

* Changeset file for PR #9082 created/updated

---------

Signed-off-by: Anan <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Make createWorkspaceIndexPatterns to handle no default cluster and clean up (#9129)

* Make createWorkspaceIndexPatterns to handle no default cluster and clean up

Signed-off-by: Anan <[email protected]>

* Changeset file for PR #9129 created/updated

---------

Signed-off-by: Anan <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* add data-test-subj (#9135)

Signed-off-by: Federico Silva <[email protected]>

* [Discover] Adding Cypress Tests for S3 Datasets (#9113)

* [Discover 2.0 Testing] Create Filtering Test (TestId-69: Filtering) (#9119)

* Add test for filtering functionality for discover, which enables query enhancement
* Make test more robust: Add logic to use date picker start and end buttons if set to absolute times. Check the table length directly instead of number of hits to avoid bug where not all results load.

---------

Signed-off-by: Argus Li <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Add tests for saved search creation and loading for query enhancement (#9112)

* Add tests for saved search creation and loading for query enhancement
* click on a random element before typing on query editor to bypass the popover that appears
* address pr comments - refactor to create saved search as an api call
* address pr comments - specifically navigate to discover page before setting datasource

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Justin Kim <[email protected]>
Signed-off-by: Anan Zhuang <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Anan Zhuang <[email protected]>

* fix: 0 rendered in discover when there are no results (#9153)

* fix: 0 rendered in discover when there are no results

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #9153 created/updated

---------

Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* [Cypress][Fix] Update saved search utilities (#9151)

* update saved search
* minor refactor4 on setDatePickerDatesAndSearchIfRelevant

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Justin Kim <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* chore: use relative paths in cypress (#9079)

* chore: use relative paths in cypress

when we move to running tests in parallel we won't be able to use a single
hardcoded basepath as these can differ by tasks

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #9079 created/updated

---------

Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* [Discover 2.0 Testing] Create View List of Saved Queries Test (Test-Id 124: View list of Saved query)  (#9166)

* add spec for old ui

Signed-off-by: Argus Li <[email protected]>

* Add comment about cleaning up saved queries

Signed-off-by: Argus Li <[email protected]>

* Add data-test-subj for save query new ui

Signed-off-by: Argus Li <[email protected]>

* Add data-test-subj for save query button for new ui

Signed-off-by: Argus Li <[email protected]>

* Add data-test-subj for open query button in query management popover

Signed-off-by: Argus Li <[email protected]>

* Add new ui spec to test list saved queries

Signed-off-by: Argus Li <[email protected]>

* Fix DataSource url

Signed-off-by: Argus Li <[email protected]>

* Changeset file for PR #9166 created/updated

* Address Justin's comments.

Signed-off-by: Argus Li <[email protected]>

* Remove final force.

Signed-off-by: Argus Li <[email protected]>

* Fix final force.

Signed-off-by: Argus Li <[email protected]>

* Move utils to Suchit's suggested location, fix comments

Signed-off-by: Argus Li <[email protected]>

* Rename specs, change cypress workflow to use new save query ui, merge old ui and new ui commands

Signed-off-by: Argus Li <[email protected]>

* fix import

Signed-off-by: Argus Li <[email protected]>

---------

Signed-off-by: Argus Li <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* change casing to folder structures to be compliant with our rules (#9197)

Signed-off-by: Justin Kim <[email protected]>

* [Fix] Saved Search Integ Test Update: update saving a new saved search test spec (#9200)

* wait for the page to be loaded before loading a saved search
* when loading a saved search and saving it as a new saved search, use a different name

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Justin Kim <[email protected]>

* refactor query enhancement tests (#9208)

Signed-off-by: Justin Kim <[email protected]>

* chore: change casing of data-logs to be compliant with our git hook rules (#9220)

Signed-off-by: Justin Kim <[email protected]>

* chore: remove unused/redundant functions from field_display_filtering utils (#9219)

Signed-off-by: Justin Kim <[email protected]>

* Create cypress command namespacing util (#9150)

* update cy.createInitialWorkspaceWithDataSource -> cy.osd.createInitialWorkspaceWithDataSource (#9262)

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Kawika Avilla <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Argus Li <[email protected]>
Signed-off-by: abbyhu2000 <[email protected]>
Signed-off-by: Anan Zhuang <[email protected]>
Signed-off-by: Suchit Sahoo <[email protected]>
Signed-off-by: Anan <[email protected]>
Signed-off-by: Justin Kim <[email protected]>
Signed-off-by: Federico Silva <[email protected]>
Signed-off-by: Federico Silva <[email protected]>
Co-authored-by: Ashwin P Chandran <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Kawika Avilla <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: Argus Li <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: Qingyang(Abby) Hu <[email protected]>
Co-authored-by: Suchit Sahoo <[email protected]>
Co-authored-by: Justin Kim <[email protected]>
Co-authored-by: Federico Silva <[email protected]>
Co-authored-by: Federico Silva <[email protected]>
Co-authored-by: Federico Silva <[email protected]>
Co-authored-by: Sean Li <[email protected]>
Co-authored-by: d rowe <[email protected]>
@ananzh ananzh added the v2.19.0 label Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discover_2.0-test Issues that are specific to the Discover 2.0 testing initiative Skip-Changelog PRs that are too trivial to warrant a changelog or release notes entry v2.19.0 valued-contributor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants