Skip to content

Commit

Permalink
Registered model table follow-up and cypress testing
Browse files Browse the repository at this point in the history
  • Loading branch information
dpanshug committed Apr 12, 2024
1 parent 97b4328 commit 979b8a4
Show file tree
Hide file tree
Showing 16 changed files with 570 additions and 25 deletions.
97 changes: 97 additions & 0 deletions frontend/src/__mocks__/mockModelRegistries.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
export const mockModelRegistries = {
apiVersion: 'modelregistry.opendatahub.io/v1alpha1',
items: [
{
apiVersion: 'modelregistry.opendatahub.io/v1alpha1',
kind: 'ModelRegistry',
metadata: {
creationTimestamp: '2024-03-19T08:16:56Z',
finalizers: ['modelregistry.opendatahub.io/finalizer'],
generation: 1,
managedFields: [],
name: 'example',
namespace: 'shared',
resourceVersion: '39722859',
uid: 'f054dd1a-53e2-4b45-bdb1-dc1a3fcf5815',
},
spec: {
grpc: {
port: 1111,
},
rest: {
port: 1111,
serviceRoute: 'disabled',
},
},
},
{
apiVersion: 'modelregistry.opendatahub.io/v1alpha1',
kind: 'ModelRegistry',
metadata: {
annotations: {
'kubectl.kubernetes.io/last-applied-configuration':
'{"apiVersion":"modelregistry.opendatahub.io/v1alpha1","kind":"ModelRegistry","metadata":{"annotations":{},"labels":{"app.kubernetes.io/created-by":"model-registry-operator","app.kubernetes.io/instance":"modelregistry-sample","app.kubernetes.io/managed-by":"kustomize","app.kubernetes.io/name":"modelregistry","app.kubernetes.io/part-of":"model-registry-operator"},"name":"modelregistry-sample","namespace":"shared"},"spec":{"grpc":{"port":9090},"postgres":{"database":"model-registry","host":"model-registry-db","passwordSecret":{"key":"database-password","name":"model-registry-db"},"username":"mlmduser"},"rest":{"port":8080,"serviceRoute":"disabled"}}}\n',
},
creationTimestamp: '2024-03-14T08:01:42Z',
finalizers: ['modelregistry.opendatahub.io/finalizer'],
generation: 1,
labels: {
'app.kubernetes.io/created-by': 'model-registry-operator',
'app.kubernetes.io/instance': 'modelregistry-sample',
'app.kubernetes.io/managed-by': 'kustomize',
'app.kubernetes.io/name': 'modelregistry',
'app.kubernetes.io/part-of': 'model-registry-operator',
},
managedFields: [],
name: 'modelregistry-sample',
namespace: 'shared',
resourceVersion: '41871020',
uid: '6687fd4e-c417-43c1-92f4-7b6908541c83',
},
spec: {
grpc: {
port: 9090,
},
postgres: {
database: 'model-registry',
host: 'model-registry-db',
passwordSecret: {
key: 'database-password',
name: 'model-registry-db',
},
port: 5432,
skipDBCreation: false,
sslMode: 'disable',
username: 'mlmduser',
},
rest: {
port: 8080,
serviceRoute: 'disabled',
},
},
status: {
conditions: [
{
lastTransitionTime: '2024-03-22T09:30:02Z',
message: 'Deployment for custom resource modelregistry-sample was successfully created',
reason: 'CreatedDeployment',
status: 'True',
type: 'Progressing',
},
{
lastTransitionTime: '2024-03-14T08:11:26Z',
message: 'Deployment for custom resource modelregistry-sample is available',
reason: 'DeploymentAvailable',
status: 'True',
type: 'Available',
},
],
},
},
],
kind: 'ModelRegistryList',
metadata: {
continue: '',
resourceVersion: '55673902',
},
};
58 changes: 58 additions & 0 deletions frontend/src/__mocks__/mockModelRegistry.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { ModelRegistryKind } from '~/k8sTypes';

type MockModelRegistryType = {
name?: string;
namespace?: string;
};

export const mockModelRegistry = ({
name = 'modelregistry-sample',
namespace = 'shared',
}: MockModelRegistryType): ModelRegistryKind => ({
apiVersion: 'modelregistry.opendatahub.io/v1alpha1',
kind: 'ModelRegistry',
metadata: {
name,
creationTimestamp: '2024-03-14T08:01:42Z',
namespace,
},
spec: {
grpc: {
port: 9090,
},
postgres: {
database: 'model-registry',
host: 'model-registry-db',
passwordSecret: {
key: 'database-password',
name: 'model-registry-db',
},
port: 5432,
skipDBCreation: false,
sslMode: 'disable',
username: 'mlmduser',
},
rest: {
port: 8080,
serviceRoute: 'disabled',
},
},
status: {
conditions: [
{
lastTransitionTime: '2024-03-22T09:30:02Z',
message: 'Deployment for custom resource modelregistry-sample was successfully created',
reason: 'CreatedDeployment',
status: 'True',
type: 'Progressing',
},
{
lastTransitionTime: '2024-03-14T08:11:26Z',
message: 'Deployment for custom resource modelregistry-sample is available',
reason: 'DeploymentAvailable',
status: 'True',
type: 'Available',
},
],
},
});
20 changes: 20 additions & 0 deletions frontend/src/__mocks__/mockModelVersion.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { ModelVersion, ModelVersionState } from '~/concepts/modelRegistry/types';

