forked from postrank-labs/goliath
-
Notifications
You must be signed in to change notification settings - Fork 0
/
template_spec.rb
61 lines (53 loc) · 1.79 KB
/
template_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
require 'spec_helper'
require File.join(File.dirname(__FILE__), '../../', 'examples/template')
describe Template do
def config_file
File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'examples', 'config', 'template.rb'))
end
let(:api_options) { { :config => config_file } }
it 'renders haml template with default haml layout' do
with_api(Template, api_options) do
get_request(:path => '/root') do |c|
c.response.should =~ %r{<li><a href="/joke">Tell me a joke</a></li>}
end
end
end
it 'renders haml template from string with default haml layout' do
with_api(Template, api_options) do
get_request(:path => '/haml_str') do |c|
c.response.should =~ %r{<h1>Header</h1>}
end
end
end
it 'renders a markdown template with default haml layout' do
with_api(Template, api_options) do
get_request(:path => '/joke') do |c|
c.response.should =~ %r{<code>"Arr, I dunno matey -- but it's drivin' me nuts!"\s*</code>}m
end
end
end
it 'lets me specify an alternate layout engine' do
with_api(Template, api_options) do
get_request(:path => '/erb_me') do |c|
c.response.should =~ %r{I AM ERB</h1>}m
end
end
end
it 'accepts local variables' do
with_api(Template, api_options) do
get_request(:path => '/erb_me') do |c|
c.response.should =~ %r{<title>HERE IS A JOKE</title>}m
end
end
end
describe 'On a missing template' do
it 'raises an explanatory 500 error' do
with_api(Template, api_options) do
get_request(:path => '/oops') do |c|
c.response.should =~ %r{^\[:error, "Template no_such_template not found in .*examples/views for haml"\]$}
c.response_header.status.should == 500
end
end
end
end
end