summaryrefslogtreecommitdiff
path: root/spec/frontend/sidebar/assignees_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/sidebar/assignees_spec.js')
-rw-r--r--spec/frontend/sidebar/assignees_spec.js205
1 files changed, 0 insertions, 205 deletions
diff --git a/spec/frontend/sidebar/assignees_spec.js b/spec/frontend/sidebar/assignees_spec.js
deleted file mode 100644
index 7cf7fd33022..00000000000
--- a/spec/frontend/sidebar/assignees_spec.js
+++ /dev/null
@@ -1,205 +0,0 @@
-import { GlIcon } from '@gitlab/ui';
-import { mount } from '@vue/test-utils';
-import { nextTick } from 'vue';
-import { trimText } from 'helpers/text_helper';
-import UsersMockHelper from 'helpers/user_mock_data_helper';
-import Assignee from '~/sidebar/components/assignees/assignees.vue';
-import AssigneeAvatarLink from '~/sidebar/components/assignees/assignee_avatar_link.vue';
-import UsersMock from './mock_data';
-
-describe('Assignee component', () => {
- const getDefaultProps = () => ({
- rootPath: 'http://localhost:3000',
- users: [],
- editable: false,
- });
- let wrapper;
-
- const createWrapper = (propsData = getDefaultProps()) => {
- wrapper = mount(Assignee, {
- propsData,
- });
- };
-
- const findAllAvatarLinks = () => wrapper.findAllComponents(AssigneeAvatarLink);
- const findComponentTextNoUsers = () => wrapper.find('[data-testid="no-value"]');
- const findCollapsedChildren = () => wrapper.findAll('.sidebar-collapsed-icon > *');
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- describe('No assignees/users', () => {
- it('displays no assignee icon when collapsed', () => {
- createWrapper();
- const collapsedChildren = findCollapsedChildren();
- const userIcon = collapsedChildren.at(0).findComponent(GlIcon);
-
- expect(collapsedChildren.length).toBe(1);
- expect(collapsedChildren.at(0).attributes('aria-label')).toBe('None');
- expect(userIcon.exists()).toBe(true);
- expect(userIcon.props('name')).toBe('user');
- });
-
- it('displays only "None" when no users are assigned and the issue is read-only', () => {
- createWrapper();
- const componentTextNoUsers = trimText(findComponentTextNoUsers().text());
-
- expect(componentTextNoUsers).toBe('None');
- expect(componentTextNoUsers).not.toContain('assign yourself');
- });
-
- it('displays only "None" when no users are assigned and the issue can be edited', () => {
- createWrapper({
- ...getDefaultProps(),
- editable: true,
- });
- const componentTextNoUsers = trimText(findComponentTextNoUsers().text());
-
- expect(componentTextNoUsers).toContain('None');
- expect(componentTextNoUsers).toContain('assign yourself');
- });
-
- it('emits the assign-self event when "assign yourself" is clicked', async () => {
- createWrapper({
- ...getDefaultProps(),
- editable: true,
- });
-
- jest.spyOn(wrapper.vm, '$emit');
- wrapper.find('[data-testid="assign-yourself"]').trigger('click');
-
- await nextTick();
- expect(wrapper.emitted('assign-self')).toHaveLength(1);
- });
- });
-
- describe('One assignee/user', () => {
- it('displays one assignee icon when collapsed', () => {
- createWrapper({
- ...getDefaultProps(),
- users: [UsersMock.user],
- });
-
- const collapsedChildren = findCollapsedChildren();
- const assignee = collapsedChildren.at(0);
-
- expect(collapsedChildren.length).toBe(1);
- expect(assignee.find('.avatar').attributes('src')).toBe(UsersMock.user.avatar);
- expect(assignee.find('.avatar').attributes('alt')).toBe(`${UsersMock.user.name}'s avatar`);
-
- expect(trimText(assignee.find('.author').text())).toBe(UsersMock.user.name);
- });
- });
-
- describe('Two or more assignees/users', () => {
- it('displays two assignee icons when collapsed', () => {
- const users = UsersMockHelper.createNumberRandomUsers(2);
- createWrapper({
- ...getDefaultProps(),
- users,
- });
-
- const collapsedChildren = findCollapsedChildren();
-
- expect(collapsedChildren.length).toBe(2);
-
- const first = collapsedChildren.at(0);
-
- expect(first.find('.avatar').attributes('src')).toBe(users[0].avatar_url);
- expect(first.find('.avatar').attributes('alt')).toBe(`${users[0].name}'s avatar`);
-
- expect(trimText(first.find('.author').text())).toBe(users[0].name);
-
- const second = collapsedChildren.at(1);
-
- expect(second.find('.avatar').attributes('src')).toBe(users[1].avatar_url);
- expect(second.find('.avatar').attributes('alt')).toBe(`${users[1].name}'s avatar`);
-
- expect(trimText(second.find('.author').text())).toBe(users[1].name);
- });
-
- it('displays one assignee icon and counter when collapsed', () => {
- const users = UsersMockHelper.createNumberRandomUsers(3);
- createWrapper({
- ...getDefaultProps(),
- users,
- });
-
- const collapsedChildren = findCollapsedChildren();
-
- expect(collapsedChildren.length).toBe(2);
-
- const first = collapsedChildren.at(0);
-
- expect(first.find('.avatar').attributes('src')).toBe(users[0].avatar_url);
- expect(first.find('.avatar').attributes('alt')).toBe(`${users[0].name}'s avatar`);
-
- expect(trimText(first.find('.author').text())).toBe(users[0].name);
-
- const second = collapsedChildren.at(1);
-
- expect(trimText(second.find('.avatar-counter').text())).toBe('+2');
- });
-
- it('Shows two assignees', () => {
- const users = UsersMockHelper.createNumberRandomUsers(2);
- createWrapper({
- ...getDefaultProps(),
- users,
- editable: true,
- });
-
- expect(findAllAvatarLinks()).toHaveLength(users.length);
- expect(wrapper.find('.user-list-more').exists()).toBe(false);
- });
-
- it('shows sorted assignee where "can merge" users are sorted first', () => {
- const users = UsersMockHelper.createNumberRandomUsers(3);
- users[0].can_merge = false;
- users[1].can_merge = false;
- users[2].can_merge = true;
-
- createWrapper({
- ...getDefaultProps(),
- users,
- editable: true,
- });
-
- expect(wrapper.vm.sortedAssigness[0].can_merge).toBe(true);
- });
-
- it('passes the sorted assignees to the uncollapsed-assignee-list', () => {
- const users = UsersMockHelper.createNumberRandomUsers(3);
- users[0].can_merge = false;
- users[1].can_merge = false;
- users[2].can_merge = true;
-
- createWrapper({
- ...getDefaultProps(),
- users,
- });
-
- const userItems = findAllAvatarLinks();
-
- expect(userItems).toHaveLength(3);
- expect(userItems.at(0).attributes('title')).toBe(users[2].name);
- });
-
- it('passes the sorted assignees to the collapsed-assignee-list', () => {
- const users = UsersMockHelper.createNumberRandomUsers(3);
- users[0].can_merge = false;
- users[1].can_merge = false;
- users[2].can_merge = true;
-
- createWrapper({
- ...getDefaultProps(),
- users,
- });
-
- const collapsedButton = wrapper.find('.sidebar-collapsed-user button');
-
- expect(trimText(collapsedButton.text())).toBe(users[2].name);
- });
- });
-});