Skip to content

Commit

Permalink
Updated e2e test for Metrics tab changes
Browse files Browse the repository at this point in the history
  • Loading branch information
lokanandaprabhu committed Apr 8, 2024
1 parent 111a9f6 commit f20317f
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { RouteTemplate } from '../utils/triggers';

export type PipelineDetailsTabProps = {
obj: PipelineKind;
customData: {
customData?: {
templateNames: RouteTemplate[];
queryPrefix: string;
metricsLevel: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
} from '../../../../test-data/pipeline-data';
import { PipelineMetricsLevel } from '../../const';
import * as hookUtils from '../../hooks';
import { usePipelineMetricsLevel } from '../../utils/pipeline-operator';
import { MetricsQueryPrefix } from '../pipeline-metrics-utils';
import PipelineMetrics from '../PipelineMetrics';
import PipelineMetricsEmptyState from '../PipelineMetricsEmptyState';
Expand All @@ -24,6 +25,12 @@ jest.mock('@console/internal/components/utils/k8s-get-hook', () => ({
useK8sGet: jest.fn(),
}));

jest.mock('../../utils/pipeline-operator', () => ({
usePipelineMetricsLevel: jest.fn(),
}));

const mockUsePipelineMetricsLevel = usePipelineMetricsLevel as jest.Mock;

const latestPipelineRunSpy = jest.spyOn(hookUtils, 'useLatestPipelineRun');

const mockData = pipelineTestData[PipelineExampleNames.WORKSPACE_PIPELINE];
Expand All @@ -34,15 +41,14 @@ type PipelineMetricsProps = React.ComponentProps<typeof PipelineMetrics>;

describe('Pipeline Metrics', () => {
let PipelineMetricsProps: PipelineMetricsProps;
mockUsePipelineMetricsLevel.mockReturnValue({
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.PIPELINERUN_TASKRUN_LEVEL,
hasUpdatePermission: true,
});
beforeEach(() => {
PipelineMetricsProps = {
obj: pipeline,
customData: {
templateNames: [],
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.PIPELINERUN_TASKRUN_LEVEL,
hasUpdatePermission: true,
},
};
});

Expand All @@ -69,12 +75,12 @@ describe('Pipeline Metrics', () => {

it('Should render only success ratio and number of pipeline runs charts if the metrics level is set to pipeline /task (default) level', () => {
latestPipelineRunSpy.mockReturnValue(pipelineRun);
mockUsePipelineMetricsLevel.mockReturnValue({
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL,
hasUpdatePermission: true,
});
const pipelineMetricsWrapper = shallow(<PipelineMetrics {...PipelineMetricsProps} />);
pipelineMetricsWrapper
.setProps({
customData: { metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL },
})
.update();
expect(pipelineMetricsWrapper.find(PipelineMetricsEmptyState).exists()).toBe(false);
expect(pipelineMetricsWrapper.find(Card)).toHaveLength(2);

Expand All @@ -89,75 +95,61 @@ describe('Pipeline Metrics', () => {

it('Should contain quickstart link if the metrics level is set to pipeline /task (default) level', () => {
latestPipelineRunSpy.mockReturnValue(pipelineRun);
mockUsePipelineMetricsLevel.mockReturnValue({
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL,
hasUpdatePermission: true,
});
const pipelineMetricsWrapper = shallow(<PipelineMetrics {...PipelineMetricsProps} />);
pipelineMetricsWrapper
.setProps({
customData: {
metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL,
hasUpdatePermission: true,
},
})
.update();

expect(pipelineMetricsWrapper.find(PipelineMetricsQuickstart).exists()).toBe(true);
});

it('Should contain quickstart link if the user has update permission', () => {
latestPipelineRunSpy.mockReturnValue(pipelineRun);
mockUsePipelineMetricsLevel.mockReturnValue({
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL,
hasUpdatePermission: true,
});
const pipelineMetricsWrapper = shallow(<PipelineMetrics {...PipelineMetricsProps} />);
pipelineMetricsWrapper
.setProps({
customData: {
metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL,
hasUpdatePermission: true,
},
})
.update();

expect(pipelineMetricsWrapper.find(PipelineMetricsQuickstart).exists()).toBe(true);
});

it('Should not contain quickstart link if the user does not have update permission', () => {
latestPipelineRunSpy.mockReturnValue(pipelineRun);
mockUsePipelineMetricsLevel.mockReturnValue({
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL,
hasUpdatePermission: false,
});
const pipelineMetricsWrapper = shallow(<PipelineMetrics {...PipelineMetricsProps} />);
pipelineMetricsWrapper
.setProps({
customData: {
metricsLevel: PipelineMetricsLevel.PIPELINE_TASK_LEVEL,
hasUpdatePermission: false,
},
})
.update();

expect(pipelineMetricsWrapper.find(PipelineMetricsQuickstart).exists()).toBe(false);
});

it('Should not contain quickstart link if the metrics level is set to pipelinerun /taskrun level', () => {
latestPipelineRunSpy.mockReturnValue(pipelineRun);
mockUsePipelineMetricsLevel.mockReturnValue({
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.PIPELINERUN_TASKRUN_LEVEL,
hasUpdatePermission: true,
});
const pipelineMetricsWrapper = shallow(<PipelineMetrics {...PipelineMetricsProps} />);
pipelineMetricsWrapper
.setProps({
customData: {
metricsLevel: PipelineMetricsLevel.PIPELINERUN_TASKRUN_LEVEL,
hasUpdatePermission: true,
},
})
.update();

expect(pipelineMetricsWrapper.find(PipelineMetricsQuickstart).exists()).toBe(false);
});

it('Should render Pipeline Metrics Unsupported empty page', () => {
latestPipelineRunSpy.mockReturnValue(pipelineRun);
mockUsePipelineMetricsLevel.mockReturnValue({
queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER,
metricsLevel: PipelineMetricsLevel.UNSUPPORTED_LEVEL,
hasUpdatePermission: true,
});
const pipelineMetricsWrapper = shallow(<PipelineMetrics {...PipelineMetricsProps} />);
pipelineMetricsWrapper
.setProps({
customData: {
metricsLevel: PipelineMetricsLevel.UNSUPPORTED_LEVEL,
hasUpdatePermission: true,
},
})
.update();

expect(pipelineMetricsWrapper.find(PipelineMetricsUnsupported).exists()).toBe(true);
});
});

0 comments on commit f20317f

Please sign in to comment.