Я разрабатываю на основе стабильной версии и только что обнаружил, что больше не могу запускать бэкенд-тесты. Это касается не только моих собственных тестов, но и тестов стандартных плагинов. Все они завершаются с одной и той же ошибкой.
$ bin/rspec plugins/discourse-subscriptions/
Обнаружен путь к спецификациям плагина, устанавливаю LOAD_PLUGINS в 1
Произошла ошибка при загрузке rails_helper.
Failure/Error: SeedFu.seed
RuntimeError:
Недекларированный тип атрибута для enum 'chat_email_frequency' в UserOption. Enums должны поддерживаться столбцом базы данных или объявляться с явным типом через `attribute`.
# ./spec/rails_helper.rb:139:in `<top (required)>'
Примеров не найдено.
Завершено за 0.00004 секунд (файлы загружались 3.45 секунды)
0 примеров, 0 сбоев, 1 ошибка произошла вне рамок примеров
Прошло уже некоторое время с тех пор, как я запускал тесты локально, так как был занят фронтенд-разработкой для своего нового плагина. Поэтому я не заметил, когда это сломалось. У меня нет этой проблемы, когда я запускаю произвольный тест из основного кода Discourse.
Согласно ошибке, в тестовой базе данных отсутствует столбец. При проверке это действительно так. Я уже выполнил RAILS_ENV=test bin/rails db:migrate:reset, чтобы пересоздать тестовую базу данных, но результат тот же.
Похоже, что некоторые миграции для плагина chat не были включены. Но я не могу понять, почему.
В базе данных для разработки эти столбцы присутствуют.