test_helpers-1.0.0-alpha6/tests/modules/test_helpers_functional/tests/src/Nightwatch/Tests/userApiTests.js

tests/modules/test_helpers_functional/tests/src/Nightwatch/Tests/userApiTests.js
const getBeforeAfterFunctions = require('../Lib/getBeforeAfterFunctions');

/** A number to use in tests to randomize values. */
const seedNumber = 1000 + Math.floor(Math.random() * 8000);

module.exports = {
  ...getBeforeAfterFunctions(),

  // @covers tests/src/Nightwatch/Commands/thCreateUser.js
  'Test thCreateUser with a user by just name and log in': (browser) => {
    const name = `test_user_${seedNumber + 1}`;
    browser
      .thCreateUser({ name }, true)
      .drupalRelativeURL('/user')
      .assert.textContains('h1', name);
  },

  // @covers tests/src/Nightwatch/Commands/thCreateUser.js
  // @covers tests/src/Nightwatch/Commands/thLogin.js
  'Test thCreateUser with a user by just name and thLogin': (browser) => {
    const name = `test_user_${seedNumber + 2}`;
    browser
      .thCreateUser({ name })
      .thLogin(name)
      .drupalRelativeURL('/user')
      .assert.textContains('h1', name)
      .thLogin('admin')
      .drupalRelativeURL('/user')
      .assert.textContains('h1', 'admin')
      .thLogout()
      .drupalRelativeURL('/user')
      .assert.textContains('h1', 'Log in');
  },

  // @covers tests/src/Nightwatch/Commands/thCreateUser.js:thCreateUser
  'Test thCreateUser with a user by name and password': (browser) => {
    const name = `test_user_${seedNumber + 3}`;
    const password = `pass_${seedNumber + 3}`;
    browser
      .thCreateUser({ name, password })
      .drupalLogin({ name, password })
      .assert.textContains('h1', name);
  },

  // @covers tests/src/Nightwatch/Commands/thCreateUser.js:thCreateUser
  'Test thCreateUser with permissions': (browser) => {
    const name = `test_user_${seedNumber + 4}`;
    const permissions = ['access administration pages', 'administer users'];
    let userId;
    let customRole;
    let assignedPermissions;
    browser
      .thCreateUser({ name, permissions }, false, (result) => {
        browser.assert.equal('en', result.value.langcode[0].value);
        browser.assert.equal(1, result.value.roles.length);
      })
      .thLogin('admin', (result) => {
        browser.assert.equal('admin', result.value.name[0].value);
        browser.assert.equal(0, result.value.roles.length);
      })
      .drupalRelativeURL('/admin/people')
      .useXpath()
      .getAttribute(`//a[.='${name}']`, 'href', (result) => {
        userId = result.value.split('/').pop();
      })
      .useCss()
      .perform(() => {
        browser.drupalRelativeURL(`/user/${userId}/edit`);
      })
      .getAttribute(
        {
          selector: '[data-drupal-selector="edit-roles"] input:checked',
          index: 1,
        },
        'value',
        (result) => {
          customRole = result.value;
        },
      )
      .perform(() => {
        const getPermissions = (result) => {
          result.value.forEach((element) => {
            const elementId = element[Object.keys(element)[0]];
            browser.elementIdAttribute(elementId, 'name', (attributeResult) => {
              const permission = attributeResult.value.match(/\[(.*?)\]/)[1];
              assignedPermissions.push(permission);
            });
          });
        };
        assignedPermissions = [];
        browser
          .drupalRelativeURL(`/admin/people/permissions/${customRole}`)
          .elements(
            'css selector',
            'form.user-admin-permissions input:not(.dummy-checkbox):checked',
            (result) => {
              getPermissions(result);
            },
          );
      })
      .perform(() => {
        browser.assert.deepEqual(assignedPermissions, permissions);
      });
  },
};

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

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