custom_emojis_controller_spec.rb 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # frozen_string_literal: true
  2. require 'rails_helper'
  3. describe Admin::CustomEmojisController do
  4. render_views
  5. let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
  6. before do
  7. sign_in user, scope: :user
  8. end
  9. describe 'GET #index' do
  10. subject { get :index }
  11. before do
  12. Fabricate(:custom_emoji)
  13. end
  14. it 'renders index page' do
  15. expect(subject).to have_http_status 200
  16. expect(subject).to render_template :index
  17. end
  18. end
  19. describe 'GET #new' do
  20. subject { get :new }
  21. it 'renders new page' do
  22. expect(subject).to have_http_status 200
  23. expect(subject).to render_template :new
  24. end
  25. end
  26. describe 'POST #create' do
  27. subject { post :create, params: { custom_emoji: params } }
  28. let(:image) { fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'emojo.png'), 'image/png') }
  29. context 'when parameter is valid' do
  30. let(:params) { { shortcode: 'test', image: image } }
  31. it 'creates custom emoji' do
  32. expect { subject }.to change(CustomEmoji, :count).by(1)
  33. end
  34. end
  35. context 'when parameter is invalid' do
  36. let(:params) { { shortcode: 't', image: image } }
  37. it 'renders new' do
  38. expect(subject).to render_template :new
  39. end
  40. end
  41. end
  42. end