diff --git a/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.spec.ts b/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.spec.ts index 10b51990d6..f56b0bb629 100644 --- a/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.spec.ts +++ b/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.spec.ts @@ -1,5 +1,8 @@ import { renderHook } from 'uiSrc/utils/test-utils' -import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances' +import { + connectedInstanceInfoSelector, + connectedInstanceSelector, +} from 'uiSrc/slices/instances/instances' import useRedisInstanceCompatibility, { UseRedisInstanceCompatibilityReturn, } from './useRedisInstanceCompatibility' @@ -7,6 +10,7 @@ import useRedisInstanceCompatibility, { jest.mock('uiSrc/slices/instances/instances', () => ({ ...jest.requireActual('uiSrc/slices/instances/instances'), connectedInstanceSelector: jest.fn(), + connectedInstanceInfoSelector: jest.fn(), })) jest.mock('uiSrc/slices/interfaces', () => ({ @@ -20,6 +24,15 @@ const renderUseRedisInstanceCompatibility = () => { describe('useRedisInstanceCompatibility', () => { const mockConnectedInstanceSelector = connectedInstanceSelector as jest.Mock + const mockConnectedInstanceInfoSelector = + connectedInstanceInfoSelector as jest.Mock + + beforeEach(() => { + jest.clearAllMocks() + mockConnectedInstanceInfoSelector.mockReturnValue({ + version: '7.2.0', + }) + }) afterEach(() => { jest.clearAllMocks() @@ -29,7 +42,6 @@ describe('useRedisInstanceCompatibility', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: undefined, modules: [{ name: 'search' }], - version: '7.2.0', }) const hookResult = renderUseRedisInstanceCompatibility() @@ -42,7 +54,6 @@ describe('useRedisInstanceCompatibility', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: false, modules: null, - version: '7.2.0', }) const hookResult = renderUseRedisInstanceCompatibility() @@ -58,6 +69,8 @@ describe('useRedisInstanceCompatibility', () => { modules: null, }) + mockConnectedInstanceInfoSelector.mockReturnValue({}) + const hookResult = renderUseRedisInstanceCompatibility() expect(hookResult.loading).toBe(true) @@ -69,7 +82,6 @@ describe('useRedisInstanceCompatibility', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: false, modules: [{ name: 'search' }, { name: 'other' }], - version: '7.2.0', }) const hookResult = renderUseRedisInstanceCompatibility() @@ -82,7 +94,6 @@ describe('useRedisInstanceCompatibility', () => { it('returns hasRedisearch=false when modules is an empty array (defaulted)', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: false, - version: '7.2.0', // omit `modules` to hit the default `modules = []` }) @@ -96,7 +107,6 @@ describe('useRedisInstanceCompatibility', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: false, modules: null, // explicit null - version: '7.2.0', }) const hookResult = renderUseRedisInstanceCompatibility() @@ -108,6 +118,9 @@ describe('useRedisInstanceCompatibility', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: false, modules: [{ name: 'RediSearch' }], + }) + + mockConnectedInstanceInfoSelector.mockReturnValue({ version: '7.1.9', }) @@ -120,6 +133,9 @@ describe('useRedisInstanceCompatibility', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: false, modules: [{ name: 'something else' }], + }) + + mockConnectedInstanceInfoSelector.mockReturnValue({ version: 'not a version', }) @@ -131,6 +147,9 @@ describe('useRedisInstanceCompatibility', () => { mockConnectedInstanceSelector.mockReturnValue({ loading: false, modules: [{ name: 'search' }], + }) + + mockConnectedInstanceInfoSelector.mockReturnValue({ version: undefined, }) diff --git a/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.ts b/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.ts index 1c2a5adcf6..62600bb7a8 100644 --- a/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.ts +++ b/redisinsight/ui/src/pages/vector-search/create-index/hooks/useRedisInstanceCompatibility.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react' import { useSelector } from 'react-redux' -import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances' +import { connectedInstanceInfoSelector, connectedInstanceSelector } from 'uiSrc/slices/instances/instances' import { REDISEARCH_MODULES } from 'uiSrc/slices/interfaces' import { isRedisVersionSupported } from 'uiSrc/utils/comparisons/compareVersions' @@ -15,10 +15,13 @@ const REDISEARCH_MODULE_SET = new Set(REDISEARCH_MODULES) const useRedisInstanceCompatibility = (): UseRedisInstanceCompatibilityReturn => { + const { + version, + } = useSelector(connectedInstanceInfoSelector) + const { loading, modules = [], - version, } = useSelector(connectedInstanceSelector) const isInitialized = loading !== undefined