Project

General

Profile

Download (1.83 KB) Statistics
| Branch: | Tag: | Revision:
import $ from 'jquery';

import { checkForUnavailablePuppetclasses } from './foreman_hostgroups';

jest.unmock('./foreman_hostgroups');

describe('checkForUnavailablePuppetclasses', () => {
beforeEach(() => {
window.Jed = {
sprintf(input) {
return input;
},
};
window.__ = input => input;

document.body.innerHTML = `<div>
<ul class="nav-tabs">
<li><a href="#puppet_klasses" data-toggle="tab">Puppet Classes</a></li>
</ul>
<div class="tab-content">
<form>
<div class="tab-pane active" id="hostgroup">
<div class="form-group">
<div>
<input id="hostgroup_environment_id"/>
</div>
<span class="help-block"></span>
</div>
</div>
<div class="tab-pane" id="puppet_klasses">
<div id="selected_classes"></div>
</div>
</form>
</div>
</div>`;
});

it('adds a warning if an unavailable class is found', () => {
$('#selected_classes').append('<li class="unavailable">Unavailable Class</li>');

checkForUnavailablePuppetclasses();
expect($('#puppetclasses_unavailable_warning').size()).toBe(1);
});

it('does not add a warning if no unavailable classes are found', () => {
$('#hostgroup .help-block').empty();
$('#selected_classes').empty();

checkForUnavailablePuppetclasses();
expect($('#hostgroup .help-block')
.first()
.children()
.size()).toBe(0);
});

it('adds a warning sign to the tab if unavailable classes are found', () => {
$('#selected_classes').append('<li class="unavailable">Unavailable Class</li>');
checkForUnavailablePuppetclasses();
setTimeout(() => {
expect($('a .pficon').size()).toBe(1);
}, 100);
});
});
(12-12/30)