/
Dmitry-F
/
cbt_tool
Обзор
Документация
Войти
/
Dmitry-F
/
cbt_tool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
python-ml-service
test/db_task_test.rb
34 строки
1 KB
Dmitriy-Filatov
Рефакторинг БД (bigint, индексы), внедрение Minitest и очистка db:clean_all
15 мар 2026, 03:53
15 мар 2026, 03:53
0b48991
Код
Авторство
О чём код?
require "test_helper" require "rake" class DbTaskTest < ActiveSupport::TestCase def setup # Загружаем задачи, если они ещё не в памяти Rails.application.load_tasks if Rake::Task.tasks.empty? # Сбрасываем состояние задач, чтобы их можно было запускать повторно Rake::Task["db:seed"].reenable Rake::Task["db:clean_all"].reenable # Создаем временный мусор перед тестом Therapist.create!(name: "Мусор", email: "trash@test.com", password: "password123") end test "clean_all реально чистит и восстанавливает Анну" do # Убеждаемся, что в базе есть хоть кто-то перед чисткой assert Therapist.count > 0 # Эмулируем ввод 'YES' для скрипта $stdin = StringIO.new("YES\n") # ЗАПУСК ТАСКА Rake::Task["db:clean_all"].invoke # ПРОВЕРКА РЕЗУЛЬТАТА: Должна остаться только 1 Анна (из сидов) assert_equal 1, Therapist.count, "Ошибка: в базе не 1 терапевт после очистки и сидов" assert_equal "Анна", Therapist.first.name assert_equal 1, Therapist.first.id, "ID не сбросился до 1" ensure $stdin = STDIN end end