Skip to content

Commit

Permalink
refactor pipelines and experiments routes
Browse files Browse the repository at this point in the history
  • Loading branch information
DaoDaoNoCode committed Jul 3, 2024
1 parent d5581e4 commit 7e456e2
Show file tree
Hide file tree
Showing 90 changed files with 1,867 additions and 1,240 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { PipelineRunSearchParam } from '~/concepts/pipelines/content/types';
import { DeleteModal } from '~/__tests__/cypress/cypress/pages/components/DeleteModal';

class PipelineRunsGlobal {
Expand All @@ -9,8 +8,8 @@ class PipelineRunsGlobal {
runType?: 'active' | 'archived' | 'scheduled',
) {
cy.visitWithLogin(
`/pipelines/${projectName}/pipeline/runs/${pipelineId}/${versionId}${
runType ? `?${PipelineRunSearchParam.RunType}=${runType}` : ''
`/pipelines/${projectName}/${pipelineId}/${versionId}${
runType === 'scheduled' ? '/schedules' : `/runs${runType ? `/${runType}` : ''}`
}`,
);
this.wait();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class TaskDrawer extends Contextual<HTMLElement> {

class PipelinesTopology {
visit(namespace: string, pipelineId: string, pipelineVersionId: string) {
cy.visitWithLogin(`/pipelines/${namespace}/pipeline/view/${pipelineId}/${pipelineVersionId}`);
cy.visitWithLogin(`/pipelines/${namespace}/${pipelineId}/${pipelineVersionId}/view`);
this.wait();
}

Expand Down Expand Up @@ -108,7 +108,7 @@ class DetailsItem extends Contextual<HTMLElement> {

class PipelineDetails extends PipelinesTopology {
visit(namespace: string, pipelineId: string, pipelineVersionId: string) {
cy.visitWithLogin(`/pipelines/${namespace}/pipeline/view/${pipelineId}/${pipelineVersionId}`);
cy.visitWithLogin(`/pipelines/${namespace}/${pipelineId}/${pipelineVersionId}/view`);
this.wait();
}

Expand Down Expand Up @@ -180,8 +180,10 @@ class PipelineDetails extends PipelinesTopology {
}

class PipelineRunJobDetails extends RunDetails {
visit(namespace: string, pipelineId: string) {
cy.visitWithLogin(`/pipelines/${namespace}/pipelineRunJob/view/${pipelineId}`);
visit(namespace: string, pipelineId: string, pipelineVersionId: string, jobId?: string) {
cy.visitWithLogin(
`/pipelines/${namespace}/${pipelineId}/${pipelineVersionId}/schedules/${jobId}`,
);
this.wait();
}

Expand All @@ -195,8 +197,8 @@ class PipelineRunJobDetails extends RunDetails {
}

class PipelineRunDetails extends RunDetails {
visit(namespace: string, pipelineId: string) {
cy.visitWithLogin(`/pipelines/${namespace}/pipelineRun/view/${pipelineId}`);
visit(namespace: string, pipelineId: string, pipelineVersionId: string, runId?: string) {
cy.visitWithLogin(`/pipelines/${namespace}/${pipelineId}/${pipelineVersionId}/runs/${runId}`);
this.wait();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ describe('Experiments', () => {

it('navigates to the runs page when clicking an experiment name', () => {
verifyRelativeURL(`/experiments/${projectName}/${mockExperiment.experiment_id}/runs`);
cy.findByLabelText('Breadcrumb').findByText('Experiments');
cy.findByLabelText('Breadcrumb').findByText(`Experiments - ${projectName}`);
});

it('has "Experiment" value pre-filled when on the "Create run" page', () => {
Expand Down Expand Up @@ -311,7 +311,7 @@ describe('Runs page for archived experiment', () => {

it('navigates to the runs page when clicking an experiment name', () => {
verifyRelativeURL(`/experiments/${projectName}/${mockExperiment.experiment_id}/runs`);
cy.findByLabelText('Breadcrumb').findByText('Experiments');
cy.findByLabelText('Breadcrumb').findByText(`Experiments - ${projectName}`);
});

it('has empty state on active runs tab', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,14 @@ describe('Pipeline create runs', () => {

// Navigate to the 'Create run' page
pipelineRunsGlobal.findCreateRunButton().click();
verifyRelativeURL(`/pipelines/${projectName}/pipelineRun/create`);
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/create`,
);
createRunPage.find();
createRunPage.findRunTypeSwitchLink().click();
cy.url().should('include', '?runType=scheduled');
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/schedules/create`,
);
});

it('creates an active run', () => {
Expand Down Expand Up @@ -124,7 +128,9 @@ describe('Pipeline create runs', () => {

// Navigate to the 'Create run' page
pipelineRunsGlobal.findCreateRunButton().click();
verifyRelativeURL(`/pipelines/${projectName}/pipelineRun/create`);
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/create`,
);
createRunPage.find();

// Fill out the form without a schedule and submit
Expand Down Expand Up @@ -163,7 +169,9 @@ describe('Pipeline create runs', () => {
});

// Should be redirected to the run details page
verifyRelativeURL(`/pipelines/${projectName}/pipelineRun/view/${createRunParams.run_id}`);
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/${createRunParams.run_id}`,
);
});

it('duplicates an active run', () => {
Expand Down Expand Up @@ -216,7 +224,6 @@ describe('Pipeline create runs', () => {
cy.wait('@duplicateRun').then((interception) => {
expect(interception.request.body).to.eql({
display_name: 'Duplicate of Test run',
description: '',
pipeline_version_reference: {
pipeline_id: 'test-pipeline',
pipeline_version_id: 'test-pipeline-version',
Expand Down Expand Up @@ -309,7 +316,9 @@ describe('Pipeline create runs', () => {

// Navigate to the 'Create run' page
pipelineRunsGlobal.findCreateRunButton().click();
cy.url().should('include', '/pipelineRun/create');
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/create`,
);
createRunPage.find();

