Size: a a a

NestJS — русскоязычное сообщество

2020 March 08

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Это не то, на каждую версию свой сервис через мултипрвайдинг они все решаются не зависимо, в каждом есть номер и все от одного абстрактно го класса, и есть сервис который может дернуть по версии необходимый инстанс, он находит в массиве провайдеров нужный сервис по номеру

В анг такое я пилил легко, а тут сразу уперся что такого нет
источник

BK

Bogdan Korenkov in NestJS — русскоязычное сообщество
доброе утро. поздравляю женскую часть нашего сообщества и пользуясь моментом хочу узнать как вы тестируете с подключением репозитория. на данный момент у меня все работает, но я хочу чтобы тесты запускались асинхронно и каждый test suit имел свою in memory sqlite db. как мне лучше это сделать, я так понимаю мне в beforeAll как-то создавать отдельную БД?
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Bogdan Korenkov
доброе утро. поздравляю женскую часть нашего сообщества и пользуясь моментом хочу узнать как вы тестируете с подключением репозитория. на данный момент у меня все работает, но я хочу чтобы тесты запускались асинхронно и каждый test suit имел свою in memory sqlite db. как мне лучше это сделать, я так понимаю мне в beforeAll как-то создавать отдельную БД?
Да, при запуске тестов поднимал бд гнал на неё миграции девелоп и фичи, птом прогонял тесты, после тестов дропал бд, так делал когда sqlite на деве был и в прод пг, ща тока пг, такие тесты не пишу, это через е2е проверяю в доккере
источник

KA

Kulagin Alex in NestJS — русскоязычное сообщество
ILshat Khamitov
Да, при запуске тестов поднимал бд гнал на неё миграции девелоп и фичи, птом прогонял тесты, после тестов дропал бд, так делал когда sqlite на деве был и в прод пг, ща тока пг, такие тесты не пишу, это через е2е проверяю в доккере
А бд дропаешь/поднимаешь миграции на каждый тест?
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Не, стартую тестовую пг в доккер, гоню тесты, стопорю все
источник

KA

Kulagin Alex in NestJS — русскоязычное сообщество
А на то, что результаты одного ткста могут влиять на другие забил?
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Каждый тест себе данные создаёт нужные и дропает их
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Просто всякие словари независимо от тестов накатываются в бд
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
ILshat Khamitov
Каждый тест себе данные создаёт нужные и дропает их
Как он определяет, какие данные нужно дропнуть, и уверяется, что точно нет ещё побочных данных созданных?
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
ILshat Khamitov
Да, при запуске тестов поднимал бд гнал на неё миграции девелоп и фичи, птом прогонял тесты, после тестов дропал бд, так делал когда sqlite на деве был и в прод пг, ща тока пг, такие тесты не пишу, это через е2е проверяю в доккере
Где-то ходили слухи, что в постгре можно тоже ин-мемори запускать БД...
источник

AK

Alex Konstantinov in NestJS — русскоязычное сообщество
Grigorii K. Shartsev
Где-то ходили слухи, что в постгре можно тоже ин-мемори запускать БД...
Это невозможно
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Я делаю полные миграции и роллбек в каждом тесте, но всё на одной БД, в итоге тесты запускаю только последовательно (e2e)
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
By the way, никто тут e2e  на gateway не писал?)
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Grigorii K. Shartsev
Как он определяет, какие данные нужно дропнуть, и уверяется, что точно нет ещё побочных данных созданных?
Ну сам описываешь все, я то один такое пилю, если в команде делать, то скорее всего могут быть побочные данные и тогда придётся на каждый тест видима поднимать бд, чуть дольше будет работать конечно
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Как вариант можно дамп бд делать до запуска тестов, и птом его обратно возвращать, если тесты синхронно работают
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
ILshat Khamitov
Как вариант можно дамп бд делать до запуска тестов, и птом его обратно возвращать, если тесты синхронно работают
Думаю, этот вариант предпочтительный, когда миграций уже стало дофига, и быстрее поднять "как есть", чем последовательно все изменения.
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Ролбак не делаю кстати, с ними сложно, там по фк и каскаду если чет есть, то фиг ревертнешь
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Ролбак даёт ложную надежду и отнимает время, раньше писал птом данные похерил как то, больше их не пишу и всем не советую)
источник

AK

Alexander Kazantsev in NestJS — русскоязычное сообщество
ILshat Khamitov
Ролбак даёт ложную надежду и отнимает время, раньше писал птом данные похерил как то, больше их не пишу и всем не советую)
Поддерживаю на 200%
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
ILshat Khamitov
Ролбак даёт ложную надежду и отнимает время, раньше писал птом данные похерил как то, больше их не пишу и всем не советую)
Я делал роллап, потому что в кнексе за одну строчку можно из вызвать, а дропать таблицы только сырым запросом и перечислением 😄
источник