зеркало из
https://github.com/rs-pro/activeadmin-quill_editor.git
synced 2026-08-28 15:36:17 +03:00
Minor specs changes
Этот коммит содержится в:
35
bin/rails
35
bin/rails
@@ -1,29 +1,16 @@
|
||||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
# This command will automatically be run when you run "rails" with Rails gems
|
||||
# installed from the root of your application.
|
||||
|
||||
#
|
||||
# This file was generated by Bundler.
|
||||
#
|
||||
# The application 'rails' is installed as part of a gem, and
|
||||
# this file is here to facilitate running it.
|
||||
#
|
||||
ENV['RAILS_ENV'] ||= 'test'
|
||||
|
||||
require "pathname"
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
||||
Pathname.new(__FILE__).realpath)
|
||||
ENGINE_ROOT = File.expand_path('..', __dir__)
|
||||
ENGINE_PATH = File.expand_path('../lib/activeadmin/quill_editor/engine', __dir__)
|
||||
APP_PATH = File.expand_path('../spec/dummy/config/application', __dir__)
|
||||
|
||||
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
||||
# Set up gems listed in the Gemfile.
|
||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
||||
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
|
||||
|
||||
if File.file?(bundle_binstub)
|
||||
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
||||
load(bundle_binstub)
|
||||
else
|
||||
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||
end
|
||||
end
|
||||
|
||||
require "rubygems"
|
||||
require "bundler/setup"
|
||||
|
||||
load Gem.bin_path("railties", "rails")
|
||||
require 'rails/all'
|
||||
require 'rails/engine/commands'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
ActiveAdmin.register Post do
|
||||
permit_params :author_id, :title, :description, :category, :dt, :position, :published, tag_ids: []
|
||||
permit_params :author_id, :title, :summary, :description, :category, :dt, :position, :published, tag_ids: []
|
||||
|
||||
index do
|
||||
selectable_column
|
||||
@@ -17,6 +17,7 @@ ActiveAdmin.register Post do
|
||||
attributes_table do
|
||||
row :author
|
||||
row :title
|
||||
row :summary
|
||||
row :description
|
||||
row :category
|
||||
row :dt
|
||||
@@ -42,6 +43,7 @@ ActiveAdmin.register Post do
|
||||
f.inputs 'Post' do
|
||||
f.input :author
|
||||
f.input :title
|
||||
f.input :summary, as: :quill_editor, input_html: { data: { options: { modules: { toolbar: toolbar } } } }
|
||||
f.input :description, as: :quill_editor, input_html: { data: { options: { modules: { toolbar: toolbar } } } }
|
||||
f.input :category
|
||||
f.input :dt
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
Rails.application.routes.draw do
|
||||
ActiveAdmin.routes(self)
|
||||
|
||||
root to: redirect('/admin')
|
||||
end
|
||||
|
||||
@@ -4,6 +4,7 @@ class CreatePosts < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
create_table :posts do |t|
|
||||
t.string :title
|
||||
t.text :summary
|
||||
t.text :description
|
||||
t.belongs_to :author, foreign_key: true
|
||||
t.string :category
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
# of editing this file, please use the migrations feature of Active Record to
|
||||
# incrementally modify your database, and then regenerate this schema definition.
|
||||
#
|
||||
# This file is the source Rails uses to define your schema when running `rails
|
||||
# db:schema:load`. When creating a new database, `rails db:schema:load` tends to
|
||||
# This file is the source Rails uses to define your schema when running `bin/rails
|
||||
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
||||
# be faster and is potentially less error prone than running all of your
|
||||
# migrations from scratch. Old migrations may fail to apply correctly if those
|
||||
# migrations use external dependencies or application code.
|
||||
@@ -16,9 +16,9 @@ ActiveRecord::Schema.define(version: 2018_06_07_053739) do
|
||||
t.string "namespace"
|
||||
t.text "body"
|
||||
t.string "resource_type"
|
||||
t.integer "resource_id"
|
||||
t.bigint "resource_id"
|
||||
t.string "author_type"
|
||||
t.integer "author_id"
|
||||
t.bigint "author_id"
|
||||
t.datetime "created_at", precision: 6, null: false
|
||||
t.datetime "updated_at", precision: 6, null: false
|
||||
t.index ["author_type", "author_id"], name: "index_active_admin_comments_on_author_type_and_author_id"
|
||||
@@ -66,6 +66,7 @@ ActiveRecord::Schema.define(version: 2018_06_07_053739) do
|
||||
|
||||
create_table "posts", force: :cascade do |t|
|
||||
t.string "title"
|
||||
t.text "summary"
|
||||
t.text "description"
|
||||
t.integer "author_id"
|
||||
t.string "category"
|
||||
|
||||
41
spec/dummy/db/seeds.rb
Обычный файл
41
spec/dummy/db/seeds.rb
Обычный файл
@@ -0,0 +1,41 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
puts 'Seeds:'
|
||||
|
||||
puts 'Tags...'
|
||||
(11..16).each do |i|
|
||||
Tag.find_or_create_by!(name: "Tag #{i}")
|
||||
end
|
||||
|
||||
puts 'Authors...'
|
||||
(11..20).each do |i|
|
||||
age = 21 + 3 * (i - 10)
|
||||
attrs = { name: "Author #{i}", age: age, email: "some@email#{i}.com" }
|
||||
Author.find_or_create_by!(attrs) do |author|
|
||||
author.profile = Profile.new(description: "Profile description for Author #{i}") if (i % 3).zero?
|
||||
end
|
||||
end
|
||||
|
||||
puts 'Posts...'
|
||||
authors = Author.pluck(:id)
|
||||
tags = Tag.where.not(name: 'A test tag').pluck(:id)
|
||||
(11..40).each do |i|
|
||||
attrs = {
|
||||
title: "Post #{i}",
|
||||
author_id: authors.sample,
|
||||
position: rand(100),
|
||||
created_at: Time.now - rand(3600).seconds
|
||||
}
|
||||
attrs[:category] = 'news' if (i % 4).zero?
|
||||
attrs[:dt] = Time.now - rand(30).days if (i % 3).zero?
|
||||
|
||||
Post.find_or_create_by!(title: "Post #{i}") do |post|
|
||||
post.assign_attributes(attrs)
|
||||
post.tags = Tag.where(id: tags.sample(2)) if (i % 2).zero?
|
||||
end
|
||||
end
|
||||
|
||||
Author.find_or_create_by!(name: 'A test author', email: 'aaa@bbb.ccc', age: 30)
|
||||
Tag.find_or_create_by!(name: 'A test tag')
|
||||
|
||||
puts 'done.'
|
||||
@@ -2,16 +2,7 @@
|
||||
|
||||
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.delete_all
|
||||
author.delete
|
||||
end
|
||||
let!(:post) { Post.create!(title: 'Test', author: author, description: 'Some content...') }
|
||||
|
||||
context 'with a Quill editor' do
|
||||
it 'initialize the editor' do
|
||||
@@ -30,6 +21,7 @@ RSpec.describe 'Quill editor', type: :system do
|
||||
find('#post_description_input .ql-editor').click
|
||||
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 '<p>Some content...more text</p>'
|
||||
end
|
||||
@@ -41,6 +33,7 @@ RSpec.describe 'Quill editor', type: :system do
|
||||
find('#post_description_input .ql-toolbar .ql-bold').click
|
||||
find('#post_description_input .ql-editor').base.send_keys('more text')
|
||||
find('[type="submit"]').click
|
||||
|
||||
expect(post.reload.description).to eq '<p>Some content...<strong>more text</strong></p>'
|
||||
end
|
||||
|
||||
@@ -51,10 +44,29 @@ RSpec.describe 'Quill editor', type: :system do
|
||||
find('#post_description_input .ql-toolbar .ql-italic').click
|
||||
find('#post_description_input .ql-editor').base.send_keys('more text')
|
||||
find('[type="submit"]').click
|
||||
|
||||
expect(post.reload.description).to eq '<p>Some content...<em>more text</em></p>'
|
||||
end
|
||||
end
|
||||
|
||||
context 'with 2 Quill editors' do
|
||||
it 'updates some HTML content for 2 fields' do
|
||||
visit "/admin/posts/#{post.id}/edit"
|
||||
|
||||
find('#post_description_input .ql-editor').click
|
||||
find('#post_description_input .ql-toolbar .ql-bold').click
|
||||
find('#post_description_input .ql-editor').base.send_keys('more text')
|
||||
find('#post_summary_input .ql-editor').click
|
||||
find('#post_summary_input .ql-toolbar .ql-italic').click
|
||||
find('#post_summary_input .ql-editor').base.send_keys('Summary text')
|
||||
find('[type="submit"]').click
|
||||
post.reload
|
||||
|
||||
expect(post.description).to eq '<p>Some content...<strong>more text</strong></p>'
|
||||
expect(post.summary).to eq '<p><em>Summary text</em></p>'
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a Quill editor in a nested resource' do
|
||||
it 'updates some HTML content of a new nested resource' do
|
||||
visit "/admin/authors/#{author.id}/edit"
|
||||
|
||||
Ссылка в новой задаче
Block a user