Project

General

Profile

Download (7.09 KB) Statistics
| Branch: | Tag: | Revision:
import {
getAttributesToPost,
registerPluginAttributes,
checkPXELoaderCompatibility,
} from './foreman_hosts';

jest.unmock('./foreman_hosts');

describe('getAttributesToPost', () => {
beforeEach(() => {
window.tfm = { hosts: { pluginEditAttributes: {} } };
});

it('attribute hash holds the default attributes', () => {
const ret = getAttributesToPost('os');

expect(ret).toEqual(['operatingsystem_id', 'organization_id', 'location_id']);
});

it('adds the plugin_edit_attributes', () => {
registerPluginAttributes('os', ['foo']);
expect(getAttributesToPost('os')).toEqual([
'operatingsystem_id',
'organization_id',
'location_id',
'foo',
]);
});
});

describe('checkPXELoaderCompatibility', () => {
function assertCompatibility(osTitle, pxeLoader) {
it(`${osTitle} is compatible with ${pxeLoader}`, () => {
const result = checkPXELoaderCompatibility(osTitle, pxeLoader);

expect(result).toEqual(true);
});
}

function refuteCompatibility(osTitle, pxeLoader) {
it(`${osTitle} is incompatible with ${pxeLoader}`, () => {
const result = checkPXELoaderCompatibility(osTitle, pxeLoader);

expect(result).toEqual(false);
});
}

function assertUndefinedCompatibility(osTitle, pxeLoader) {
it(`${osTitle} has undefined compatibility with ${pxeLoader}`, () => {
const result = checkPXELoaderCompatibility(osTitle, pxeLoader);

expect(result).toEqual(null);
});
}

// RHEL 6.x and Grub1
// RHEL 7.x and Grub2
describe('pxeLoaderCompatibilityChecks', () => {
describe('RHEL 5', () => {
assertUndefinedCompatibility('RHEL 5', 'PXELinux BIOS');
assertUndefinedCompatibility('RHEL 5', 'PXELinux UEFI');
assertUndefinedCompatibility('RHEL 5', 'Grub UEFI');
assertUndefinedCompatibility('RHEL 5', 'Grub2 UEFI');
assertUndefinedCompatibility('RHEL 5', 'Grub2 UEFI SecureBoot');
});

describe('RHEL 6', () => {
assertCompatibility('RHEL 6.0', 'PXELinux BIOS');
refuteCompatibility('RHEL 6.0', 'PXELinux UEFI');
assertCompatibility('RHEL 6.0', 'Grub UEFI');
refuteCompatibility('RHEL 6.0', 'Grub2 UEFI');
refuteCompatibility('RHEL 6.0', 'Grub2 UEFI SecureBoot');

assertCompatibility(
'Red Hat Enterprise Linux Server release 6.0 (Santiago)',
'PXELinux BIOS',
);
refuteCompatibility(
'Red Hat Enterprise Linux Server release 6.0 (Santiago)',
'PXELinux UEFI',
);
assertCompatibility('Red Hat Enterprise Linux Server release 6.0 (Santiago)', 'Grub UEFI');
refuteCompatibility('Red Hat Enterprise Linux Server release 6.0 (Santiago)', 'Grub2 UEFI');
refuteCompatibility(
'Red Hat Enterprise Linux Server release 6.0 (Santiago)',
'Grub2 UEFI SecureBoot',
);
});

describe('RHEL 7', () => {
assertCompatibility('RHEL 7.0', 'PXELinux BIOS');
refuteCompatibility('RHEL 7.0', 'PXELinux UEFI');
refuteCompatibility('RHEL 7.0', 'Grub UEFI');
assertCompatibility('RHEL 7.0', 'Grub2 UEFI');
assertCompatibility('RHEL 7.0', 'Grub2 UEFI SecureBoot');
});

describe('RHEL 8', () => {
assertCompatibility('RHEL 8.0', 'PXELinux BIOS');
refuteCompatibility('RHEL 8.0', 'PXELinux UEFI');
refuteCompatibility('RHEL 8.0', 'Grub UEFI');
assertCompatibility('RHEL 8.0', 'Grub2 UEFI');
assertCompatibility('RHEL 8.0', 'Grub2 UEFI SecureBoot');
});

describe('CentOS 7', () => {
assertCompatibility('CentOS 7', 'PXELinux BIOS');
refuteCompatibility('CentOS 7', 'PXELinux UEFI');
refuteCompatibility('CentOS 7', 'Grub UEFI');
assertCompatibility('CentOS 7', 'Grub2 UEFI');
assertCompatibility('CentOS 7', 'Grub2 UEFI SecureBoot');
});

// Debian 2-6 and Grub1
// Debian 7+ and Grub2
describe('Debian', () => {
describe('Debian 6', () => {
assertCompatibility('Debian 6', 'PXELinux BIOS');
refuteCompatibility('Debian 6', 'PXELinux UEFI');
assertCompatibility('Debian 6', 'Grub UEFI');
refuteCompatibility('Debian 6', 'Grub2 UEFI');
refuteCompatibility('Debian 6', 'Grub2 UEFI SecureBoot');
});

describe('Debian 2', () => {
assertCompatibility('Debian 2', 'PXELinux BIOS');
refuteCompatibility('Debian 2', 'PXELinux UEFI');
assertCompatibility('Debian 2', 'Grub UEFI');
refuteCompatibility('Debian 2', 'Grub2 UEFI');
refuteCompatibility('Debian 2', 'Grub2 UEFI SecureBoot');
});

describe('Debian 7', () => {
assertCompatibility('Debian 7.0', 'PXELinux BIOS');
refuteCompatibility('Debian 7.0', 'PXELinux UEFI');
refuteCompatibility('Debian 7.0', 'Grub UEFI');
assertCompatibility('Debian 7.0', 'Grub2 UEFI');
assertCompatibility('Debian 7.0', 'Grub2 UEFI SecureBoot');
});

describe('Other Debian', () => {
assertUndefinedCompatibility('Debian', 'PXELinux BIOS');
assertUndefinedCompatibility('Debian', 'PXELinux UEFI');
assertUndefinedCompatibility('Debian', 'Grub UEFI');
assertUndefinedCompatibility('Debian', 'Grub2 UEFI');
assertUndefinedCompatibility('Debian', 'Grub2 UEFI SecureBoot');
});
});

// Ubuntu 10.x or older and Grub1
// Ubuntu 11.x or newer and Grub2
describe('Ubuntu', () => {
describe('Ubuntu 10.4', () => {
assertCompatibility('Ubuntu 10.4', 'PXELinux BIOS');
refuteCompatibility('Ubuntu 10.4', 'PXELinux UEFI');
assertCompatibility('Ubuntu 10.4', 'Grub UEFI');
refuteCompatibility('Ubuntu 10.4', 'Grub2 UEFI');
refuteCompatibility('Ubuntu 10.4', 'Grub2 UEFI SecureBoot');
});

describe('Ubuntu 11.4', () => {
assertCompatibility('Ubuntu 11.4', 'PXELinux BIOS');
refuteCompatibility('Ubuntu 11.4', 'PXELinux UEFI');
refuteCompatibility('Ubuntu 11.4', 'Grub UEFI');
assertCompatibility('Ubuntu 11.4', 'Grub2 UEFI');
assertCompatibility('Ubuntu 11.4', 'Grub2 UEFI SecureBoot');
});

describe('Ubuntu 11.10', () => {
assertCompatibility('Ubuntu 11.10', 'PXELinux BIOS');
refuteCompatibility('Ubuntu 11.10', 'PXELinux UEFI');
refuteCompatibility('Ubuntu 11.10', 'Grub UEFI');
assertCompatibility('Ubuntu 11.10', 'Grub2 UEFI');
assertCompatibility('Ubuntu 11.10', 'Grub2 UEFI SecureBoot');
});

describe('Other Ubuntu', () => {
assertUndefinedCompatibility('Ubuntu', 'PXELinux BIOS');
assertUndefinedCompatibility('Ubuntu', 'PXELinux UEFI');
assertUndefinedCompatibility('Ubuntu', 'Grub UEFI');
assertUndefinedCompatibility('Ubuntu', 'Grub2 UEFI');
assertUndefinedCompatibility('Ubuntu', 'Grub2 UEFI SecureBoot');
});
});

describe('unknown os', () => {
assertUndefinedCompatibility('Unknown OS', 'PXELinux BIOS');
assertUndefinedCompatibility('Unknown OS', 'PXELinux UEFI');
assertUndefinedCompatibility('Unknown OS', 'Grub UEFI');
assertUndefinedCompatibility('Unknown OS', 'Grub2 UEFI');
assertUndefinedCompatibility('Unknown OS', 'Grub2 UEFI SecureBoot');
});
});
});
(14-14/30)