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 4, 2024
1 parent e48e6d3 commit 18f7a7d
Show file tree
Hide file tree
Showing 90 changed files with 1,867 additions and 1,239 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ class PipelineRunsGlobal {
runType?: 'active' | 'archived' | 'scheduled',
) {
cy.visitWithLogin(
`/pipelines/${projectName}/pipeline/runs/${pipelineId}/${versionId}${
runType ? `?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 @@ -88,10 +88,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 @@ -121,7 +125,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 @@ -160,7 +166,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 @@ -213,7 +221,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 @@ -306,7 +313,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 @@ -352,7 +361,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 @@ -423,7 +434,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 @@ -466,7 +479,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 @@ -502,10 +517,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 @@ -536,7 +555,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 @@ -580,7 +601,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 @@ -614,7 +635,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 @@ -635,7 +656,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 @@ -769,6 +789,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 18f7a7d

Please sign in to comment.