Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 September 24

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
Питання. Є jest. В глобалсетап хочу заінсертати в базу деякі дані. А потім ці згенеровані ідшники юзати в тестах. В тестах також можуть створюватися нові рекорди. А по закіняеню хочу це все видалити по ідшникам. Як відомо кожний тест сьют це по суті сендбокс і память не шарится між ними. Питання: є якась можливість зашарити дані між всіма тестами?
источник

S

Serhii in NodeUA - JavaScript and Node.js in Ukraine
на якому етапі конкретно проблема?
источник

S

Serhii in NodeUA - JavaScript and Node.js in Ukraine
де треба видалити все в кінці?
источник

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
в global teardown
источник

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
Но проблема і в тому що як мені получити ІДшники в тестах  створені в global setup
источник

S

Serhii in NodeUA - JavaScript and Node.js in Ukraine
зроби запит до бази, витягни їх
источник

S

Serhii in NodeUA - JavaScript and Node.js in Ukraine
типу, select id from , і все.
источник

S

Serhii in NodeUA - JavaScript and Node.js in Ukraine
кароч, давай код
источник

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
Зараз розпишу все. Звісно я можу підняти чисту базу, зробити всі тести і дропнути її. Також варіант з in memory sqlite (но цей варіант мало підходить, так як хочу зробити тести максимально приближені до продакшена). Ідея така, що хочу зтянути бренчу дева і запустити тести. Тести ці не зовсім інтеграційні, а скоріше тест флов по бізнесу. Типу створюємо рекорд, фільтруємо і інші дії крок за кроком. Це дозволить мені впевнитися, що по бізнесу всі рекваєременти вірні зі сторони бекенду (фронт не інтересує), і додавання нової фічі нічого не брокає. Для цього я дамплю базу з деву і ресторю локально. Тому дроп кожного разу для мене оверкіл, так як це займатиме багато часу на рестор для кожного PR. І тому ідея запустити тести і видалити всі створені мною тестові дані. Але jest працює в сендбоксі і це бай дезайн. Тому в кінці тесту я не знаю що видаляти. Но деякі дані (юзери, ролі) мають бути створені раз для всіх тестів, і видаленні в кінці. Мені немає потреби створювати їх в кожному тесті окремо. Так ось якраз і проблема мати централізоване сховище для тимчасових данних
источник

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
e2e тести не цікавлять, так як я хочу перевірити що зі сторони АПІшок вся логіка вірна. А фронт мене вже мало цікавить
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
ORM говорили они, один раз написал и все работает говорили они. А то что при апе версии появляются новые опции, уходят старые и некоторые вещи начинают работать иначе? (сори, полыхнуло чутка)
источник

VK

Vlad Kolomoets in NodeUA - JavaScript and Node.js in Ukraine
Не нужно обновлять
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Не нужно ORM
источник

P

Plutoject in NodeUA - JavaScript and Node.js in Ukraine
semver? не стороник ORM
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Для підходу, який Ви описали, Вам потрібно бути на 100% впевненим, що Ви точно видаляєте все, що було створено під час тесту.

Краще, все-таки, дропати все і робити restore/seed перед тестами
источник

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
Та я згоден що краще дропати все. Но на це йде кучу часу. Банально створити базу, розвернути дамп і переключити всі мікросервіси на нову базу в моєму випадку складніше чим в існуючій локальній тупо дропнути рекорди. А причина проста. Все воно крутится в докер контейнерах с прокинутим envдля конекта. А це значить повний рестарт всього
источник

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
Ну і якщо я навіть щось і не видалю на 100% то не страшно. База то локальна.
источник

Г

Георгий in NodeUA - JavaScript and Node.js in Ukraine
Друзья, добрый день! Подскажите плиз новичку, а вообще зачем используют BPM движки типа Camunda? Чего они дают такого?
источник

T

Taras in NodeUA - JavaScript and Node.js in Ukraine
Звісно краще все підняти ізольовано з in memory db на tmpfs. Но банально час потрачений на це не окупить сеюе
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in NodeUA - JavaScript and Node.js in Ukraine
Вот это лучшая идея имхо
источник