Перенос переменных между тестами API в JS - PullRequest
0 голосов
/ 30 августа 2018

У меня следующая проблема. Я начинаю создавать e2e api тесты цель первого теста - получить токен неавторизованного пользователя, значение использования второго теста из первого теста в заголовке метода и вернуть токен для авторизованного пользователя - в конце концов, второй токен будет использоваться в дальнейших тестах. Как сохранить значение токенов в переменной и пройти через тесты?

Я новичок в JS, и теперь я получил 'ReferenceError: auth_token не определен'

const chai = require('chai');
const request = require('request-promise-native');
const mocha = require('mocha');
const config = require('../config');

const assert = chai.assert;
//const describe = mocha.describe;
//const it = mocha.it;
// request.debug = true;

describe('0_auth', () => {
  it('should return token for unauthorized user', async () => {
  const result = await request({
  headers: config.headers,
  url: `${config.url}/rest/v1/auth/get-token`,
  method: "POST",
  json: {
      "deviceUuidSource": "DEVICE",
      "source" : "KIOSK",
      "deviceUuid" : "uniquedeviceuuid"
  }
});
   assert.isNotNull(result);
   assert.property(result, 'token');
   var auth_token=result.token;
   console.log(auth_token)
   }).timeout(15000);


 it('should return token for authorized user', async () => {
 const result = await request({
  headers: Object.assign(config.headers, { 'Authorization': 'Bearer '+auth_token }),
  url: `${config.url}/rest/v1/auth/with-password`,
  method: "POST",
  json: {
    "email" : "dulexun3hvw0@10minut.xyz",
    "password" : "Test123"
     }
   });
   assert.isNotNull(result);
   assert.property(result, 'token');
   assert.property(result, 'user');
   console.log('token:', result.token);
 }).timeout(15000);
 });

в дальнейшем тесте я хочу передать токен Bearer в поле авторизации в другом классе config.js

config.headers = {

 'User-Agent': 'WOR API Tester', // android
  Source: 'MOBILE',
 'Accept-Language': 'EN',
 Authorization:'Bearer '+auth_token;


};
module.exports = config;

1 Ответ

0 голосов
/ 31 августа 2018

Хорошо, получение носителя для следующего теста уже работает, но у меня есть один вопрос. Почему канал-носитель сохранен в auth_token, работающем в других тестовых классах, кроме класса ниже, здесь у нас есть строка:

headers: Object.assign(config.headers, { 'Authorization': 'Bearer '+auth_token }),

в других классах у меня только следующая строка

headers: config.headers,

и нет информации об использовании auth_token при авторизации, в config.js также нет информации о токене

const chai = require('chai');
const request = require('request-promise-native');
const mocha = require('mocha');
const config = require('../config');

const assert = chai.assert;
//const describe = mocha.describe;
//const it = mocha.it;
// request.debug = true;

describe('0_auth', () => {
  var auth_token = ''
  it('should return token for unauthorized user', async () => {

const result = await request({
  headers: config.headers,
  url: `${config.url}/rest/v1/auth/get-token`,
  method: "POST",
  json: {
      "deviceUuidSource": "DEVICE",
      "source" : "KIOSK",
      "deviceUuid" : "uniquedeviceuuid"
     }
   });
   assert.isNotNull(result);
   assert.property(result, 'token');
   auth_token=result.token;
}).timeout(15000);


 it('should return token for authorized user', async () => {
const result = await request({
  headers: Object.assign(config.headers, { 'Authorization': 'Bearer '+auth_token }),
  url: `${config.url}/rest/v1/auth/with-password`,
  method: "POST",
  json: {
    "email" : "dulexun3hvw0@10minut.xyz",
    "password" : "Test123"
     }
   });
assert.isNotNull(result);
assert.property(result, 'token');
assert.property(result, 'user');
 }).timeout(15000);
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...