import filterTests from "../../../support/filterTests"

filterTests(["all"], () => {
  context("Verify HR Template Details", () => {

    before(() => {
      cy.login()

      // Template navigation
      cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`)
      .its("body")
      .then(val => {
        if (val.length > 0) {
          cy.get(".spectrum-Button").contains("Templates").click({force: true})
        }
      })

      // Filter HR Templates
      cy.get(".template-category-filters").within(() => {
        cy.get('[data-cy="HR"]').click()
      })
    })

  it("should verify the details option for HR templates", () => {
    cy.get(".template-grid").find(".template-card").its('length')
    .then(len => {
      for (let i = 0; i < len; i++) {
        cy.get(".template-card").eq(i).within(() => {
          const templateName = cy.get(".template-thumbnail-text")
          templateName.invoke('text')
          .then(templateNameText => {
            const templateNameParsed = templateNameText.toLowerCase().replace(/\s+/g, '-')

            if (templateNameText == "Job Application Tracker") {
              // Template name should include 'applicant-tracking-system'
              cy.get('a')
              .should('have.attr', 'href').and('contain', 'applicant-tracking-system')
            }
            else if (templateNameText == "Job Portal App") {
              // Template name should include 'job-portal'
              const templateNameSplit = templateNameParsed.split('-app')[0]
              cy.get('a')
              .should('have.attr', 'href').and('contain', templateNameSplit)
            }
            else {
              cy.get('a')
              .should('have.attr', 'href').and('contain', templateNameParsed)
            }
          })
          // Verify correct status from Details link - 200
          cy.get('a')
          .then(link => {
            cy.request(link.prop('href'))
            .its('status')
            .should('eq', 200)
          })
        })
      }
    })
  })
})
})