blob: c9096c5173e1ff12f3da22ebe05ff725abfd6325 [file]
import React from 'react';
import { shallow } from 'enzyme';
import Diff from '../Diff';
import UpdateDiff from '../UpdateDiff';
import { TaskConfigBuilder } from 'test-utils/TaskBuilders';
import {
UpdateBuilder,
UpdateDetailsBuilder,
UpdateInstructionsBuilder,
createInstanceTaskGroup
} from 'test-utils/UpdateBuilders';
describe('UpdateDiff', () => {
it('Should default to the first group of initialState', () => {
const initialState = [
createInstanceTaskGroup(TaskConfigBuilder, [0, 0]),
createInstanceTaskGroup(TaskConfigBuilder, [1, 9]),
createInstanceTaskGroup(TaskConfigBuilder, [10, 20])
];
const update = UpdateDetailsBuilder.update(
UpdateBuilder.instructions(
UpdateInstructionsBuilder.initialState(initialState).build()).build()).build();
const el = shallow(<UpdateDiff update={update} />);
expect(el.contains(<Diff
left={initialState[0].task}
right={update.update.instructions.desiredState.task} />)).toBe(true);
});
it('Should not show any dropdown with only one config in initialState', () => {
const initialState = [createInstanceTaskGroup(TaskConfigBuilder, [0, 0])];
const update = UpdateDetailsBuilder.update(
UpdateBuilder.instructions(
UpdateInstructionsBuilder.initialState(initialState).build()).build()).build();
const el = shallow(<UpdateDiff update={update} />);
expect(el.find('select').length).toBe(0);
});
it('Should show a dropdown when there are more than two configs in initialState', () => {
const initialState = [
createInstanceTaskGroup(TaskConfigBuilder, [0, 0]),
createInstanceTaskGroup(TaskConfigBuilder, [1, 9])
];
const update = UpdateDetailsBuilder.update(
UpdateBuilder.instructions(
UpdateInstructionsBuilder.initialState(initialState).build()).build()).build();
const el = shallow(<UpdateDiff update={update} />);
expect(el.find('select').length).toBe(1);
});
it('Should update the diff view when you select new groups', () => {
const initialState = [
createInstanceTaskGroup(TaskConfigBuilder, [0, 0]),
createInstanceTaskGroup(TaskConfigBuilder, [1, 9]),
createInstanceTaskGroup(TaskConfigBuilder, [10, 20])
];
const update = UpdateDetailsBuilder.update(
UpdateBuilder.instructions(
UpdateInstructionsBuilder.initialState(initialState).build()).build()).build();
const el = shallow(<UpdateDiff update={update} />);
expect(el.contains(<Diff
left={initialState[0].task}
right={update.update.instructions.desiredState.task} />)).toBe(true);
el.find('select').simulate('change', {target: {value: '2'}});
expect(el.contains(<Diff
left={initialState[2].task}
right={update.update.instructions.desiredState.task} />)).toBe(true);
});
});