|
@@ -1,12 +1,32 @@
|
|
|
import {
|
|
|
+ AlterAliasReq,
|
|
|
+ CreateAliasReq,
|
|
|
CreateCollectionReq,
|
|
|
DescribeCollectionReq,
|
|
|
+ DropAliasReq,
|
|
|
DropCollectionReq,
|
|
|
FlushReq,
|
|
|
+ GetCollectionStatisticsReq,
|
|
|
+ GetIndexStateReq,
|
|
|
+ InsertReq,
|
|
|
LoadCollectionReq,
|
|
|
- ShowCollectionsReq
|
|
|
+ ReleaseLoadCollectionReq,
|
|
|
+ SearchReq,
|
|
|
+ ShowCollectionsReq,
|
|
|
} from '@zilliz/milvus2-sdk-node/dist/milvus/types';
|
|
|
-import { CodeEnum, ERR_NO_ADDRESS, ERR_NO_COLLECTION, ERR_NO_PARAM } from '../../__tests__/utils/constants';
|
|
|
+import { QueryDto } from '../../collections/dto';
|
|
|
+import {
|
|
|
+ CodeEnum,
|
|
|
+ ERR_NO_ADDRESS,
|
|
|
+ ERR_NO_ALIAS,
|
|
|
+ ERR_NO_COLLECTION,
|
|
|
+ ERR_NO_PARAM,
|
|
|
+ mockCollectionNames,
|
|
|
+ mockCollections,
|
|
|
+ mockIndexState,
|
|
|
+ mockLoadedCollections,
|
|
|
+} from '../../__tests__/utils/constants';
|
|
|
+import { mockStatusInfo } from '../../__tests__/utils/mock.util';
|
|
|
|
|
|
const mockMilvusClient = jest.fn().mockImplementation((address: string) => {
|
|
|
return {
|
|
@@ -21,65 +41,129 @@ const mockMilvusClient = jest.fn().mockImplementation((address: string) => {
|
|
|
showCollections: (param?: ShowCollectionsReq) => {
|
|
|
if (!param) {
|
|
|
return {
|
|
|
- status: {
|
|
|
- error_code: CodeEnum.error,
|
|
|
- reason: ERR_NO_PARAM,
|
|
|
- },
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ data: mockCollectionNames,
|
|
|
};
|
|
|
}
|
|
|
- const { collection_names } = param;
|
|
|
- return {
|
|
|
- status: { error_code: CodeEnum.success },
|
|
|
- data: collection_names,
|
|
|
- };
|
|
|
+ const { collection_names, type } = param;
|
|
|
+ // loaded type
|
|
|
+ if (type === 1) {
|
|
|
+ return {
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ data: mockLoadedCollections,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return collection_names && collection_names.length > 0
|
|
|
+ ? {
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ data: collection_names,
|
|
|
+ }
|
|
|
+ : { status: mockStatusInfo(CodeEnum.error, ERR_NO_PARAM) };
|
|
|
},
|
|
|
createCollection: (param: CreateCollectionReq) => {
|
|
|
const { collection_name, fields } = param;
|
|
|
if (!collection_name) {
|
|
|
- return {
|
|
|
- error_code: CodeEnum.error,
|
|
|
- reason: ERR_NO_COLLECTION,
|
|
|
- };
|
|
|
+ return mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION);
|
|
|
}
|
|
|
- return { error_code: CodeEnum.success, data: fields };
|
|
|
+ return { ...mockStatusInfo(CodeEnum.success), data: fields };
|
|
|
},
|
|
|
describeCollection: (param: DescribeCollectionReq) => {
|
|
|
const { collection_name } = param;
|
|
|
if (!collection_name) {
|
|
|
return {
|
|
|
- status: {
|
|
|
- error_code: CodeEnum.error,
|
|
|
- reason: ERR_NO_COLLECTION,
|
|
|
- },
|
|
|
+ status: mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION),
|
|
|
};
|
|
|
}
|
|
|
+ const res =
|
|
|
+ mockCollections.find((c) => c.name === collection_name) || {};
|
|
|
return {
|
|
|
- status: { error_code: CodeEnum.success },
|
|
|
- data: collection_name,
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ ...res,
|
|
|
};
|
|
|
},
|
|
|
dropCollection: (param: DropCollectionReq) => {
|
|
|
const { collection_name } = param;
|
|
|
if (!collection_name) {
|
|
|
- return {
|
|
|
- error_code: CodeEnum.error,
|
|
|
- reason: ERR_NO_COLLECTION,
|
|
|
- };
|
|
|
+ return mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION);
|
|
|
}
|
|
|
- return { error_code: CodeEnum.success, data: collection_name };
|
|
|
+ return { ...mockStatusInfo(CodeEnum.success), data: collection_name };
|
|
|
},
|
|
|
loadCollection: (param: LoadCollectionReq) => {
|
|
|
- const {collection_name} = param
|
|
|
+ const { collection_name } = param;
|
|
|
if (!collection_name) {
|
|
|
- return {
|
|
|
- error_code: CodeEnum.error,
|
|
|
- reason: ERR_NO_COLLECTION
|
|
|
- }
|
|
|
+ return mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION);
|
|
|
+ }
|
|
|
+ return { ...mockStatusInfo(CodeEnum.success), data: collection_name };
|
|
|
+ },
|
|
|
+ releaseCollection: (param: ReleaseLoadCollectionReq) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ if (!collection_name) {
|
|
|
+ return mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION);
|
|
|
+ }
|
|
|
+
|
|
|
+ return { ...mockStatusInfo(CodeEnum.success), data: collection_name };
|
|
|
+ },
|
|
|
+ getCollectionStatistics: (param: GetCollectionStatisticsReq) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ if (!collection_name) {
|
|
|
+ return { status: mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION) };
|
|
|
+ }
|
|
|
+ const data = {
|
|
|
+ name: collection_name,
|
|
|
+ stats: [{ key: 'row_count', value: 7 }],
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ ...data,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ createAlias: (param: CreateAliasReq) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ if (!collection_name) {
|
|
|
+ return mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION);
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ ...mockStatusInfo(CodeEnum.success),
|
|
|
+ data: param,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ alterAlias: (param: AlterAliasReq) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ if (!collection_name) {
|
|
|
+ return mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION);
|
|
|
}
|
|
|
- }
|
|
|
+
|
|
|
+ return {
|
|
|
+ ...mockStatusInfo(CodeEnum.success),
|
|
|
+ data: param,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ dropAlias: (param: DropAliasReq) => {
|
|
|
+ const { alias } = param;
|
|
|
+ if (!alias) {
|
|
|
+ return mockStatusInfo(CodeEnum.error, ERR_NO_ALIAS);
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ ...mockStatusInfo(CodeEnum.success),
|
|
|
+ data: alias,
|
|
|
+ };
|
|
|
+ },
|
|
|
},
|
|
|
partitionManager: {},
|
|
|
- indexManager: {},
|
|
|
+ indexManager: {
|
|
|
+ getIndexState: (param: GetIndexStateReq) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ const data =
|
|
|
+ mockIndexState.find((i) => i.collection_name === collection_name) ||
|
|
|
+ {};
|
|
|
+ return {
|
|
|
+ ...mockStatusInfo(CodeEnum.success),
|
|
|
+ ...data,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ },
|
|
|
dataManager: {
|
|
|
flush: (data: FlushReq) => ({
|
|
|
data,
|
|
@@ -93,6 +177,43 @@ const mockMilvusClient = jest.fn().mockImplementation((address: string) => {
|
|
|
type,
|
|
|
};
|
|
|
},
|
|
|
+ insert: (param: InsertReq) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ if (!collection_name) {
|
|
|
+ return { status: mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION) };
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ data: param,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ search: (param: SearchReq) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ if (!collection_name) {
|
|
|
+ return { status: mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION) };
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ data: param,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ query: (
|
|
|
+ param: {
|
|
|
+ collection_name: string;
|
|
|
+ } & QueryDto
|
|
|
+ ) => {
|
|
|
+ const { collection_name } = param;
|
|
|
+ if (!collection_name) {
|
|
|
+ return { status: mockStatusInfo(CodeEnum.error, ERR_NO_COLLECTION) };
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ status: mockStatusInfo(CodeEnum.success),
|
|
|
+ data: param,
|
|
|
+ };
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
});
|