Skip to content
Snippets Groups Projects
create-channel.cy.js 5.69 KiB
Newer Older
/// <reference types="Cypress" />
/* globals cy, expect */

context('Create Channel Browser Testing', () => {
  before(() => {
    cy.clearLocalStorageSnapshot();
    cy.clearLocalStorage({ domain: null });
    cy.clearCookies({ domain: null });
  });
  beforeEach(() => cy.restoreLocalStorage());
  afterEach(() => cy.saveLocalStorage());
  it('should visit user login screen', () => cy.userLogin());
  it('should login', () => cy.login());
  describe('Channel Creation process #1', () => {
    let channelName = 'Test Channel ',
        description = 'Test Description ',
        subtitle = 'Test Subtitle ';
    it('should visit the channel creation screen', () => {
      cy.visit('/admin-circles-create');
      cy.location().should((loc) => {
        expect(loc.pathname).to.eq('/admin-circles-create');
    it('should enter correct channel data', () => {
      cy.randomNum().then(num => {
        channelName += num;
        description += num;
        cy.get('#admin-circles-create input[name="name"]').clear().type(channelName);
        cy.get('#admin-circles-create input[name="name"]').should('have.value', channelName);
        cy.get('#admin-circles-create input[name="subtitle"]').clear().type(subtitle);
        cy.get('#admin-circles-create input[name="subtitle"]').should('have.value', subtitle);
        cy.get('#admin-circles-create [name="description"] [contenteditable="true"]').clear().type(description);
        cy.get('#admin-circles-create [name="description"] [contenteditable="true"]').should('have.value', description);
      });
    });
    it('should click on create channel button', () => {
      cy.get('#admin-circles-create input[type="submit"]').click();
    });
    it('should land on channels list screen', () => {
      cy.location().should((loc) => {
        expect(loc.pathname).to.eq('/admin-circles');
      });
    });
    it('should land newly created channel on channels list screen', () => {
      cy.contains('solid-display-value[name="circle.name"]', channelName).should("exist");
      cy.fixture('admin.json').then(admin => {
        cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
      });
    });
  });
  describe('Channel Creation process #2', () => {
    let channelName = 'Test Channel ',
        description = 'Test Description ',
        subtitle = 'Test Subtitle ';
    it('should visit the channel creation screen', () => {
      cy.visit('/admin-circles-create');
      cy.location().should((loc) => {
        expect(loc.pathname).to.eq('/admin-circles-create');
    it('should enter correct channel data', () => {
      cy.randomNum().then(num => {
        channelName += num;
        description += num;
        cy.get('#admin-circles-create input[name="name"]').clear().type(channelName);
        cy.get('#admin-circles-create input[name="name"]').should('have.value', channelName);
        cy.get('#admin-circles-create input[name="subtitle"]').clear().type(subtitle);
        cy.get('#admin-circles-create input[name="subtitle"]').should('have.value', subtitle);
        cy.get('#admin-circles-create [name="description"] [contenteditable="true"]').clear().type(description);
        cy.get('#admin-circles-create [name="description"] [contenteditable="true"]').should('have.value', description);
    });
    it('should click on create channel button', () => {
      cy.get('#admin-circles-create input[type="submit"]').click();
    it('should land on channels list screen', () => {
      cy.location().should((loc) => {
        expect(loc.pathname).to.eq('/admin-circles');
      });
    });
    it('should land newly created channel on channels list screen', () => {
      cy.contains('solid-display-value[name="circle.name"]', channelName).should("exist");
      cy.fixture('admin.json').then(admin => {
        cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
      });
    });
  });
  describe('Channel Creation process #3', () => {
    let channelName = 'Test Channel ',
        description = 'Test Description ',
        subtitle = 'Test Subtitle ';
    it('should visit the channel creation screen', () => {
      cy.visit('/admin-circles-create');
      cy.location().should((loc) => {
        expect(loc.pathname).to.eq('/admin-circles-create');
    it('should enter correct channel data', () => {
      cy.randomNum().then(num => {
        channelName += num;
        description += num;
        cy.get('#admin-circles-create input[name="name"]').clear().type(channelName);
        cy.get('#admin-circles-create input[name="name"]').should('have.value', channelName);
        cy.get('#admin-circles-create input[name="subtitle"]').clear().type(subtitle);
        cy.get('#admin-circles-create input[name="subtitle"]').should('have.value', subtitle);
        cy.get('#admin-circles-create [name="description"] [contenteditable="true"]').clear().type(description);
        cy.get('#admin-circles-create [name="description"] [contenteditable="true"]').should('have.value', description);
    });
    it('should click on create channel button', () => {
      cy.get('#admin-circles-create input[type="submit"]').click();
    });
    it('should land on channels list screen', () => {
      cy.location().should((loc) => {
        expect(loc.pathname).to.eq('/admin-circles');
      });
    });
    it('should land newly created channel on channels list screen', () => {
      cy.contains('solid-display-value[name="circle.name"]', channelName).should("exist");
      cy.fixture('admin.json').then(admin => {
        cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
      });
    });
  });
});