blob: 1e0ff4a499df7a0693a98a228115de8f26ab8808 [file] [log] [blame]
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
import React from 'react';
import { mount } from 'enzyme';
import PermissionsScreen from '../components/PermissionsScreen';
describe('PermissionsScreen', () => {
it('add permississon: does not dispatch if value already exists', () => {
const security = {
admins: { names: ['abc'], roles: [] },
members: { names: [], roles: [] }
};
const stub = jest.fn();
const wrapper = mount(
<PermissionsScreen
adminRoles={security.admins.roles}
adminNames={security.admins.names}
memberRoles={security.members.roles}
memberNames={security.members.names}
security={security}
dispatch={stub} />
);
wrapper
.find('div#permissions__admins #form-users-permissions input')
.simulate('change', {target: {value: 'abc'}});
wrapper
.find('div#permissions__admins #form-users-permissions')
.simulate('submit');
expect(stub).not.toHaveBeenCalled();
});
it('add permississon: dispatches if values does not exist', () => {
const security = {
admins: { names: ['pineapple'], roles: [] },
members: { names: [], roles: [] }
};
const stub = jest.fn();
const wrapper = mount(
<PermissionsScreen security={security} dispatch={stub} />
);
wrapper
.find('div#permissions__admins #form-users-permissions input')
.simulate('change', {target: {value: 'mango'}});
wrapper
.find('div#permissions__admins #form-users-permissions')
.simulate('submit');
expect(stub).toHaveBeenCalled();
});
it('remove permississon: dispatches', () => {
const security = {
admins: { names: ['pineapple'], roles: [] },
members: { names: [], roles: [] }
};
const stub = jest.fn();
const wrapper = mount(
<PermissionsScreen
adminRoles={security.admins.roles}
adminNames={security.admins.names}
memberRoles={security.members.roles}
memberNames={security.members.names}
security={security}
dispatch={stub} />
);
wrapper
.find('.permission-items li button')
.simulate('click');
expect(stub).toHaveBeenCalled();
});
});