import {beforeSetup, clickMenu} from './utils';

describe('page tab', function () {
  beforeEach(function () {
    beforeSetup();
  });

  function validateTabLength(length: number) {
    cy.get('#p_tab_list').find('li[role="tab"]').should('have.length', length);
  }

  function validateTabActiveText(text: string) {
    cy.get('#p_tab_list')
      .find('li[data-isactive="1"]')
      .should('have.text', text);
  }

  function clickTab(eq: number, contextMenu = false) {
    const el = cy.get('#p_tab_list').find('li[role="tab"]').eq(eq);

    contextMenu ? el.trigger('contextmenu') : el.click();
  }

  it('tab', function () {
    validateTabLength(1);
    // 判断新增是否正确
    clickMenu('基础资料', '容器管理');
    validateTabActiveText('容器管理');
    clickMenu('系统设置', '角色管理');
    validateTabActiveText('角色管理');
    clickMenu('系统设置', '菜单管理');
    validateTabActiveText('菜单管理');
    validateTabLength(4);

    // 删除当前标签
    clickTab(1);
    clickTab(1, true);
    cy.getTestId('remove').click();
    validateTabLength(3);
    validateTabActiveText('首页');

    // 删除非当前标签
    clickTab(2);
    clickTab(1, true);
    cy.getTestId('remove').click();
    validateTabLength(2);
    validateTabActiveText('菜单管理');

    clickMenu('基础资料', '容器管理');
    clickMenu('系统设置', '角色管理');
    clickMenu('系统设置', 'PDA菜单管理');

    // 除此之外关闭
    clickTab(3, true);
    cy.getTestId('remove_other').click();
    validateTabLength(2);
    validateTabActiveText('角色管理');

    clickMenu('基础资料', '容器管理');
    clickMenu('系统设置', '菜单管理');
    clickMenu('系统设置', 'PDA菜单管理');

    // 关闭右侧 移除包含自己
    clickTab(2, true);
    cy.getTestId('remove_right').click();
    validateTabLength(3);
    validateTabActiveText('容器管理');

    clickMenu('系统设置', '菜单管理');
    clickMenu('系统设置', 'PDA菜单管理');
    // 关闭右侧 不移除自己
    clickTab(1);
    clickTab(2, true);
    cy.getTestId('remove_right').click();
    validateTabLength(3);
    validateTabActiveText('角色管理');

    clickMenu('系统设置', '菜单管理');
    clickMenu('系统设置', 'PDA菜单管理');
    // 清除所有
    clickTab(1, true);
    cy.getTestId('clear').click();
    validateTabLength(1);
    validateTabActiveText('首页');
  });
});
