mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Work in Progress: Content Editing in Admin Section
This commit is contained in:
27
spec/controllers/admin/site_content_types_controller_spec.rb
Normal file
27
spec/controllers/admin/site_content_types_controller_spec.rb
Normal file
@@ -0,0 +1,27 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Admin::SiteContentTypesController do
|
||||
|
||||
it "is a subclass of AdminController" do
|
||||
(Admin::SiteContentTypesController < Admin::AdminController).should be_true
|
||||
end
|
||||
|
||||
context 'while logged in as an admin' do
|
||||
before do
|
||||
@user = log_in(:admin)
|
||||
end
|
||||
|
||||
context ' .index' do
|
||||
it 'returns success' do
|
||||
xhr :get, :index
|
||||
response.should be_success
|
||||
end
|
||||
|
||||
it 'returns JSON' do
|
||||
xhr :get, :index
|
||||
::JSON.parse(response.body).should be_present
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
29
spec/controllers/admin/site_contents_controller_spec.rb
Normal file
29
spec/controllers/admin/site_contents_controller_spec.rb
Normal file
@@ -0,0 +1,29 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Admin::SiteContentsController do
|
||||
|
||||
it "is a subclass of AdminController" do
|
||||
(Admin::SiteContentsController < Admin::AdminController).should be_true
|
||||
end
|
||||
|
||||
context 'while logged in as an admin' do
|
||||
before do
|
||||
@user = log_in(:admin)
|
||||
end
|
||||
|
||||
context '.show' do
|
||||
let(:content_type) { SiteContent.content_types.first.content_type }
|
||||
|
||||
it 'returns success' do
|
||||
xhr :get, :show, id: content_type
|
||||
response.should be_success
|
||||
end
|
||||
|
||||
it 'returns JSON' do
|
||||
xhr :get, :show, id: content_type
|
||||
::JSON.parse(response.body).should be_present
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
9
spec/fabricators/site_content_fabricator.rb
Normal file
9
spec/fabricators/site_content_fabricator.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
Fabricator(:site_content) do
|
||||
content_type 'great.poem'
|
||||
content "%{flower} are red. %{food} are blue."
|
||||
end
|
||||
|
||||
Fabricator(:site_content_basic, from: :site_content) do
|
||||
content_type 'breaking.bad'
|
||||
content "best show ever"
|
||||
end
|
||||
42
spec/models/site_content_spec.rb
Normal file
42
spec/models/site_content_spec.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe SiteContent do
|
||||
|
||||
it { should validate_presence_of :content }
|
||||
|
||||
|
||||
describe "#content_for" do
|
||||
|
||||
it "returns an empty string for a missing content_type" do
|
||||
SiteContent.content_for('breaking.bad').should == ""
|
||||
end
|
||||
|
||||
context "without replacements" do
|
||||
let!(:site_content) { Fabricate(:site_content_basic) }
|
||||
|
||||
it "returns the simple string" do
|
||||
SiteContent.content_for('breaking.bad').should == "best show ever"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with replacements" do
|
||||
let!(:site_content) { Fabricate(:site_content) }
|
||||
let(:replacements) { {flower: 'roses', food: 'grapes'} }
|
||||
|
||||
it "returns the correct string with replacements" do
|
||||
SiteContent.content_for('great.poem', replacements).should == "roses are red. grapes are blue."
|
||||
end
|
||||
|
||||
it "doesn't mind extra keys in the replacements" do
|
||||
SiteContent.content_for('great.poem', replacements.merge(extra: 'key')).should == "roses are red. grapes are blue."
|
||||
end
|
||||
|
||||
it "raises an error with missing keys" do
|
||||
-> { SiteContent.content_for('great.poem', flower: 'roses') }.should raise_error
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user