Work in Progress: Content Editing in Admin Section

This commit is contained in:
Robin Ward
2013-04-04 12:59:44 -04:00
parent bd0e98aec2
commit fa1ba6791b
39 changed files with 653 additions and 64 deletions

View 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

View 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

View 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

View 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