{"size": 14107, "ext": "js", "max_stars_repo_path": "catalog-ui/cypress/integration/collapsing_roles-certified_life_cycle_buttons.js", "max_stars_repo_name": "xtommysk/sdc", "max_stars_repo_stars_event_min_datetime": "2018-10-02T14:54:35.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-01T18:27:14.000Z", "max_issues_repo_path": "catalog-ui/cypress/integration/collapsing_roles-certified_life_cycle_buttons.js", "max_issues_repo_name": "kobe0608/sdc", "max_issues_repo_issues_event_min_datetime": "2021-12-14T21:00:42.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-27T17:07:08.000Z", "max_forks_repo_path": "catalog-ui/cypress/integration/collapsing_roles-certified_life_cycle_buttons.js", "max_forks_repo_name": "kobe0608/sdc", "max_forks_repo_forks_event_min_datetime": "2018-05-30T19:18:29.000Z", "max_forks_repo_forks_event_max_datetime": "2022-03-01T06:16:47.000Z"}
{"max_stars_count": 15, "max_issues_count": 6, "max_forks_count": 31, "avg_line_length": 50.2028469751, "max_line_length": 142, "alphanum_fraction": 0.6824980506}
import { initCommonFixtures } from "../common/init";

describe('Collapsing Roles', () => {
  beforeEach(() => {
    cy.server();
    initCommonFixtures(cy);

    cy.fixture('common/service-metadata').as('serviceMetaData');
    cy.fixture('common/vf-metadata').as('vfMetaData');
    cy.fixture('common/service-certifyResponse').as('serviceCertifyResponse');
    cy.fixture('common/dependencies').as('dependenciesResponse');
    cy.fixture('common/packages').as('packagesResponse');
  });

  it('Service - Verify UpdateServices, CheckOut, Distribute and Archive exist for a Certified Service that was not Distributed', function () {
    cy.route('GET', '**/services/*/filteredDataByParams?include=metadata', '@serviceMetaData');
    cy.route('GET', '**/services/*/dependencies',[]);

    this.serviceMetaData.metadata.distributionStatus = 'DISTRIBUTION_NOT_APPROVED';

    const generalPageUrl = '#!/dashboard/workspace/' + this.serviceMetaData.metadata.uniqueId + '/service/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is Distribution Approved');
    cy.get('[data-tests-id="formlifecyclestate"]').should('be.visible');
    cy.get('[data-tests-id="formlifecyclestate"]').should('have.text','Waiting For Distribution');

    console.log('Verify Upgrade Services Button');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.visible');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('have.text','Update Services');

    console.log('Verify Distribute Services Button');
    cy.get('[data-tests-id="distribute"]').should('be.visible');
    cy.get('[data-tests-id="distribute"]').should('contain.text','Distribute');

    console.log('Verify Check Out Button');
    cy.get('[data-tests-id="check_out"]').should('be.visible');
    cy.get('[data-tests-id="check_out"]').should('contain.text','Check Out');

    console.log('Verify Archive Button');
    cy.get('[data-tests-id="archive-component-button"]').should('be.visible');
    cy.get('[data-tests-id="archive-component-button"]').should('have.text','Archive');

    console.log('Verify Redistribute Button Not Exist');
    cy.get('[data-tests-id="redistribute"]').should('not.be.visible');
    cy.get('[data-tests-id="redistribute"]').should('not.exist');

    console.log("Verify that Certify button does not exist")
    cy.get('[data-tests-id="certify"]').should('not.be.visible');
  });

  it('Service - Verify UpdateServices, CheckOut, Redistribute and Archive exist for a Certified Service that was Distributed', function () {
    cy.route('GET', '**/services/*/filteredDataByParams?include=metadata', '@serviceMetaData');
    cy.route('GET', '**/services/*/dependencies',[]);

    this.serviceMetaData.metadata.distributionStatus = 'DISTRIBUTED';

    const generalPageUrl = '#!/dashboard/workspace/' + this.serviceMetaData.metadata.uniqueId + '/service/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is Distribution Approved');
    cy.get('[data-tests-id="formlifecyclestate"]').should('be.visible');
    cy.get('[data-tests-id="formlifecyclestate"]').should('have.text','Distributed');

    console.log('Verify Upgrade Services Button');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.visible');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('have.text','Update Services');

    console.log('Verify Distribute Services Button');
    cy.get('[data-tests-id="redistribute"]').should('be.visible');
    cy.get('[data-tests-id="redistribute"]').should('contain.text','Redistribute');

    console.log('Verify Check Out Button');
    cy.get('[data-tests-id="check_out"]').should('be.visible');
    cy.get('[data-tests-id="check_out"]').should('contain.text','Check Out');

    console.log('Verify Archive Button');
    cy.get('[data-tests-id="archive-component-button"]').should('be.visible');
    cy.get('[data-tests-id="archive-component-button"]').should('have.text','Archive');

    console.log('Verify Distribute Button Not Exist');
    cy.get('[data-tests-id="distribute"]').should('not.be.visible');
    cy.get('[data-tests-id="distribute"]').should('not.exist');

    console.log("Verify that Certify button does not exist")
    cy.get('[data-tests-id="certify"]').should('not.be.visible');
  });

  it('Service - Verify UpdateServices button is disabled in case there are no Dependencies for a Certified Service', function () {
    cy.route('GET', '**/services/*/filteredDataByParams?include=metadata', '@serviceMetaData');
    cy.route('GET', '**/services/*/dependencies',[{dependencies: null}]);

    this.serviceMetaData.metadata.distributionStatus = 'DISTRIBUTED';

    const generalPageUrl = '#!/dashboard/workspace/' + this.serviceMetaData.metadata.uniqueId + '/service/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is Distribution Approved');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.visible');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.disabled');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('have.text','Update Services');

    console.log("Verify that Certify button does not exist")
    cy.get('[data-tests-id="certify"]').should('not.be.visible');
  });

  it('Service - Verify UpdateServices button is enabled in case there are Dependencies for a Certified Service', function () {
    cy.route('GET', '**/services/*/filteredDataByParams?include=metadata', '@serviceMetaData');
    cy.route('GET', '**/services/*/dependencies',[{dependencies: {}}]);

    this.serviceMetaData.metadata.distributionStatus = 'DISTRIBUTED';

    const generalPageUrl = '#!/dashboard/workspace/' + this.serviceMetaData.metadata.uniqueId + '/service/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is Distribution Approved');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.visible');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.enabled');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('have.text','Update Services');

    console.log("Verify that Certify button does not exist")
    cy.get('[data-tests-id="certify"]').should('not.be.visible');
  });

  it('Service - Verify UpdateServices Not exist and Certify Exist in case Service is in state NOT_CERTIFIED_CHECKOUT', function () {
    cy.route('GET', '**/services/*/filteredDataByParams?include=metadata', '@serviceMetaData');
    cy.route('GET', '**/services/*/dependencies',[{dependencies: {}}]);

    this.serviceMetaData.metadata.lifecycleState = 'NOT_CERTIFIED_CHECKOUT';

    const generalPageUrl = '#!/dashboard/workspace/' + this.serviceMetaData.metadata.uniqueId + '/service/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is Distribution Approved');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('not.be.visible');

    cy.get('[data-tests-id="certify"]').should('be.visible').click();
    cy.get('[data-tests-id="checkindialog"]').should('be.visible');
  });

  it('Service - Verify UpdateServices Not exist and Certify Exist in case Service is in state NOT_CERTIFIED_CHECKIN', function () {
    cy.route('GET', '**/services/*/filteredDataByParams?include=metadata', '@serviceMetaData');
    cy.route('GET', '**/services/*/dependencies',[{dependencies: {}}]);

    this.serviceMetaData.metadata.lifecycleState = 'NOT_CERTIFIED_CHECKIN';

    const generalPageUrl = '#!/dashboard/workspace/' + this.serviceMetaData.metadata.uniqueId + '/service/general';
    cy.visit(generalPageUrl);

    cy.get('[data-tests-id="certify"]').should('be.visible').click();
    cy.get('[data-tests-id="checkindialog"]').should('be.visible');
  });


  it('Service - When Service is being Certified, and has Dependencies, Update Service modal will be opened automatically', function () {
      cy.route('GET', '**/services/*/filteredDataByParams?include=metadata', '@serviceMetaData');
      cy.route('GET', '**/services/*/dependencies','@dependenciesResponse');
      cy.route('POST', '**/services/*/lifecycleState/certify','@serviceCertifyResponse');
      cy.route('GET', '**/catalog/services/validate-name/*', { isValid: true})
      this.serviceMetaData.metadata.lifecycleState = 'NOT_CERTIFIED_CHECKOUT';

      const generalPageUrl = '#!/dashboard/workspace/' + this.serviceMetaData.metadata.uniqueId + '/service/general';
      cy.visit(generalPageUrl);

      console.log('Verify life cycle is Distribution Approved');
      cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('not.be.visible');

      console.log('Click Certify');
      cy.get('[data-tests-id="certify"]').should('be.visible').click();

      console.log('Insert confirm text');
      cy.get('[data-tests-id="checkindialog"]').should('be.visible').type('Test_1234');

      console.log('Click OK');
      cy.get('[data-tests-id="confirm-modal-button-ok"]').should('be.visible').click();

      console.log('Close the Modal');
      cy.get('[data-tests-id="upgradeVspModal-button-close"]').should('be.visible').click();
  });

  it('VF - Verify Certify and Check in exist for a NOT_CERTIFIED_CHECKOUT VF', function () {
    cy.route('GET', '**/resources/*/filteredDataByParams?include=metadata', '@vfMetaData');
    cy.route('GET', '**/onboarding-api/*/vendor-software-products/packages', '@packagesResponse');

    const generalPageUrl = '#!/dashboard/workspace/' + this.vfMetaData.metadata.uniqueId + '/resource/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is IN DESIGN CHECK OUT');
    cy.get('[data-tests-id="formlifecyclestate"]').should('be.visible');
    cy.get('[data-tests-id="formlifecyclestate"]').should('have.text','In Design Check Out');

    console.log('Verify Certify button exist');
    cy.get('[data-tests-id="certify"]').should('be.visible').click();
    cy.get('[data-tests-id="checkindialog"]').should('be.visible');

    console.log('Verify Check in button exist');
    cy.get('[data-tests-id="check_in"]').should('be.visible');

   });

  it('VF - Verify Certify and Check out exist for a NOT_CERTIFIED_CHECKOUT VF', function () {
    cy.route('GET', '**/resources/*/filteredDataByParams?include=metadata', '@vfMetaData');
    cy.route('GET', '**/onboarding-api/*/vendor-software-products/packages', '@packagesResponse');

    this.vfMetaData.metadata.lifecycleState = 'NOT_CERTIFIED_CHECKIN';

    const generalPageUrl = '#!/dashboard/workspace/' + this.vfMetaData.metadata.uniqueId + '/resource/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is IN DESIGN CHECK IN');
    cy.get('[data-tests-id="formlifecyclestate"]').should('be.visible');
    cy.get('[data-tests-id="formlifecyclestate"]').should('have.text','In Design Check In');

    console.log('Verify Certify button exist');
    cy.get('[data-tests-id="certify"]').should('be.visible').click();
    cy.get('[data-tests-id="checkindialog"]').should('be.visible');

    console.log('Verify Check Out button exist');
    cy.get('[data-tests-id="check_out"]').should('be.visible');

   });

  it('VF - Verify UpgradeServices is Disabled in case there are no Dependencies for a Certified VF', function () {
      cy.route('GET', '**/resources/*/filteredDataByParams?include=metadata', '@vfMetaData');
      cy.route('GET', '**/resources/*/dependencies',[{dependencies: null}]);

        this.vfMetaData.metadata.lifecycleState = 'CERTIFIED';

      const generalPageUrl = '#!/dashboard/workspace/' + this.vfMetaData.metadata.uniqueId + '/resource/general';
      cy.visit(generalPageUrl);

        console.log('Verify life cycle is Certified');
        cy.get('[data-tests-id="formlifecyclestate"]').should('be.visible');
        cy.get('[data-tests-id="formlifecyclestate"]').should('have.text','Certified');

        console.log('Verify life cycle is Distribution Approved');
        cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.visible');
        cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.disabled');
        cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('have.text','Upgrade Services');

        console.log('Verify Check Out button exist');
        cy.get('[data-tests-id="check_out"]').should('be.visible');

        console.log('Verify Archive Button');
        cy.get('[data-tests-id="archive-component-button"]').should('be.visible');
        cy.get('[data-tests-id="archive-component-button"]').should('have.text','Archive');

    });

  it('VF - Verify UpgradeServices is Enabled and Modal is opened in case there are no Dependencies for a Certified VF', function () {
    cy.route('GET', '**/resources/*/filteredDataByParams?include=metadata', '@vfMetaData');
    cy.route('GET', '**/resources/*/dependencies',[{dependencies: {}}]);
    cy.route('GET', '**/onboarding-api/*/vendor-software-products/packages', '@packagesResponse');

    this.vfMetaData.metadata.lifecycleState = 'CERTIFIED';

    const generalPageUrl = '#!/dashboard/workspace/' + this.vfMetaData.metadata.uniqueId + '/resource/general';
    cy.visit(generalPageUrl);

    console.log('Verify life cycle is Certified');
    cy.get('[data-tests-id="formlifecyclestate"]').should('be.visible');
    cy.get('[data-tests-id="formlifecyclestate"]').should('have.text','Certified');

    console.log('Verify life cycle is Distribution Approved');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.visible');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('be.enabled');
    cy.get('[data-tests-id="open-upgrade-vsp-popup"]').should('have.text','Upgrade Services').click();
    cy.get('[class="sdc-modal__wrapper sdc-modal-type-custom"]').should('be.visible');
    cy.get('[data-tests-id="upgradeVspModal-button-close"]').should('be.enabled').click();

    console.log('Verify Check Out button exist');
    cy.get('[data-tests-id="check_out"]').should('be.visible');

    console.log('Verify Archive Button');
    cy.get('[data-tests-id="archive-component-button"]').should('be.visible');
    cy.get('[data-tests-id="archive-component-button"]').should('have.text','Archive');

  });

});
