import { stagingUsers } from '@fixtures/staging-users';
import {
  TeamEventsInterceptApis,
  EventDetails,
  EventsWorkflow
} from '@group-events-lib/index';

const { adminEmail } = stagingUsers.admin_events_page;
const adminCredentials = Cypress.env('eventPage').EVENT_USER_PASSWORD;
const location = 'Zurich';
const eventName = 'Zurich event';
const notFoundEmail = 'ndoskanova+t22@tripactions.com';

describe('GME: Team event: Add non-valid users using "Add participants" modal', () => {
  beforeEach(() => {
    cy.loginWithAuthToken({ email: adminEmail, password: adminCredentials, isSA: true });

    TeamEventsInterceptApis.teamEventIntercept();
    EventsWorkflow.createDraftEvent(location, eventName);
    EventDetails.verifyTeamEventSetupPageOpened(eventName);
  });

  it('C1372768: Adding duplications', { tags: ['@tier2'] }, () => {
    EventDetails.setExistingEventParticipant(adminEmail);
    EventDetails.verifyDuplicateParticipant(adminEmail);
  });

  it('C2087846: Adding already participating user', { tags: ['@tier2'] }, () => {
    EventDetails.setExistingEventParticipant(adminEmail);
    EventDetails.verifyParticipantHasBeenAlreadyAdded(adminEmail);
    EventDetails.closeAddParticipantsModal();
  });

  it('C2094166: Adding non-registered or misspelled user', { tags: ['@tier2'] }, () => {
    EventDetails.switchTabs('participants');
    EventDetails.verifyNotFoundParticipant(notFoundEmail);
    EventDetails.closeAddParticipantsModal();
    EventDetails.discardChanges();
  });

  afterEach(() => {
    EventDetails.deleteDraftEvent();
  });
});
