Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чтение тестовых данных. (https://javascript.ru/forum/misc/84052-chtenie-testovykh-dannykh.html)

JaneGame 20.05.2022 19:02

Чтение тестовых данных.
 
Добрый день. Пишу тест с использованием playwrith. Задание почти решено, но не могу сделать так, чтобы мои тесты читали данные из файла.
Вот код:
const user = require('../user.js');

const { test, expect, chromium } = require('@playwright/test');

//

test('goodAutorisation', async ({page}) => {
  //const browser = chromium.launch({headless: false, slowMo: 5000});
  //const page = await browser.newPage();
  test.setTimeout(120000);
  await page.goto('https://netology.ru/?modal=sign_in', { timeout: 60000 });
  await page.pause();

  // Click [placeholder="Email"]
  await page.locator('[placeholder="Email"]').click();

  // Fill [placeholder="Email"]
  await page.locator('[placeholder="Email"]').fill(user.username);

  // Click [placeholder="Пароль"]
  await page.locator('[placeholder="Пароль"]').click();

  // Fill [placeholder="Пароль"]
  await page.locator('[placeholder="Пароль"]').fill(user.password);

  // Click [data-testid="login-submit-btn"]
  await Promise.all([
    page.waitForNavigation( /*{ url: 'https://netology.ru/profile' }*/),
    page.locator('[data-testid="login-submit-btn"]').click()
  ]);

  await expect().locator('[data-testid="menu-userface"] div');
  await browser.close();
});


Вот то, что стоит в файле:
const username = '123@mail.ru';
const password = '12345';


Пыталась вывести через функцию:
function username() {
   return '123@mail.ru';
 }


Через сетеры:
// let user = {
//   username : '123@mail.ru',
//   password: '12345',
  
//   get username() {
//     return `${this.username}`;  
//   },

//   set username(value) {
//     [this.username] = value.split(' ');
//   }
// };


Во всех случаях при запуске теста выводится
TypeError: Cannot read properties of undefined (reading 'username')
или
locator.fill: value: expected string, got undefined


Помогите, пожалуйста, разобраться!

Nexus 20.05.2022 20:30

Первая ошибка переводится примерно так: «Не удается прочитать свойства у undefined (читаю 'username')».
Ошибка связана с тем, что вы пытаетесь прочитать свойство «username» у undefined.

Вторая ошибка переводится как «Ожидалась строка, а получен undefined».
Т.е. метод «fill» класса «Locator» ожидал, что первым аргументом ему будет передана строка, а вы передали ему undefined.

Обе ошибки связаны с тем, что у вас, вероятно, не импортировались данные из файла user.js, т.е. в переменной user вместо каких-то данных содержится undefined.
Это в свою очередь связано с тем, что вы никак не экспортируете данные из файла user.js.

Попробуйте изменить содержимое файла user.js на это:
const username = '123@mail.ru';
const password = '12345';

module.exports = {
    username,
    password,
};


P.S. я плохо помню как устроен экспорт модулей в CommonJs, мог ошибиться.

JaneGame 21.05.2022 00:16

Спасибо огромнейшее! Тест наконец-то смог пойти дальше=)))


Часовой пояс GMT +3, время: 18:13.