|
| 1 | +import { getFieldTypeOptions } from 'uiSrc/utils' |
| 2 | +import { RedisDefaultModules } from 'uiSrc/slices/interfaces' |
| 3 | +import { FIELD_TYPE_OPTIONS, FieldTypes } from |
| 4 | + 'uiSrc/pages/browser/components/create-redisearch-index/constants' |
| 5 | + |
| 6 | +const nameAndVersionToModule = ([name, semanticVersion, version]: any[]) => ( |
| 7 | + { name, semanticVersion, version } |
| 8 | +) |
| 9 | + |
| 10 | +const ALL_OPTIONS = FIELD_TYPE_OPTIONS.map(({ value, text }) => ({ |
| 11 | + value, |
| 12 | + inputDisplay: text, |
| 13 | +})) |
| 14 | + |
| 15 | +const WITHOUT_GEOSHAPE_OPTIONS = ALL_OPTIONS.filter(({ value }) => value !== FieldTypes.GEOSHAPE) |
| 16 | + |
| 17 | +const getFieldTypeOptionsTests: any[] = [ |
| 18 | + [[['1', '2.8.4'], [RedisDefaultModules.Search, '2.8.4']].map(nameAndVersionToModule), ALL_OPTIONS], |
| 19 | + [[['1', '2.8.4'], [RedisDefaultModules.Search, '2.8.3']].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 20 | + [[['1', '2.8.3'], [RedisDefaultModules.SearchLight, '2.8.4']].map(nameAndVersionToModule), ALL_OPTIONS], |
| 21 | + [[['1', '2.8.4'], [RedisDefaultModules.SearchLight, '2.8.3']].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 22 | + [[['1', '2.8.3'], [RedisDefaultModules.FT, '2.8.4']].map(nameAndVersionToModule), ALL_OPTIONS], |
| 23 | + [[['1', '2.8.4'], [RedisDefaultModules.FT, '2.8.3']].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 24 | + [[['1', '2.8.3'], [RedisDefaultModules.FTL, '2.8.4']].map(nameAndVersionToModule), ALL_OPTIONS], |
| 25 | + [[['1', '2.8.4'], [RedisDefaultModules.FTL, '2.8.3']].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 26 | + [[['1', '2.8.4'], [RedisDefaultModules.Gears, '2.8.4']].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 27 | + [[['1', '2.8.4'], [RedisDefaultModules.Search, undefined, 20804]].map(nameAndVersionToModule), ALL_OPTIONS], |
| 28 | + [[['1', '2.8.4'], [RedisDefaultModules.Search, undefined, 20803]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 29 | + [[['1', '2.8.4'], [RedisDefaultModules.SearchLight, undefined, 20804]].map(nameAndVersionToModule), ALL_OPTIONS], |
| 30 | + [[['1', '2.8.4'], [RedisDefaultModules.SearchLight, undefined, 20803]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 31 | + [[['1', '2.8.4'], [RedisDefaultModules.SearchLight, undefined, 20804]].map(nameAndVersionToModule), ALL_OPTIONS], |
| 32 | + [[['1', '2.8.4'], [RedisDefaultModules.SearchLight, undefined, 20803]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 33 | + [[['1', '2.8.4'], [RedisDefaultModules.FT, undefined, 20804]].map(nameAndVersionToModule), ALL_OPTIONS], |
| 34 | + [[['1', '2.8.4'], [RedisDefaultModules.FT, undefined, 20803]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 35 | + [[['1', '2.8.4'], [RedisDefaultModules.FTL, undefined, 20804]].map(nameAndVersionToModule), ALL_OPTIONS], |
| 36 | + [[['1', '2.8.4'], [RedisDefaultModules.FTL, undefined, 20803]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 37 | + [[['1', '2.8.4'], [RedisDefaultModules.Gears, undefined, 20804]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 38 | + [[['1', '2.8.4'], [RedisDefaultModules.Gears, undefined, 20803]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 39 | + [[['1', '2.8.4'], [RedisDefaultModules.FTL, '2.8.3', 20803]].map(nameAndVersionToModule), WITHOUT_GEOSHAPE_OPTIONS], |
| 40 | + [[['1', '2.8.4'], [RedisDefaultModules.FTL, '2.8.4', 20804]].map(nameAndVersionToModule), ALL_OPTIONS], |
| 41 | +] |
| 42 | + |
| 43 | +describe('getFieldTypeOptions', () => { |
| 44 | + it.each(getFieldTypeOptionsTests)('for input: %s (type), should be output: %s', |
| 45 | + (type, expected) => { |
| 46 | + const result = getFieldTypeOptions(type) |
| 47 | + expect(result).toEqual(expected) |
| 48 | + }) |
| 49 | +}) |
0 commit comments