Skip to content

Commit

Permalink
added core interceptor for pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
pnaik1 committed May 15, 2024
1 parent 95611b7 commit 9219735
Show file tree
Hide file tree
Showing 22 changed files with 603 additions and 497 deletions.
19 changes: 19 additions & 0 deletions frontend/src/__mocks__/mockGoogleRpcStatusKF.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { GoogleRpcStatusKF } from '~/concepts/pipelines/kfTypes';

type MockGoogleRpcStatusKF = { message?: string };

export const mockSuccessGoogleRpcStatus = ({
message = '',
}: MockGoogleRpcStatusKF): GoogleRpcStatusKF => ({
code: 0,
message,
details: [],
});

export const mockCancelledGoogleRpcStatus = ({
message = '',
}: MockGoogleRpcStatusKF): GoogleRpcStatusKF => ({
code: 1,
message,
details: [],
});
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,22 @@ const initIntercepts = ({
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/registered_models`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/registered_models`,
{
path: { serviceName: 'modelregistry-sample', apiVersion: MODEL_REGISTRY_API_VERSION },
},
mockRegisteredModelList({ size: registeredModelsSize }),
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/registered_models/1/versions`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/registered_models/:registeredModelId/versions`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
registeredModelId: 1,
},
},
mockModelVersionList({ items: modelVersions }),
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,27 @@ const initIntercepts = () => {
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/registered_models/1`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/registered_models/:registeredModelId`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
registeredModelId: 1,
},
},

mockRegisteredModel({}),
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/registered_models/1/versions`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/registered_models/:registeredModelId/versions`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
registeredModelId: 1,
},
},
mockModelVersionList({
items: [
mockModelVersion({ name: 'Version 1', author: 'Author 1', registeredModelId: '1' }),
Expand All @@ -58,8 +73,14 @@ const initIntercepts = () => {
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/model_versions/:id`,
{ path: { id: '1' } },
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/model_versions/:modelVersionId`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
modelVersionId: 1,
},
},
mockModelVersion({
id: '1',
name: 'Version 1',
Expand Down Expand Up @@ -110,13 +131,26 @@ const initIntercepts = () => {
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/model_versions/:id`,
{ path: { id: '2' } },
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/model_versions/:modelVersionId`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
modelVersionId: 2,
},
},
mockModelVersion({ id: '2', name: 'Version 2' }),
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/model_versions/1/artifacts`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/model_versions/:modelVersionId/artifacts`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
modelVersionId: 1,
},
},
mockModelArtifactList(),
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,17 +83,32 @@ const initIntercepts = ({
cy.interceptK8s(ModelRegistryModel, mockModelRegistry({}));

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/registered_models`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/registered_models`,
{ path: { serviceName: 'modelregistry-sample', apiVersion: MODEL_REGISTRY_API_VERSION } },
mockRegisteredModelList({ size: registeredModelsSize }),
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/registered_models/1/versions`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/registered_models/:registeredModelId/versions`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
registeredModelId: 1,
},
},
mockModelVersionList({ items: modelVersions }),
);

