diff options
Diffstat (limited to 'spec/frontend/search/store/utils_spec.js')
-rw-r--r-- | spec/frontend/search/store/utils_spec.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/frontend/search/store/utils_spec.js b/spec/frontend/search/store/utils_spec.js index 8c4a17f0a5d..dfe4e801f11 100644 --- a/spec/frontend/search/store/utils_spec.js +++ b/spec/frontend/search/store/utils_spec.js @@ -7,6 +7,7 @@ import { isSidebarDirty, formatSearchResultCount, getAggregationsUrl, + prepareSearchAggregations, } from '~/search/store/utils'; import { useMockLocationHelper } from 'helpers/mock_window_location_helper'; import { @@ -15,6 +16,9 @@ import { MOCK_INFLATED_DATA, FRESH_STORED_DATA, STALE_STORED_DATA, + MOCK_AGGREGATIONS, + SMALL_MOCK_AGGREGATIONS, + TEST_RAW_BUCKETS, } from '../mock_data'; const PREV_TIME = new Date().getTime() - 1; @@ -266,4 +270,22 @@ describe('Global Search Store Utils', () => { expect(getAggregationsUrl()).toStrictEqual(`${testURL}search/aggregations`); }); }); + + const TEST_LANGUAGE_QUERY = ['Markdown', 'JSON']; + const TEST_EXPECTED_ORDERED_BUCKETS = [ + TEST_RAW_BUCKETS.find((x) => x.key === 'Markdown'), + TEST_RAW_BUCKETS.find((x) => x.key === 'JSON'), + ...TEST_RAW_BUCKETS.filter((x) => !TEST_LANGUAGE_QUERY.includes(x.key)), + ]; + + describe('prepareSearchAggregations', () => { + it.each` + description | query | data | result + ${'has no query'} | ${undefined} | ${MOCK_AGGREGATIONS} | ${MOCK_AGGREGATIONS} + ${'has query'} | ${{ language: TEST_LANGUAGE_QUERY }} | ${SMALL_MOCK_AGGREGATIONS} | ${[{ ...SMALL_MOCK_AGGREGATIONS[0], buckets: TEST_EXPECTED_ORDERED_BUCKETS }]} + ${'has bad query'} | ${{ language: ['sdf', 'wrt'] }} | ${SMALL_MOCK_AGGREGATIONS} | ${SMALL_MOCK_AGGREGATIONS} + `('$description', ({ query, data, result }) => { + expect(prepareSearchAggregations({ query }, data)).toStrictEqual(result); + }); + }); }); |