Skip to content

Commit

Permalink
add integration test for node-selector modal
Browse files Browse the repository at this point in the history
  • Loading branch information
Gilad Lekner authored and Gilad Lekner committed May 4, 2020
1 parent 6ae5639 commit 82c7f01
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
vmDetailBootOrderEditButton,
vmDetailDedicatedResourcesEditButton,
vmDetailStatusEditButton,
vmDetailNodeSelectorEditButton,
} from '../../views/virtualMachine.view';
import {
activeTab,
Expand All @@ -27,6 +28,7 @@ import * as editCD from '../../views/dialogs/editCDView';
import * as editBootOrder from '../../views/dialogs/editBootOrderView';
import * as editDedicatedResourcesView from '../../views/dialogs/editDedicatedResourcesView';
import * as editStatusView from '../../views/dialogs/editStatusView';
import * as editNodeSelectorView from '../../views/editNodeSelectorView';
import { NetworkInterfaceDialog } from '../dialogs/networkInterfaceDialog';
import { DiskDialog } from '../dialogs/diskDialog';
import { UIResource } from './uiResource';
Expand Down Expand Up @@ -187,4 +189,9 @@ export class KubevirtUIResource extends UIResource {
await browser.wait(until.presenceOf(editStatusView.unpauseVMDialog));
await isLoaded();
}

async modalEditNodeSelector() {
await click(vmDetailNodeSelectorEditButton(this.namespace, this.name));
await browser.wait(until.presenceOf(editNodeSelectorView.modalTitle));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { browser, ExpectedConditions as until } from 'protractor';
import { testName } from '@console/internal-integration-tests/protractor.conf';
import { createResource, deleteResource, click } from '@console/shared/src/test-utils/utils';
import * as editNodeSelectorView from '../views/editNodeSelectorView';
import * as virtualMachineView from '../views/virtualMachine.view';
import { VM_CREATE_AND_EDIT_TIMEOUT_SECS } from './utils/consts';
import { VirtualMachine } from './models/virtualMachine';
import { getVMManifest } from './utils/mocks';
import { getRandStr } from './utils/utils';

describe('KubeVirt VM detail - edit Node Selector', () => {
const testVM = getVMManifest('Container', testName, `node-selector-vm-${getRandStr(5)}`);
const vm = new VirtualMachine(testVM.metadata);

beforeAll(async () => {
createResource(testVM);
});

afterAll(() => {
deleteResource(testVM);
});

it(
'ID(CNV-4133) Adds a Node Selector, then removes it',
async () => {
await vm.navigateToDetail();
await vm.modalEditNodeSelector();
await click(editNodeSelectorView.addLabelBtn);
await editNodeSelectorView.labelKeyInputByID(0).sendKeys('key');
await editNodeSelectorView.labelValueInputByID(0).sendKeys('value');
await click(editNodeSelectorView.submitBtn);

await browser.wait(
until.textToBePresentInElement(
virtualMachineView.vmDetailNodeSelector(vm.namespace, vm.name),
'key=value',
),
);

await vm.modalEditNodeSelector();
await click(editNodeSelectorView.deleteBtnByID(0));
await click(editNodeSelectorView.submitBtn);
await browser.wait(
until.textToBePresentInElement(
virtualMachineView.vmDetailNodeSelector(vm.namespace, vm.name),
'No selector',
),
);
},
VM_CREATE_AND_EDIT_TIMEOUT_SECS,
);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { $ } from 'protractor';

export const modalTitle = $('[data-test-id="modal-title"]');
export const addLabelBtn = $('#vm-labels-list-add-btn');
export const submitBtn = $('#node-selector-submit');
export const labelKeyInputByID = (id) => $(`#label-${id}-key-input`);
export const labelValueInputByID = (id) => $(`#label-${id}-value-input`);
export const deleteBtnByID = (id) => $(`#label-${id}-delete-btn`);
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,6 @@ export const vmDetailBootOrder = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'boot-order')).$$('li');
export const vmDetailBootOrderEditButton = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'boot-order-edit'));
export const vmDetailDedicatedResources = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'dedicated-resources'));
export const vmDetailDedicatedResourcesEditButton = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'dedicated-resources-edit'));
export const vmDetailStatusEditButton = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'status-edit'));
export const vmDetailLabelValue = async (labelKey) => {
Expand All @@ -70,3 +66,13 @@ export const vmDetailLabelValue = async (labelKey) => {
};

export const vmDetailService = (serviceName) => $(`[data-test-id="${serviceName}"]`);

// Scheduling view
export const vmDetailDedicatedResources = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'dedicated-resources'));
export const vmDetailDedicatedResourcesEditButton = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'dedicated-resources-edit'));
export const vmDetailNodeSelector = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'node-selector'));
export const vmDetailNodeSelectorEditButton = (namespace, vmName) =>
$(vmDetailItemId(namespace, vmName, 'node-selector-edit'));
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export const LabelRow = <T extends IDLabel = IDLabel>({
<>
<GridItem span={6}>
<TextInput
id={`label-${id}-key-input`}
className="kv-label__key"
placeholder="key"
isRequired
Expand All @@ -24,6 +25,7 @@ export const LabelRow = <T extends IDLabel = IDLabel>({
</GridItem>
<GridItem span={5}>
<TextInput
id={`label-${id}-value-input`}
className="kv-label__value"
placeholder="value"
isRequired
Expand All @@ -34,7 +36,7 @@ export const LabelRow = <T extends IDLabel = IDLabel>({
/>
</GridItem>
<GridItem span={1}>
<Button id={`${key}-delete-btn`} onClick={() => onDelete(id)} variant="plain">
<Button id={`label-${id}-delete-btn`} onClick={() => onDelete(id)} variant="plain">
<MinusCircleIcon />
</Button>
</GridItem>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ export const VMTemplateSchedulingList: React.FC<VMTemplateResourceSummaryProps>
canEdit={canUpdateTemplate}
title={NODE_SELECTOR_MODAL_TITLE}
idValue={prefixedID(id, 'node-selector')}
editButtonId={prefixedID(id, 'node-selectors-edit')}
editButtonId={prefixedID(id, 'node-selector-edit')}
onEditClick={() => nodeSelectorModal({ vmLikeEntity: template, blocking: true })}
>
<LabelList kind="Node" labels={nodeSelector} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ export const VMSchedulingList: React.FC<VMSchedulingListProps> = ({
canEdit={canEdit}
title={NODE_SELECTOR_MODAL_TITLE}
idValue={prefixedID(id, 'node-selector')}
editButtonId={prefixedID(id, 'node-selectors-edit')}
editButtonId={prefixedID(id, 'node-selector-edit')}
onEditClick={() => nodeSelectorModal({ vmLikeEntity: vm, blocking: true })}
>
<Selector kind="Node" selector={nodeSelector} />
Expand Down

0 comments on commit 82c7f01

Please sign in to comment.