cy.interceptOdh(
`GET /api/service/modelregistry/modelregistry-sample/api/model_registry/${MODEL_REGISTRY_API_VERSION}/registered_models/1`,
`GET /api/service/modelregistry/:serviceName/api/model_registry/:apiVersion/registered_models/:registeredModelId`,
{
path: {
serviceName: 'modelregistry-sample',
apiVersion: MODEL_REGISTRY_API_VERSION,
registeredModelId: 1,
},
},
mockRegisteredModel({}),
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import {
buildMockPipelineV2,
buildMockPipelines,
buildMockPipelineVersionV2,
buildMockPipelineVersionsV2,
mockProjectK8sResource,
mockRouteK8sResource,
buildMockRunKF,
Expand All @@ -23,6 +22,7 @@ import {
compareRunsListTable,
compareRunParamsTable,
} from '~/__tests__/cypress/cypress/pages/pipelines/compareRuns';
import { mockCancelledGoogleRpcStatus } from '~/__mocks__/mockGoogleRpcStatusKF';

const projectName = 'test-project-name';
const initialMockPipeline = buildMockPipelineV2({ display_name: 'Test pipeline' });
Expand Down Expand Up @@ -90,21 +90,24 @@ describe('Compare runs', () => {
});

it('valid number of runs but it is invalid', () => {
cy.intercept(
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/runs/:runId',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/runs/invalid_run_id`,
path: { namespace: projectName, runId: 'invalid_run_id' },
},
{ statusCode: 404 },
).as('invalidRun');

compareRunsGlobal.visit(projectName, mockExperiment.experiment_id, ['invalid_run_id']);
cy.wait('@invalidRun');
compareRunsGlobal.findInvalidRunsError().should('exist');
});

it('invalid runs are removed from url', () => {
cy.intercept(
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/runs/:runId',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/runs/invalid_run_id`,
path: { namespace: projectName, runId: 'invalid_run_id' },
},
{ statusCode: 404 },
).as('invalidRun');
Expand All @@ -121,18 +124,12 @@ describe('Compare runs', () => {
});

it('other failed requests dont change the url ', () => {
const errorRun = {
error: {
code: 1, // cancelled
message: 'Run cancelled by caller',
details: [],
},
};
cy.intercept(
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/runs/:runId',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/runs/invalid_run_id`,
path: { namespace: projectName, runId: 'invalid_run_id' },
},
errorRun,
mockCancelledGoogleRpcStatus({ message: 'Run cancelled by caller' }),
).as('invalidRun');
compareRunsGlobal.visit(projectName, mockExperiment.experiment_id, [
'invalid_run_id',
Expand Down Expand Up @@ -224,36 +221,31 @@ const initIntercepts = () => {
mockProjectK8sResource({ k8sName: projectName, displayName: projectName }),
]),
);

cy.intercept(
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/pipelines',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/pipelines`,
path: { namespace: projectName },
},
buildMockPipelines([initialMockPipeline]),
);

cy.intercept(
{
method: 'POST',
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/pipeline_versions`,
},
buildMockPipelineVersionsV2([initialMockPipelineVersion]),
);
cy.intercept(
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/experiments/${mockExperiment.experiment_id}`,
},
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/experiments/:experimentId',
{ path: { namespace: projectName, experimentId: mockExperiment.experiment_id } },
mockExperiment,
);
cy.intercept(

cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/runs/:runId',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/runs/${mockRun.run_id}`,
path: { namespace: projectName, runId: mockRun.run_id },
},
mockRun,
).as('validRun');
cy.intercept(

cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/runs/:runId',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/runs/${mockRun2.run_id}`,
path: { namespace: projectName, runId: mockRun2.run_id },
},
mockRun2,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import {
mockK8sResourceList,
buildMockPipelineV2,
buildMockPipelines,
buildMockPipelineVersionV2,
buildMockPipelineVersionsV2,
mockProjectK8sResource,
mockRouteK8sResource,
} from '~/__mocks__';
Expand All @@ -28,9 +26,6 @@ import {

const projectName = 'test-project-name';
const initialMockPipeline = buildMockPipelineV2({ display_name: 'Test pipeline' });
const initialMockPipelineVersion = buildMockPipelineVersionV2({
pipeline_id: initialMockPipeline.pipeline_id,
});
const mockExperiments = [
buildMockExperimentKF({
display_name: 'Test experiment 1',
Expand Down Expand Up @@ -270,40 +265,33 @@ const initIntercepts = () => {
mockProjectK8sResource({ k8sName: projectName, displayName: projectName }),
]),
);

cy.intercept(
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/pipelines',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/pipelines`,
path: { namespace: projectName },
},
buildMockPipelines([initialMockPipeline]),
);

cy.intercept(
{
method: 'POST',
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/pipeline_versions`,
},
buildMockPipelineVersionsV2([initialMockPipelineVersion]),
);
cy.intercept(
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/runs',
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/runs`,
path: { namespace: projectName },
},
{ runs: [] },
);
cy.intercept(
{
method: 'GET',
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/recurringruns`,
},

cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/recurringruns',
{
recurringRuns: [],
path: { namespace: projectName },
},
{ recurringRuns: [] },
);
cy.intercept(
{
pathname: `/api/service/pipelines/${projectName}/dspa/apis/v2beta1/experiments/${mockExperiments[0].experiment_id}`,
},

cy.interceptOdh(
'GET /api/service/pipelines/:namespace/dspa/apis/v2beta1/experiments/:experimentId',
{ path: { namespace: projectName, experimentId: mockExperiments[0].experiment_id } },
mockExperiments[0],
);
};
Loading

0 comments on commit 9219735

Please sign in to comment.