type MockModelVersionType = {
author?: string;
registeredModelID?: string;
};

export const mockModelVersion = ({
author = 'Test author',
registeredModelID = '1',
}: MockModelVersionType): ModelVersion => ({
author,
createTimeSinceEpoch: '1712234877179',
customProperties: {},
id: '26',
lastUpdateTimeSinceEpoch: '1712234877179',
name: 'fraud detection model version 1',
state: ModelVersionState.ARCHIVED,
registeredModelID,
});
9 changes: 9 additions & 0 deletions frontend/src/__mocks__/mockModelVersionList.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { ModelVersionList } from '~/concepts/modelRegistry/types';
import { mockModelVersion } from './mockModelVersion';

export const mockModelVersionList = (): ModelVersionList => ({
items: [mockModelVersion({ author: 'Author 1', registeredModelID: '1' })],
nextPageToken: '',
pageSize: 0,
size: 1,
});
23 changes: 18 additions & 5 deletions frontend/src/__mocks__/mockRegisteredModel.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,30 @@
import { RegisteredModel, RegisteredModelState } from '~/concepts/modelRegistry/types';
import {
ModelRegistryBase,
RegisteredModel,
RegisteredModelState,
} from '~/concepts/modelRegistry/types';

type MockRegisteredModelType = { name?: string; state?: RegisteredModelState };
type MockRegisteredModelType = {
id?: string;
name?: string;
state?: RegisteredModelState;
description?: string;
customProperties?: ModelRegistryBase['customProperties'];
};

export const mockRegisteredModel = ({
name = 'test',
state = RegisteredModelState.LIVE,
description = '',
customProperties = {},
id = '1',
}: MockRegisteredModelType): RegisteredModel => ({
createTimeSinceEpoch: '1710404288975',
description: 'test',
description,
externalID: '1234132asdfasdf',
id: '1',
id,
lastUpdateTimeSinceEpoch: '1710404288975',
name,
state,
customProperties: {},
customProperties,
});
108 changes: 107 additions & 1 deletion frontend/src/__mocks__/mockRegisteredModelsList.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,114 @@
/* eslint-disable camelcase */
import { RegisteredModelList } from '~/concepts/modelRegistry/types';
import { mockRegisteredModel } from './mockRegisteredModel';

export const mockRegisteredModelList = (): RegisteredModelList => ({
items: [mockRegisteredModel({ name: 'test-1' }), mockRegisteredModel({ name: 'test-2' })],
items: [
mockRegisteredModel({
name: 'Fraud detection model',
description:
'A machine learning model trained to detect fraudulent transactions in financial data',
customProperties: {
Financial: {
metadataType: 'MetadataStringValue',
string_value: 'non-empty',
},
'Financial data': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Fraud detection': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Test label': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Machine learning': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Next data to be overflow': {
metadataType: 'MetadataStringValue',
string_value: '',
},
},
}),
mockRegisteredModel({
name: 'Credit Scoring',
customProperties: {
'Credit Score Predictor': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Creditworthiness scoring system': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Default Risk Analyzer': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Portfolio Management': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Risk Assessment': {
metadataType: 'MetadataStringValue',
string_value: '',
},
},
}),
mockRegisteredModel({
name: 'Label modal',
description:
'A machine learning model trained to detect fraudulent transactions in financial data',
customProperties: {
'Testing label': {
metadataType: 'MetadataStringValue',
string_value: '',
},
Financial: {
metadataType: 'MetadataStringValue',
string_value: 'non-empty',
},
'Financial data': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Fraud detection': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Long label data to be truncated abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc':
{
metadataType: 'MetadataStringValue',
string_value: '',
},
'Machine learning': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Next data to be overflow': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Label x': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Label y': {
metadataType: 'MetadataStringValue',
string_value: '',
},
'Label z': {
metadataType: 'MetadataStringValue',
string_value: '',
},
},
}),
],
nextPageToken: '',
pageSize: 0,
size: 4,
Expand Down
Loading

0 comments on commit 979b8a4

Please sign in to comment.