cloudfoundry/stratos

View on GitHub
src/test-e2e/metrics/metrics-registration-e2e.spec.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { e2e } from '../e2e';
import { EndpointMetadata, EndpointsPage } from '../endpoints/endpoints.po';
import { RegisterStepper } from '../endpoints/register-dialog.po';
import { ConsoleUserType } from '../helpers/e2e-helpers';
import { SideNavMenuItem } from '../po/side-nav.po';
import { TileSelector } from '../po/tile-selector.po';

describe('Metrics', () => {

  const endpointsPage = new EndpointsPage();
  const register = new RegisterStepper();
  const tileSelector = new TileSelector();

  const spoofMetricsEndpoint = e2e.secrets.getDefaultCFEndpoint().url;

  beforeAll(() => {
    e2e.setup(ConsoleUserType.admin)
      .clearAllEndpoints()
      .getInfo();
  });

  it('Should be able to register a Metrics endpoint', () => {
    endpointsPage.sideNav.goto(SideNavMenuItem.Endpoints);
    endpointsPage.register();
    tileSelector.select('Metrics');
    register.stepper.waitForStep('Register');
    expect(register.isRegisterDialog()).toBeTruthy();
    expect(register.stepper.canNext()).toBeFalsy();

    register.form.getControlsMap().then(fields => {
      expect(fields.client_id.value).toBe('');
      expect(fields.client_secret.value).toBe('');
    });

    register.form.fill({
      name: 'MetricsTest',
      url: spoofMetricsEndpoint,
      skipsll: true
    });

    register.form.getControlsMap().then(fields => {
      expect(fields.client_id.value).toBe('');
      expect(fields.client_secret.value).toBe('');
    });

    expect(register.stepper.canNext()).toBeTruthy();
    register.stepper.next();

    // Skipping connect step
    register.stepper.waitForStep('Connect (Optional)');
    register.stepper.waitForStepNotBusy();
    register.stepper.waitUntilCanNext('Finish');
    expect(register.stepper.canNext()).toBeTruthy();
    register.stepper.next();

    expect(register.isRegisterDialog()).toBeFalsy();

    // Check that we have one row
    expect(endpointsPage.isActivePage()).toBeTruthy();
    expect(endpointsPage.cards.isPresent()).toBeTruthy();

    expect(endpointsPage.cards.getCardCount()).toBe(1);
    endpointsPage.cards.getEndpointDataForEndpoint('MetricsTest', 'Metrics').then((data: EndpointMetadata) => {
      expect(data.name).toEqual('MetricsTest');
      expect(data.url).toEqual(spoofMetricsEndpoint);
      expect(data.connected).toBeFalsy();
    });
  });
});