blob: b97e6b0afddb701a6802940665dae9883ba34438 [file]
import React from 'react';
import { shallow } from 'enzyme';
import CronJobPreview from '../CronJobPreview';
import JobStatus from '../JobStatus';
import TaskList from '../TaskList';
import { Tab } from '../Tabs';
import {
ScheduledTaskBuilder,
TaskConfigBuilder,
createConfigGroup
} from 'test-utils/TaskBuilders';
describe('JobStatus', () => {
it('Should render a task list only with active tasks', () => {
const tasks = [
ScheduledTaskBuilder.status(ScheduleStatus.PENDING).build(),
ScheduledTaskBuilder.status(ScheduleStatus.FINISHED).build()
];
const el = shallow(JobStatus({queryParams: {}, tasks}));
expect(el.contains(<TaskList tasks={[tasks[0]]} />)).toBe(true);
});
it('Should render the correct number of task configs', () => {
const configGroups = [
createConfigGroup(TaskConfigBuilder, [0, 0]),
createConfigGroup(TaskConfigBuilder, [1, 10])
];
const el = shallow(JobStatus({configGroups, queryParams: {}, tasks: []}));
expect(el.find(Tab).someWhere((t) => t.props().name === 'Configuration (2)')).toBe(true);
});
it('Should show one configuration when there is a cron job', () => {
const cronJob = {};
const el = shallow(JobStatus({cronJob: cronJob, queryParams: {}, tasks: []}));
expect(el.contains(<CronJobPreview cronJob={cronJob} />)).toBe(true);
expect(el.find(Tab).someWhere((t) => t.props().name === 'Configuration (1)')).toBe(true);
});
});