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

Signed-off-by: Justin Kim <jungkm@amazon.com>
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
Signed-off-by: Justin Kim <jungkm@amazon.com>
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 <kavilla414@gmail.com>

---------

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

* Upgrade Cypress to v12 (#8995)

* Update Cypress to v12 (#8926)

* Update cypress to v12

Signed-off-by: Daniel Rowe <rowdane@amazon.com>

* Add required e2e.js

Signed-off-by: Daniel Rowe <rowdane@amazon.com>

* Changeset file for PR #8926 created/updated

* Update license header

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

* Update license in e2e.js

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
Co-authored-by: Daniel Rowe <rowdane@amazon.com>
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 <rowdane@amazon.com>

* Changeset file for PR #8993 created/updated

* use typescript config

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

* fix lint

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

* disable new test isolation feature

This isolation was causing regressions

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
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 <rowdane@amazon.com>

* Add required e2e.js

Signed-off-by: Daniel Rowe <rowdane@amazon.com>

* Changeset file for PR #8926 created/updated

* Update license header

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

* Update license in e2e.js

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
Co-authored-by: Daniel Rowe <rowdane@amazon.com>
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 <rowdane@amazon.com>

* Changeset file for PR #8993 created/updated

* use typescript config

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

* fix lint

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

* disable new test isolation feature

This isolation was causing regressions

Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
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 <contactme@chunkeili.com>

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
Signed-off-by: Argus Li <contactme@chunkeili.com>
Co-authored-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
Co-authored-by: Daniel Rowe <rowdane@amazon.com>
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 <abigailhu2000@gmail.com>

* ignore lint in data files

Signed-off-by: abbyhu2000 <abigailhu2000@gmail.com>

* remove yarn lock changes

Signed-off-by: abbyhu2000 <abigailhu2000@gmail.com>

* add changelog

Signed-off-by: abbyhu2000 <abigailhu2000@gmail.com>

---------

Signed-off-by: abbyhu2000 <abigailhu2000@gmail.com>

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

* Add data-test-subj for discover
Signed-off-by: Anan Zhuang <ananzh@amazon.com>
* fix comment
Signed-off-by: Anan Zhuang <ananzh@amazon.com>

---------

Signed-off-by: Anan Zhuang <ananzh@amazon.com>

* 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 <suchsah@amazon.com>
Co-authored-by: Anan Zhuang <ananzh@amazon.com>

* 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 <ananzh@amazon.com>

* fix comment

Signed-off-by: Anan <ananzh@amazon.com>

* update path and add utility from suchit commit

Signed-off-by: Anan <ananzh@amazon.com>

* update the path to run sample test

Signed-off-by: Anan <ananzh@amazon.com>

* fix PR comments

Signed-off-by: Anan <ananzh@amazon.com>

* skip tests before enable workspace

Signed-off-by: Anan <ananzh@amazon.com>

---------

Signed-off-by: Anan <ananzh@amazon.com>

* 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 <jungkm@amazon.com>

* Changeset file for PR #9074 created/updated

---------

Signed-off-by: Justin Kim <jungkm@amazon.com>
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 <federico.silva.-nd@disney.com>
Co-authored-by: Federico Silva <federico.silva.-nd@disney.com>

* 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 <ananzh@amazon.com>

* fix comment

Signed-off-by: Anan <ananzh@amazon.com>

* add verifyHitCount for PPL

Signed-off-by: Anan <ananzh@amazon.com>

* Changeset file for PR #9082 created/updated

---------

Signed-off-by: Anan <ananzh@amazon.com>
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 <ananzh@amazon.com>

* Changeset file for PR #9129 created/updated

---------

Signed-off-by: Anan <ananzh@amazon.com>
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 <federico.silva.dev@gmail.com>

* [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 <contactme@chunkeili.com>
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 <jungkm@amazon.com>

---------

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

* 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 <rowdane@amazon.com>

* Changeset file for PR #9153 created/updated

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
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 <jungkm@amazon.com>

---------

Signed-off-by: Justin Kim <jungkm@amazon.com>
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 <rowdane@amazon.com>

* Changeset file for PR #9079 created/updated

---------

Signed-off-by: Daniel Rowe <rowdane@amazon.com>
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 <contactme@chunkeili.com>

* Add comment about cleaning up saved queries

Signed-off-by: Argus Li <contactme@chunkeili.com>

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

Signed-off-by: Argus Li <contactme@chunkeili.com>

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

Signed-off-by: Argus Li <contactme@chunkeili.com>

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

Signed-off-by: Argus Li <contactme@chunkeili.com>

* Add new ui spec to test list saved queries

Signed-off-by: Argus Li <contactme@chunkeili.com>

* Fix DataSource url

Signed-off-by: Argus Li <contactme@chunkeili.com>

* Changeset file for PR #9166 created/updated

* Address Justin's comments.

Signed-off-by: Argus Li <contactme@chunkeili.com>

* Remove final force.

Signed-off-by: Argus Li <contactme@chunkeili.com>

* Fix final force.

Signed-off-by: Argus Li <contactme@chunkeili.com>

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

Signed-off-by: Argus Li <contactme@chunkeili.com>

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

Signed-off-by: Argus Li <contactme@chunkeili.com>

* fix import

Signed-off-by: Argus Li <contactme@chunkeili.com>

---------

Signed-off-by: Argus Li <contactme@chunkeili.com>
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 <jungkm@amazon.com>

* [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 <jungkm@amazon.com>

---------

Signed-off-by: Justin Kim <jungkm@amazon.com>

* refactor query enhancement tests (#9208)

Signed-off-by: Justin Kim <jungkm@amazon.com>

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

Signed-off-by: Justin Kim <jungkm@amazon.com>

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

Signed-off-by: Justin Kim <jungkm@amazon.com>

* Create cypress command namespacing util (#9150)

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

Signed-off-by: Justin Kim <jungkm@amazon.com>

---------

Signed-off-by: Kawika Avilla <kavilla414@gmail.com>
Signed-off-by: Daniel Rowe <rowdane@amazon.com>
Signed-off-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
Signed-off-by: Argus Li <contactme@chunkeili.com>
Signed-off-by: abbyhu2000 <abigailhu2000@gmail.com>
Signed-off-by: Anan Zhuang <ananzh@amazon.com>
Signed-off-by: Suchit Sahoo <suchsah@amazon.com>
Signed-off-by: Anan <ananzh@amazon.com>
Signed-off-by: Justin Kim <jungkm@amazon.com>
Signed-off-by: Federico Silva <federico.silva.-nd@disney.com>
Signed-off-by: Federico Silva <federico.silva.dev@gmail.com>
Co-authored-by: Ashwin P Chandran <ashwinpc@amazon.com>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Kawika Avilla <kavilla414@gmail.com>
Co-authored-by: Daniel Rowe <51932404+d-rowe@users.noreply.github.com>
Co-authored-by: Argus Li <43020525+ArgusLi@users.noreply.github.com>
Co-authored-by: Daniel Rowe <rowdane@amazon.com>
Co-authored-by: Qingyang(Abby) Hu <abigailhu2000@gmail.com>
Co-authored-by: Suchit Sahoo <38322563+LDrago27@users.noreply.github.com>
Co-authored-by: Justin Kim <jungkm@amazon.com>
Co-authored-by: Federico Silva <federico.silva@improving.com>
Co-authored-by: Federico Silva <federico.silva.-nd@disney.com>
Co-authored-by: Federico Silva <federico.silva.dev@gmail.com>
Co-authored-by: Sean Li <lnse@amazon.com>
Co-authored-by: d rowe <51932404+d-buckner@users.noreply.github.com>
@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