Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/super_sidebar/components/user_name_group_spec.js')
-rw-r--r--spec/frontend/super_sidebar/components/user_name_group_spec.js130
1 files changed, 0 insertions, 130 deletions
diff --git a/spec/frontend/super_sidebar/components/user_name_group_spec.js b/spec/frontend/super_sidebar/components/user_name_group_spec.js
deleted file mode 100644
index a31ad93d143..00000000000
--- a/spec/frontend/super_sidebar/components/user_name_group_spec.js
+++ /dev/null
@@ -1,130 +0,0 @@
-import { GlDisclosureDropdownGroup, GlDisclosureDropdownItem, GlTooltip } from '@gitlab/ui';
-import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
-import UserNameGroup from '~/super_sidebar/components/user_name_group.vue';
-import { userMenuMockData, userMenuMockStatus } from '../mock_data';
-
-describe('UserNameGroup component', () => {
- let wrapper;
-
- const findGlDisclosureDropdownGroup = () => wrapper.findComponent(GlDisclosureDropdownGroup);
- const findGlDisclosureDropdownItem = () => wrapper.findComponent(GlDisclosureDropdownItem);
- const findGlTooltip = () => wrapper.findComponent(GlTooltip);
- const findUserStatus = () => wrapper.findByTestId('user-menu-status');
-
- const GlEmoji = { template: '<img/>' };
-
- const createWrapper = (userDataChanges = {}) => {
- wrapper = shallowMountExtended(UserNameGroup, {
- propsData: {
- user: {
- ...userMenuMockData,
- ...userDataChanges,
- },
- },
- stubs: {
- GlEmoji,
- GlDisclosureDropdownItem,
- },
- });
- };
-
- beforeEach(() => {
- createWrapper();
- });
-
- it('renders the menu item in a separate group', () => {
- expect(findGlDisclosureDropdownGroup().exists()).toBe(true);
- });
-
- it('renders menu item', () => {
- expect(findGlDisclosureDropdownItem().exists()).toBe(true);
- });
-
- it('passes the item to the disclosure dropdown item', () => {
- expect(findGlDisclosureDropdownItem().props('item')).toEqual(
- expect.objectContaining({
- text: userMenuMockData.name,
- href: userMenuMockData.link_to_profile,
- }),
- );
- });
-
- it("renders user's name", () => {
- expect(findGlDisclosureDropdownItem().text()).toContain(userMenuMockData.name);
- });
-
- it("renders user's username", () => {
- expect(findGlDisclosureDropdownItem().text()).toContain(userMenuMockData.username);
- });
-
- describe('Busy status', () => {
- it('should not render "Busy" when user is NOT busy', () => {
- expect(findGlDisclosureDropdownItem().text()).not.toContain('Busy');
- });
- it('should render "Busy" when user is busy', () => {
- createWrapper({ status: { customized: true, busy: true } });
-
- expect(findGlDisclosureDropdownItem().text()).toContain('Busy');
- });
- });
-
- describe('User status', () => {
- describe('when not customized', () => {
- it('should not render it', () => {
- expect(findUserStatus().exists()).toBe(false);
- });
- });
-
- describe('when customized', () => {
- beforeEach(() => {
- createWrapper({ status: { ...userMenuMockStatus, customized: true } });
- });
-
- it('should render it', () => {
- expect(findUserStatus().exists()).toBe(true);
- });
-
- it('should render status emoji', () => {
- expect(findUserStatus().findComponent(GlEmoji).attributes('data-name')).toBe(
- userMenuMockData.status.emoji,
- );
- });
-
- it('should render status message', () => {
- expect(findUserStatus().html()).toContain(userMenuMockData.status.message_html);
- });
-
- it("sets the tooltip's target to the status container", () => {
- expect(findGlTooltip().props('target')?.()).toBe(findUserStatus().element);
- });
-
- describe('Tooltip', () => {
- it('renders the tooltip when message has some text', () => {
- createWrapper({
- status: { ...userMenuMockStatus, customized: true, message_html: 'Has text' },
- });
- expect(findGlTooltip().exists()).toBe(true);
- });
-
- it('does not render the tooltip when message is empty', () => {
- createWrapper({
- status: { ...userMenuMockStatus, customized: true, message_html: '' },
- });
- expect(findGlTooltip().exists()).toBe(false);
- });
- });
- });
- });
-
- describe('Tracking', () => {
- it('sets the tracking attributes', () => {
- expect(findGlDisclosureDropdownItem().find('a').attributes()).toEqual(
- expect.objectContaining({
- 'data-track-property': 'nav_user_menu',
- 'data-track-action': 'click_link',
- 'data-track-label': 'user_profile',
- }),
- );
- });
- });
-});