import { stagingUsers } from '@fixtures/staging-users';
import { ApprovalBookingsPage } from '@admin-lib/index';

const superAdmin = stagingUsers.superAdmin;

const superAdminPassword = Cypress.env('superAdmin').SUPER_ADMIN_PASSWORD;

const admin = stagingUsers.admin.admin;
const adminPassword = Cypress.env('admin').admin.ADMIN_PASSWORD;
/*const nonAdmin = stagingUsers.trip_proposal;
const nonAdminPassword = Cypress.env('trip_proposal').TRIP_PROPOSAL_PASSWORD;*/

describe('Admin: Admin - Approvals', () => {
  beforeEach(() => {
    cy.loginWithAuthToken({
      email: superAdmin.email,
      password: superAdminPassword,
      isSA: true
    });
  });

  it('C1009257: Verify Approvals > Bookings Page', { tags: ['@tier1'] }, () => {
    ApprovalBookingsPage.visitBookingsPage();
    ApprovalBookingsPage.verifyApprovalBookingsPage();
    ApprovalBookingsPage.selectBookingApprovedStatus();
    ApprovalBookingsPage.selectBookingPendingStatus();
    ApprovalBookingsPage.selectBookingDeclinedStatus();
    ApprovalBookingsPage.verifyBookingListings();
    ApprovalBookingsPage.gotoSelectedListingPage();
    ApprovalBookingsPage.goBackToListings();
  });

  // commenting to let pipeline pass. Once the fix is merged will remove
  /*it('C1009258: Verify Approvals > Trip Proposals page', { tags: ['@tier1'] }, () => {
  ApprovalBookingsPage.clearCacheAndLoginAs(nonAdmin.email, nonAdminPassword, false);

  // Creates a new trip proposal to deal with old proposals being inactive
  CreateProposal.visitNewTripProposalPage();
  CreateProposal.setTripName();
  CreateProposal.setTripReason();
  CreateProposal.setBookingType('hotel');
  CreateProposal.setHotelLocation('Berlin, Germany');
  CreateProposal.setCheckInDate();
  CreateProposal.sendProposal();
  CreateProposal.sendRequestToManager();

  ApprovalBookingsPage.clearCacheAndLoginAs(superAdmin.email, superAdminPassword, true);
  CreateProposal.visitAdminPage();

  ApprovalBookingsPage.goToTripProposalsPage();
  ApprovalBookingsPage.verifyApprovalModal();
  ApprovalBookingsPage.verifyRejectionModal();
  ApprovalBookingsPage.approveTripProposal();
  });*/

  it('C1009259: Verify empty booking listings', { tags: ['@tier1'] }, () => {
    cy.loginWithAuthToken({ email: admin.email, password: adminPassword, isSA: true });
    ApprovalBookingsPage.visitBookingsPage();
    ApprovalBookingsPage.verifyEmptyPageListings();
  });
});
