Size: a a a

2020 October 29

AP

Alexander Popov in JS for testing
господа, а как в тс импортировать модуль, и кусочек из модуля?
источник

AP

Alexander Popov in JS for testing
import cheburek, { myasko } from 'cheburek'
источник

D

Dement in JS for testing
Wdio. Всем привет. Задача вбить в локал сторэдж значения. Команда выполняется в beforeEach.

module.exports = class Commands {
   loginViaAPI () {
       browser.call(() => {
           return new Promise((resolve,reject)=> {
               const reqHost= mainSel.host;
               const reqBody = mainSel.bodyObj;
               console.log('HOST_______' + reqHost  + '  BODY________' + JSON.stringify(reqBody))
               chai.request(reqHost)
               .post('/web_api/auth/sign_in')
               .send(reqBody)
               .end(function (err,resp) {
                   browser.execute((key, value) => {
                       return this.localStorage.setItem(key, value);
                       }, 'client', resp.header.client)
                   if(err) {
                       return reject(err)
                   }
                   resolve(resp)
               })
           })
})
}}


Но не могу понять почему команда выполняется уже после того, как в первом it происходит редирект. Вот describe
describe('Centers Page', () => {
   beforeEach(() => {
       commandsLogin.loginViaAPI()
     });
   it('Create Center', () => {
       URL.open(path, '')
       browser.waiter(Sel.addBtn)
   });
});

Консоль на скрине. Отображается как будто два раза выполняется, но на самом деле только во второй раз срабатывает и в локал сторэйдж появляются значения
источник

D

Dement in JS for testing
источник

D

Dement in JS for testing
помогите, пожалуйста🙏🏻
источник

BO

Boris Osipov in JS for testing
Dement
Wdio. Всем привет. Задача вбить в локал сторэдж значения. Команда выполняется в beforeEach.

module.exports = class Commands {
   loginViaAPI () {
       browser.call(() => {
           return new Promise((resolve,reject)=> {
               const reqHost= mainSel.host;
               const reqBody = mainSel.bodyObj;
               console.log('HOST_______' + reqHost  + '  BODY________' + JSON.stringify(reqBody))
               chai.request(reqHost)
               .post('/web_api/auth/sign_in')
               .send(reqBody)
               .end(function (err,resp) {
                   browser.execute((key, value) => {
                       return this.localStorage.setItem(key, value);
                       }, 'client', resp.header.client)
                   if(err) {
                       return reject(err)
                   }
                   resolve(resp)
               })
           })
})
}}


Но не могу понять почему команда выполняется уже после того, как в первом it происходит редирект. Вот describe
describe('Centers Page', () => {
   beforeEach(() => {
       commandsLogin.loginViaAPI()
     });
   it('Create Center', () => {
       URL.open(path, '')
       browser.waiter(Sel.addBtn)
   });
});

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

BO

Boris Osipov in JS for testing
сделай через промис,
.send(reqBody)
.then (res) => {})
источник

S

Sergei in JS for testing
Boris Osipov
ты в end передаешь колбек - он будет выполнен асинхронно
так в колбеке же и резолвится промис
источник

BO

Boris Osipov in JS for testing
Sergei
так в колбеке же и резолвится промис
справедливо, не заметил этого
источник

D

Dement in JS for testing
не подскажите обходной путь какой-нибудь, чтобы в beforeEach задавать параметры в локал сторэйдж?
источник

BO

Boris Osipov in JS for testing
Dement
не подскажите обходной путь какой-нибудь, чтобы в beforeEach задавать параметры в локал сторэйдж?
мне не очень понятно как оно вообще у тебя работает. ты сначала ставишь localStorage, а потом сайт открываешь. localStorage как бы на домен вроде...
источник

OK

Oleksandr Khotemskyi in JS for testing
Alexander Popov
import cheburek, { myasko } from 'cheburek'
import * as cheburek from 'cheburek'
import { myasko } from 'cheburek'

Думаю так
источник

AP

Alexander Popov in JS for testing
Oleksandr Khotemskyi
import * as cheburek from 'cheburek'
import { myasko } from 'cheburek'

Думаю так
import axios, { AxiosError } from 'axios';
источник

AP

Alexander Popov in JS for testing
отакое мне tsserver сгенерил
источник

OK

Oleksandr Khotemskyi in JS for testing
Alexander Popov
import axios, { AxiosError } from 'axios';
Ого, работает?
источник

VG

Vitalii Grygoruk in JS for testing
Boris Osipov
мне не очень понятно как оно вообще у тебя работает. ты сначала ставишь localStorage, а потом сайт открываешь. localStorage как бы на домен вроде...
+++
источник

AP

Alexander Popov in JS for testing
Oleksandr Khotemskyi
Ого, работает?
ага
источник

S

Sergei in JS for testing
Oleksandr Khotemskyi
Ого, работает?
любопытно почему не должно :) тем более что это даже не ts, a js-специфик https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
источник

D

Dement in JS for testing
Boris Osipov
мне не очень понятно как оно вообще у тебя работает. ты сначала ставишь localStorage, а потом сайт открываешь. localStorage как бы на домен вроде...
сделал сначала переход на страницу, потом localStorage, а потом начинается тест. После начала теста он опять начинает выполнять команды заполнения localstorage почему-то
источник

OK

Oleksandr Khotemskyi in JS for testing
Dement
сделал сначала переход на страницу, потом localStorage, а потом начинается тест. После начала теста он опять начинает выполнять команды заполнения localstorage почему-то
там другая команда

открывается localhost:3000/


А потом

localhost:3000/centers
источник