зеркало из
https://github.com/rs-pro/activeadmin-quill_editor.git
synced 2026-09-05 11:15:51 +03:00
Minor specs changes
Этот коммит содержится в:
35
bin/rails
35
bin/rails
@@ -1,29 +1,16 @@
|
|||||||
#!/usr/bin/env ruby
|
#!/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.
|
||||||
|
|
||||||
#
|
ENV['RAILS_ENV'] ||= 'test'
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
require "pathname"
|
ENGINE_ROOT = File.expand_path('..', __dir__)
|
||||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
ENGINE_PATH = File.expand_path('../lib/activeadmin/quill_editor/engine', __dir__)
|
||||||
Pathname.new(__FILE__).realpath)
|
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)
|
require 'rails/all'
|
||||||
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
require 'rails/engine/commands'
|
||||||
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")
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
ActiveAdmin.register Post do
|
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
|
index do
|
||||||
selectable_column
|
selectable_column
|
||||||
@@ -17,6 +17,7 @@ ActiveAdmin.register Post do
|
|||||||
attributes_table do
|
attributes_table do
|
||||||
row :author
|
row :author
|
||||||
row :title
|
row :title
|
||||||
|
row :summary
|
||||||
row :description
|
row :description
|
||||||
row :category
|
row :category
|
||||||
row :dt
|
row :dt
|
||||||
@@ -42,6 +43,7 @@ ActiveAdmin.register Post do
|
|||||||
f.inputs 'Post' do
|
f.inputs 'Post' do
|
||||||
f.input :author
|
f.input :author
|
||||||
f.input :title
|
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 :description, as: :quill_editor, input_html: { data: { options: { modules: { toolbar: toolbar } } } }
|
||||||
f.input :category
|
f.input :category
|
||||||
f.input :dt
|
f.input :dt
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
ActiveAdmin.routes(self)
|
ActiveAdmin.routes(self)
|
||||||
|
|
||||||
|
root to: redirect('/admin')
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ class CreatePosts < ActiveRecord::Migration[5.2]
|
|||||||
def change
|
def change
|
||||||
create_table :posts do |t|
|
create_table :posts do |t|
|
||||||
t.string :title
|
t.string :title
|
||||||
|
t.text :summary
|
||||||
t.text :description
|
t.text :description
|
||||||
t.belongs_to :author, foreign_key: true
|
t.belongs_to :author, foreign_key: true
|
||||||
t.string :category
|
t.string :category
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
# of editing this file, please use the migrations feature of Active Record to
|
# of editing this file, please use the migrations feature of Active Record to
|
||||||
# incrementally modify your database, and then regenerate this schema definition.
|
# incrementally modify your database, and then regenerate this schema definition.
|
||||||
#
|
#
|
||||||
# This file is the source Rails uses to define your schema when running `rails
|
# This file is the source Rails uses to define your schema when running `bin/rails
|
||||||
# db:schema:load`. When creating a new database, `rails db:schema:load` tends to
|
# 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
|
# 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 from scratch. Old migrations may fail to apply correctly if those
|
||||||
# migrations use external dependencies or application code.
|
# migrations use external dependencies or application code.
|
||||||
@@ -16,9 +16,9 @@ ActiveRecord::Schema.define(version: 2018_06_07_053739) do
|
|||||||
t.string "namespace"
|
t.string "namespace"
|
||||||
t.text "body"
|
t.text "body"
|
||||||
t.string "resource_type"
|
t.string "resource_type"
|
||||||
t.integer "resource_id"
|
t.bigint "resource_id"
|
||||||
t.string "author_type"
|
t.string "author_type"
|
||||||
t.integer "author_id"
|
t.bigint "author_id"
|
||||||
t.datetime "created_at", precision: 6, null: false
|
t.datetime "created_at", precision: 6, null: false
|
||||||
t.datetime "updated_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"
|
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|
|
create_table "posts", force: :cascade do |t|
|
||||||
t.string "title"
|
t.string "title"
|
||||||
|
t.text "summary"
|
||||||
t.text "description"
|
t.text "description"
|
||||||
t.integer "author_id"
|
t.integer "author_id"
|
||||||
t.string "category"
|
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
|
RSpec.describe 'Quill editor', type: :system do
|
||||||
let(:author) { Author.create!(email: 'some_email@example.com', name: 'John Doe', age: 30) }
|
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...') }
|
let!(:post) { Post.create!(title: 'Test', author: author, description: 'Some content...') }
|
||||||
|
|
||||||
before do
|
|
||||||
post
|
|
||||||
end
|
|
||||||
|
|
||||||
after do
|
|
||||||
Post.delete_all
|
|
||||||
author.delete
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with a Quill editor' do
|
context 'with a Quill editor' do
|
||||||
it 'initialize the 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').click
|
||||||
find('#post_description_input .ql-editor').base.send_keys('more text')
|
find('#post_description_input .ql-editor').base.send_keys('more text')
|
||||||
find('[type="submit"]').click
|
find('[type="submit"]').click
|
||||||
|
|
||||||
expect(page).to have_content('was successfully updated')
|
expect(page).to have_content('was successfully updated')
|
||||||
expect(post.reload.description).to eq '<p>Some content...more text</p>'
|
expect(post.reload.description).to eq '<p>Some content...more text</p>'
|
||||||
end
|
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-toolbar .ql-bold').click
|
||||||
find('#post_description_input .ql-editor').base.send_keys('more text')
|
find('#post_description_input .ql-editor').base.send_keys('more text')
|
||||||
find('[type="submit"]').click
|
find('[type="submit"]').click
|
||||||
|
|
||||||
expect(post.reload.description).to eq '<p>Some content...<strong>more text</strong></p>'
|
expect(post.reload.description).to eq '<p>Some content...<strong>more text</strong></p>'
|
||||||
end
|
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-toolbar .ql-italic').click
|
||||||
find('#post_description_input .ql-editor').base.send_keys('more text')
|
find('#post_description_input .ql-editor').base.send_keys('more text')
|
||||||
find('[type="submit"]').click
|
find('[type="submit"]').click
|
||||||
|
|
||||||
expect(post.reload.description).to eq '<p>Some content...<em>more text</em></p>'
|
expect(post.reload.description).to eq '<p>Some content...<em>more text</em></p>'
|
||||||
end
|
end
|
||||||
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
|
context 'with a Quill editor in a nested resource' do
|
||||||
it 'updates some HTML content of a new nested resource' do
|
it 'updates some HTML content of a new nested resource' do
|
||||||
visit "/admin/authors/#{author.id}/edit"
|
visit "/admin/authors/#{author.id}/edit"
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user