Skip to content

Commit

Permalink
vmi list integration tests
Browse files Browse the repository at this point in the history
  • Loading branch information
yaacov committed Feb 5, 2020
1 parent 333b7ac commit 726226a
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import { KubevirtDetailView } from './kubevirtDetailView';
import { ImportWizard } from './importWizard';

export class VirtualMachine extends KubevirtDetailView {
constructor(config) {
super({ ...config, kind: 'virtualmachines' });
constructor(config, kind?: string) {
super({ ...config, kind: kind || 'virtualmachines' });
}

async getStatus(): Promise<string> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ export function getVMManifest(
namespace: string,
name?: string,
cloudinit?: string,
kind?: 'VirtualMachine' | 'VirtualMachineInstance',
) {
const vmName = name || `${provisionSource.toLowerCase()}-${namespace.slice(-5)}`;
const metadata = {
Expand Down Expand Up @@ -237,6 +238,49 @@ export function getVMManifest(
throw Error('Provision source not Implemented');
}

const spec = {
domain: {
cpu: {
cores: 1,
sockets: 1,
threads: 1,
},
devices: {
disks,
inputs: [
{
bus: 'virtio',
name: 'tablet',
type: 'tablet',
},
],
interfaces: [
{
bootOrder: 2,
masquerade: {},
name: 'nic0',
model: 'virtio',
},
],
rng: {},
},
resources: {
requests: {
memory: '1073741824',
},
},
},
evictionStrategy: 'LiveMigrate',
terminationGracePeriodSeconds: 0,
networks: [
{
name: 'nic0',
pod: {},
},
],
volumes,
};

const vmResource = {
apiVersion: 'kubevirt.io/v1alpha3',
kind: 'VirtualMachine',
Expand All @@ -252,52 +296,19 @@ export function getVMManifest(
'vm.kubevirt.io/name': metadata.name,
},
},
spec: {
domain: {
cpu: {
cores: 1,
sockets: 1,
threads: 1,
},
devices: {
disks,
inputs: [
{
bus: 'virtio',
name: 'tablet',
type: 'tablet',
},
],
interfaces: [
{
bootOrder: 2,
masquerade: {},
name: 'nic0',
model: 'virtio',
},
],
rng: {},
},
resources: {
requests: {
memory: '1073741824',
},
},
},
evictionStrategy: 'LiveMigrate',
terminationGracePeriodSeconds: 0,
networks: [
{
name: 'nic0',
pod: {},
},
],
volumes,
},
spec,
},
},
};
return vmResource;

const vmiResource = {
apiVersion: 'kubevirt.io/v1alpha3',
kind: 'VirtualMachineInstance',
metadata,
spec,
};

return kind === 'VirtualMachineInstance' ? vmiResource : vmResource;
}

export const datavolumeClonerClusterRole = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { browser } from 'protractor';
import { appHost, testName } from '@console/internal-integration-tests/protractor.conf';
import {
addLeakableResource,
createResource,
removeLeakedResources,
} from '@console/shared/src/test-utils/utils';
import { isLoaded } from '@console/internal-integration-tests/views/crud.view';
import { getVMManifest } from './utils/mocks';
import { VM_STATUS } from './utils/consts';
import { filterBoxCount } from '../views/vms.list.view';
import { VirtualMachine } from './models/virtualMachine';

describe('Test List View Filtering (VMI)', () => {
const leakedResources = new Set<string>();
const testVM = getVMManifest('Container', testName, `${testName}-vm-test`);
const testVMI = getVMManifest(
'Container',
testName,
`${testName}-vmi-test`,
null,
`VirtualMachineInstance`,
);

const vm = new VirtualMachine(testVM.metadata);
const vmi = new VirtualMachine(testVMI.metadata, 'virtualmachineinstances');

beforeAll(async () => {
createResource(testVM);
addLeakableResource(leakedResources, testVM);
await vm.waitForStatus(VM_STATUS.Off);

createResource(testVMI);
addLeakableResource(leakedResources, testVMI);
await vmi.waitForStatus(VM_STATUS.Running);

// Navigate to Virtual Machines page
await browser.get(`${appHost}/k8s/ns/${testName}/virtualmachines`);
await isLoaded();
});

afterAll(async () => {
removeLeakedResources(leakedResources);
});

it('Displays correct count of Off VMs', async () => {
const vmImportingCount = await filterBoxCount(VM_STATUS.Off);
expect(vmImportingCount).toEqual(1);
});

it('Displays correct count of Running VMIs', async () => {
const vmiImportingCount = await filterBoxCount(VM_STATUS.Running);
expect(vmiImportingCount).toEqual(1);
});
});

0 comments on commit 726226a

Please sign in to comment.