# frozen_string_literal: true describe Topic, type: :model do fab!(:category_with_wizard) do Fabricate(:category, custom_fields: { create_topic_wizard: 'true' }) end fab!(:category_without_wizard) { Fabricate(:category) } fab!(:user) { Fabricate(:user, refresh_auto_groups: true) } let(:valid_attrs) { Fabricate.attributes_for(:topic) } context 'with a create_topic_wizard custom field in the category' do it 'will not allow creating a topic directly' do expect do TopicCreator.create( user, Guardian.new(user), valid_attrs.merge( title: 'A valid and sufficiently long title for testing', category: category_with_wizard.id, raw: 'hello this is a test topic with category with custom fields' ) ) end.to raise_error( Discourse::InvalidParameters, 'Category not allowed for topic creation.' ) end end context 'without a create_topic_wizard custom field in the category' do it 'will allow creating a topic directly' do expect do TopicCreator.create( user, Guardian.new(user), valid_attrs.merge( category: category_without_wizard.id, title: 'Another valid and sufficiently long title for testing', raw: 'This is the body of a valid topic' ) ) end.not_to raise_error end end end