Project

General

Profile

Download (2.47 KB) Statistics
| Branch: | Tag: | Revision:
import $ from 'jquery';
import * as users from './foreman_users';

jest.unmock('./foreman_users');

describe('initInheritedRoles', () => {
it('updates the button text and role list on click', () => {
document.body.innerHTML = `<div id="inherited-roles">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button"
id="usergroupsDropdownMenuBtn" data-toggle="dropdown">
Second <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu"
aria-labelledby="usergroupsDropdownMenuBtn">
<li role="presentation">
<a role="menuitem" tabindex="-1"
data-id='2'">Second</a>
</li>
<li role="presentation">
<a role="menuitem" tabindex="-1"
data-id='1'">First</a>
</li>
</ul>
</div>
<ul class="list-group" id="roles_tab">
<li data-id="2" class="list-group-item">
Manager
</li>
<li data-id="1" class="list-group-item hidden" style="display: none;">
Viewer
</li>
</ul>
</div>`;

users.initInheritedRoles();
$('.dropdown-menu li a')
.last()
.click();
expect($('.btn').text()).toContain('First');
expect($('.list-group li[data-id="1"]').css('display')).not.toEqual('none');
expect($('.list-group li[data-id="2"]').css('display')).toEqual('none');
});
});

describe('taxonomyAdded', () => {
window.users = users; // so the callback knows about it
it('updates the default organization selection according to selected taxonomies', () => {
document.body.innerHTML = `<select multiple id='user_organization_ids'
onchange='users.taxonomyAdded(this, "organization")'>
<option value="1">aaa</option>
<option value="2">bbb</option>
</select>
<select id="user_default_organization_id">
<option value=""></option>
</select>`;

expect($('#user_default_organization_id option').length).toEqual(1);
$('#user_organization_ids')
.val('2')
.change();
expect($('#user_default_organization_id option').length).toEqual(2);
$('#user_organization_ids')
.val([2, 1])
.change();
expect($('#user_default_organization_id option').length).toEqual(3);
$('#user_organization_ids')
.val('')
.change();
expect($('#user_default_organization_id option').length).toEqual(1);
});
});
(29-29/30)