// Fill required fields
Expand Down Expand Up @@ -355,7 +364,9 @@ describe('Pipeline create runs', () => {
});

// Should be redirected to the run details page
cy.url().should('include', '/pipelineRun/view/new-run-id');
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/${createRunParams.run_id}`,
);
});

it('create run with all parameter types', () => {
Expand Down Expand Up @@ -426,7 +437,9 @@ describe('Pipeline create runs', () => {

// Navigate to the 'Create run' page
pipelineRunsGlobal.findCreateRunButton().click();
cy.url().should('include', '/pipelineRun/create');
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/create`,
);
createRunPage.find();

// Fill out the form with all input parameters
Expand Down Expand Up @@ -469,7 +482,9 @@ describe('Pipeline create runs', () => {
});
});
// Should be redirected to the run details page
cy.url().should('include', '/pipelineRun/view/new-run-id');
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/${createRunParams.run_id}`,
);
});
});

Expand Down Expand Up @@ -505,10 +520,14 @@ describe('Pipeline create runs', () => {

// Navigate to the 'Create run' page
pipelineRunsGlobal.findScheduleRunButton().click();
verifyRelativeURL(`/pipelines/${projectName}/pipelineRun/create?runType=scheduled`);
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/schedules/create`,
);
createSchedulePage.find();
createSchedulePage.findRunTypeSwitchLink().click();
cy.url().should('include', '?runType=active');
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/runs/create`,
);
});

it('creates a schedule', () => {
Expand Down Expand Up @@ -539,7 +558,9 @@ describe('Pipeline create runs', () => {

// Navigate to the 'Create run' page
pipelineRunsGlobal.findScheduleRunButton().click();
verifyRelativeURL(`/pipelines/${projectName}/pipelineRun/create?runType=scheduled`);
verifyRelativeURL(
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/schedules/create`,
);
createSchedulePage.find();

// Fill out the form with a schedule and submit
Expand Down Expand Up @@ -583,7 +604,7 @@ describe('Pipeline create runs', () => {

// Should be redirected to the schedule details page
verifyRelativeURL(
`/pipelines/${projectName}/pipelineRunJob/view/${createRecurringRunParams.recurring_run_id}`,
`/pipelines/${projectName}/${mockPipelineVersion.pipeline_id}/${mockPipelineVersion.pipeline_version_id}/schedules/${createRecurringRunParams.recurring_run_id}`,
);
});

Expand Down Expand Up @@ -617,7 +638,7 @@ describe('Pipeline create runs', () => {
.findKebabAction('Duplicate')
.click();
verifyRelativeURL(
`/experiments/${projectName}/experiment-1/schedules/clone/${mockRecurringRun.recurring_run_id}?runType=scheduled`,
`/experiments/${projectName}/experiment-1/schedules/clone/${mockRecurringRun.recurring_run_id}`,
);

// Verify pre-populated values & submit
Expand All @@ -638,7 +659,6 @@ describe('Pipeline create runs', () => {
cy.wait('@duplicateSchedule').then((interception) => {
expect(interception.request.body).to.eql({
display_name: 'Duplicate of Test job',
description: '',
pipeline_version_reference: {
pipeline_id: 'test-pipeline',
pipeline_version_id: 'test-pipeline-version',
Expand Down Expand Up @@ -772,6 +792,19 @@ const initIntercepts = () => {
},
{ runs: initialMockRuns, total_size: initialMockRuns.length },
);
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/:serviceName/apis/v2beta1/pipelines/:pipelineId',
{
path: {
namespace: projectName,
serviceName: 'dspa',
pipelineId: mockPipelineVersion.pipeline_id,
},
},
buildMockPipelineV2({
pipeline_id: mockPipelineVersion.pipeline_id,
}),
);
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/:serviceName/apis/v2beta1/pipelines/:pipelineId/versions/:pipelineVersionId',
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import {
SecretModel,
} from '~/__tests__/cypress/cypress/utils/models';
import { mockSuccessGoogleRpcStatus } from '~/__mocks__/mockGoogleRpcStatusKF';
import { buildMockPipelineVersionV2 } from '~/__mocks__';
import { buildMockPipelineV2, buildMockPipelineVersionV2 } from '~/__mocks__';

const initIntercepts = () => {
cy.interceptOdh(
Expand Down Expand Up @@ -72,6 +72,19 @@ const initIntercepts = () => {
);
cy.interceptK8sList(NotebookModel, mockK8sResourceList([mockNotebookK8sResource({})]));
cy.interceptK8sList(ProjectModel, mockK8sResourceList([mockProjectK8sResource({})]));
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/:serviceName/apis/v2beta1/pipelines/:pipelineId',
{
path: {
namespace: 'test-project',
serviceName: 'dspa',
pipelineId: 'pipeline_id',
},
},
buildMockPipelineV2({
pipeline_id: 'pipeline-id',
}),
);
cy.interceptOdh(
'GET /api/service/pipelines/:namespace/:serviceName/apis/v2beta1/pipelines/:pipelineId/versions/:pipelineVersionId',
{
Expand Down
Loading

0 comments on commit 7e456e2

Please sign in to comment.