discourse-assign/spec/requests/assign_controller_spec.rb

43 lines
1.1 KiB
Ruby

require 'rails_helper'
RSpec.describe DiscourseAssign::AssignController do
let(:user) { Fabricate(:admin) }
let(:post) { Fabricate(:post) }
let(:user2) { Fabricate(:active_user) }
context '#assign' do
it 'assigns topic to a user' do
sign_in(user)
put '/assign/assign.json', params: {
topic_id: post.topic_id, username: user2.username
}
expect(response.status).to eq(200)
expect(post.topic.reload.custom_fields['assigned_to_id']).to eq(user2.id.to_s)
end
it 'fails to assign topic to the user if its already assigned to the same user' do
sign_in(user)
put '/assign/assign.json', params: {
topic_id: post.topic_id, username: user2.username
}
expect(response.status).to eq(200)
expect(post.topic.reload.custom_fields['assigned_to_id']).to eq(user2.id.to_s)
put '/assign/assign.json', params: {
topic_id: post.topic_id, username: user2.username
}
expect(response.status).to eq(400)
expect(JSON.parse(response.body)['failed']).to eq(I18n.t('discourse_assign.already_assigned', username: user2.username))
end
end
end