diff --git a/spec/dummy/app/admin/posts.rb b/spec/dummy/app/admin/posts.rb index 3a75931..6f55d22 100644 --- a/spec/dummy/app/admin/posts.rb +++ b/spec/dummy/app/admin/posts.rb @@ -1,4 +1,49 @@ # frozen_string_literal: true ActiveAdmin.register Post do + permit_params :author_id, :title, :description, :category, :dt, :position, :published, tag_ids: [] + + index do + selectable_column + id_column + column :title + column :author + column :published + column :created_at + actions + end + + show do + attributes_table do + row :author + row :title + row :description + row :category + row :dt + row :position + row :published + row :tags + row :created_at + row :updated_at + end + active_admin_comments + end + + form do |f| + f.inputs 'Post' do + f.input :author + f.input :title + f.input :description, as: :quill_editor + f.input :category + f.input :dt + f.input :position + f.input :published + end + + f.inputs 'Tags' do + f.input :tags + end + + f.actions + end end diff --git a/spec/dummy/app/assets/javascripts/active_admin.js b/spec/dummy/app/assets/javascripts/active_admin.js index d2b66c5..e55b872 100644 --- a/spec/dummy/app/assets/javascripts/active_admin.js +++ b/spec/dummy/app/assets/javascripts/active_admin.js @@ -1 +1,4 @@ //= require active_admin/base + +//= require activeadmin/quill_editor/quill +//= require activeadmin/quill_editor_input diff --git a/spec/dummy/app/assets/stylesheets/active_admin.scss b/spec/dummy/app/assets/stylesheets/active_admin.scss index d3c61f3..dd9ecf3 100644 --- a/spec/dummy/app/assets/stylesheets/active_admin.scss +++ b/spec/dummy/app/assets/stylesheets/active_admin.scss @@ -8,8 +8,10 @@ // $sidebar-width: 242px; // Active Admin's got SASS! -@import "active_admin/mixins"; -@import "active_admin/base"; +@import 'active_admin/mixins'; +@import 'active_admin/base'; + +@import 'activeadmin/quill_editor_input'; // Overriding any non-variable SASS must be done after the fact. // For example, to change the default status-tag color: diff --git a/spec/system/quill_editor_spec.rb b/spec/system/quill_editor_spec.rb new file mode 100644 index 0000000..7a338a6 --- /dev/null +++ b/spec/system/quill_editor_spec.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +RSpec.describe 'Quill editor', type: :system do + let(:author) { Author.create!(email: 'some_email@example.com', name: 'John Doe', age: 30) } + let(:post) { Post.create!(title: 'Test', author: author, description: 'Some content...') } + + before do + post + end + + after do + post.destroy + author.destroy + end + + context 'with a Quill editor' do + it 'updates some HTML content' do + visit "/admin/posts/#{post.id}/edit" + + expect(page).to have_css('#post_description_input .ql-editor', text: 'Some content...') + find('#post_description_input .ql-editor').base.send_keys('more text') + + find('[type="submit"]').click + expect(page).to have_content('was successfully updated') + expect(post.reload.description).to eq '

Some content...more text

' + end + end +end