У нас есть приложение Spring Boot, которое использует службу RDS для хранения данных (в частности, PostgreSQL, VPC + частная подсеть) и Cognito для аутентификации пользователя. Весь этот джаз разворачивается в автоматизации (Jenkins + CloudFormation). Теперь у нас есть несколько тестов end2end, проверяющих, живо ли приложение. Вопрос в том, стоит ли нам идти дальше и пытаться протестировать функционал, требуя авторизации какого-нибудь тестового пользователя. Лично я бы предпочел, чтобы это было проверено, но есть некоторые препятствия, к которым я не знаю, как подойти.
Обычно при тестировании e2e вы хотели бы иметь чистую БД в начале каждого теста (или группы тестов) с похожими предварительными условиями. Для этого вы применяете снапшот с желаемым состоянием БД или просто удаляете все таблицы.
Можно ли это сделать на АРМ (БД недоступна публично)? Должен ли я использовать команду RestoreDBInstanceFromDBSnapshot для этого или есть другие способы сделать это? Как предотвратить случай, когда схема БД изменилась, а мы все равно восстанавливаемся из старого снапшота?
У нас могут быть специальные конечные точки только для тестовой среды, но это не очень удобно, потому что портит код.