mercury_editor-2.0.x-dev/tests/cypress/cypress/e2e/mercury-editor/content-translations.cy.js

tests/cypress/cypress/e2e/mercury-editor/content-translations.cy.js
describe('Mercury Editor Content Translations e2e tests.', () => {
  beforeEach(() => {
    cy.loginUserByUid(1);
  });

  before(() => {
    // Install the Mercury Editor test module.
    cy.drush('en mercury_editor_translations_test');
    // Clear the cache.
    cy.drush('cr');
    // Give us a taller viewport to work with.
    cy.viewport(1000, 800);
  });

  after(() => {
    cy.drush('pmu mercury_editor_translations_test');
    cy.drush('cr');
  });
  /* eslint-disable max-nested-callbacks */
  it('tests asymmetric translations with Mercury Editor', () => {
    cy.drush('mercury_editor_translations_test:asym-setup');

    cy.visit('/node/add/me_test_ct');
    cy.meAddComponent('me_test_section');
    cy.meChooseLayout('layout_twocol');
    cy.meSaveComponent().then((section) => {
      cy.meAddComponent('me_test_text', {
        region: 'first',
        section,
      });
      cy.meSetCKEditor5Value('field_me_test_text', 'Left (EN)');
      cy.meSaveComponent().then((component) => {
        cy.iframe('#me-preview').find(component).should('contain', 'Left (EN)');
      });

      cy.meSelectComponent(section.attr('data-uuid'));
      cy.meAddComponent('me_test_text', {
        region: 'second',
        section,
      });
      cy.meSetCKEditor5Value('field_me_test_text', 'Right (EN)');
      cy.meSaveComponent().then((component) => {
        cy.iframe('#me-preview')
          .find(component)
          .should('contain', 'Right (EN)');
      });
    });
    cy.meSavePage();
    cy.meExitEditor();

    cy.url().then((url) => {
      const nid = url.match(/node\/(\d+)/)[1];
      cy.visit(`/node/${nid}/translations`);
    });
    cy.get('a[hreflang="es"]').click();

    cy.meFindComponent(2).then(() => {
      cy.meSetCKEditor5Value('field_me_test_text', 'Left (ES)');
    });
    cy.meFindComponent(3).then(() => {
      cy.meSetCKEditor5Value('field_me_test_text', 'Right (ES)');
    });
    cy.meFindComponent(1).then((component) => {
      cy.meAddComponent('me_test_text', {
        region: 'bottom',
        section: component,
      });
      cy.meSetCKEditor5Value('field_me_test_text', 'Footer Component (ES)');
      cy.meSaveComponent().then((newComponent) => {
        cy.iframe('#me-preview')
          .find(newComponent)
          .should('contain', 'Footer Component (ES)');
      });
    });

    cy.meSavePage();
    cy.meExitEditor();

    cy.url().then((url) => {
      const nid = url.match(/node\/(\d+)/)[1];
      cy.visit(`/node/${nid}/translations`);
    });
    cy.get('a[hreflang="de"]').click();

    cy.meFindComponent(1).then((component) => {
      cy.meDeleteComponent(component);
      cy.meAddComponent('me_test_text');
      cy.meSetCKEditor5Value('field_me_test_text', 'Content Component (DE)');
      cy.meSaveComponent();
    });
    cy.meSavePage();
    cy.meExitEditor();

    cy.url().then((url) => {
      const nid = url.match(/node\/(\d+)/)[1];

      cy.visit(`/node/${nid}`);
      cy.get('html').should('contain', 'Left (EN)');
      cy.get('html').should('contain', 'Right (EN)');
      cy.get('html').should('contain', 'Paragraph Language: en');

      cy.visit(`/es/node/${nid}`);
      cy.get('html').should('contain', 'Left (ES)');
      cy.get('html').should('contain', 'Right (ES)');
      cy.get('html').should('contain', 'Footer Component (ES)');
      cy.get('html').should('contain', 'Paragraph Language: es');

      cy.visit(`/de/node/${nid}`);
      cy.get('html').should('contain', 'Content Component (DE)');
      cy.get('html').should('contain', 'Paragraph Language: de');

      cy.visit(`/node/${nid}/delete`);
      cy.get('form.confirmation #edit-submit').click();
    });
  });

  it('tests exit redirection with translations and unpublished draft', () => {
    cy.drush('en mercury_editor_content_moderation_test');
    cy.visit('/node/add/me_test_ct');
    cy.get('[name="moderation_state[0][state]"]').select('Published');
    cy.meSavePage();
    cy.meExitEditor();
    cy.url().then((url) => {
      const nid = url.match(/node\/(\d+)/)[1];
      cy.visit(`/node/${nid}/translations`);
    });
    cy.get('a[hreflang="es"]').click();
    cy.get('[name="moderation_state[0][state]"]').select('draft');
    cy.meSavePage();
    cy.meExitEditor();
    cy.contains(/Access denied/i).should('not.exist');
  });

  it('tests symmetric translations with Mercury Editor', () => {
    cy.drush('mercury_editor_translations_test:sym-setup');

    cy.visit('/node/add/me_test_ct');
    cy.meAddComponent('me_test_text');
    cy.meSetCKEditor5Value('field_me_test_text', 'Content (EN)');
    cy.meSaveComponent();
    cy.meSavePage();
    cy.meExitEditor();

    cy.url().then((url) => {
      const nid = url.match(/node\/(\d+)/)[1];
      cy.visit(`/node/${nid}/translations`);
    });
    cy.get('a[hreflang="es"]').click();

    cy.meFindComponent(1).then(() => {
      cy.meSetCKEditor5Value('field_me_test_text', 'Content (ES)').then(() => {
        cy.meSavePage();
        cy.meExitEditor();
      });
    });

    cy.url().then((url) => {
      const nid = url.match(/node\/(\d+)/)[1];
      cy.visit(`/node/${nid}`);
      cy.get('html').should('contain', 'Content (EN)');
      cy.get('div.me-test-paragraph-id')
        .invoke('text')
        .then((englishId) => {
          cy.visit(`/es/node/${nid}`);
          cy.get('div.me-test-paragraph-id')
            .invoke('text')
            .then((spanishId) => {
              expect(spanishId).to.equal(englishId);
              cy.get('html').should('contain', 'Content (ES)');
            });
        });
    });
  });
});

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc