Paul Robert Lloyd
3 years ago
committed by
GitHub
8 changed files with 78 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||||||
|
class ContentController < ApplicationController |
||||||
|
def accessibility_statement |
||||||
|
render_content_page :accessibility_statement |
||||||
|
end |
||||||
|
|
||||||
|
def privacy_notice |
||||||
|
render_content_page :privacy_notice, page_title: "Privacy notice for tenants and buyers of new social housing" |
||||||
|
end |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def render_content_page(page_name, page_title: nil, locals: {}) |
||||||
|
raw_content = File.read("app/views/content/#{page_name}.md") |
||||||
|
content_with_erb_tags_replaced = ApplicationController.renderer.render( |
||||||
|
inline: raw_content, |
||||||
|
locals:, |
||||||
|
) |
||||||
|
|
||||||
|
@page_title = page_title || page_name.to_s.humanize |
||||||
|
@page_content = GovukMarkdown.render(content_with_erb_tags_replaced).html_safe |
||||||
|
|
||||||
|
render "content/page" |
||||||
|
end |
||||||
|
end |
@ -0,0 +1,9 @@ |
|||||||
|
<%= content_for :title, @page_title %> |
||||||
|
|
||||||
|
<div class="govuk-grid-row"> |
||||||
|
<div class="govuk-grid-column-two-thirds-from-desktop"> |
||||||
|
<h1 class="govuk-heading-xl"><%= @page_title %></h1> |
||||||
|
|
||||||
|
<%= @page_content %> |
||||||
|
</div> |
||||||
|
</div> |
@ -0,0 +1,34 @@ |
|||||||
|
require "rails_helper" |
||||||
|
|
||||||
|
RSpec.describe ContentController, type: :request do |
||||||
|
let(:headers) { { "Accept" => "text/html" } } |
||||||
|
let(:page) { Capybara::Node::Simple.new(response.body) } |
||||||
|
|
||||||
|
describe "render privacy notice content page" do |
||||||
|
before do |
||||||
|
get "/privacy-notice", headers: headers, params: {} |
||||||
|
end |
||||||
|
|
||||||
|
it "returns a 200" do |
||||||
|
expect(response).to have_http_status(:success) |
||||||
|
end |
||||||
|
|
||||||
|
it "returns the page" do |
||||||
|
expect(page).to have_title("Privacy notice") |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
describe "render accessibility statement content page" do |
||||||
|
before do |
||||||
|
get "/accessibility-statement", headers: headers, params: {} |
||||||
|
end |
||||||
|
|
||||||
|
it "returns a 200" do |
||||||
|
expect(response).to have_http_status(:success) |
||||||
|
end |
||||||
|
|
||||||
|
it "returns the page" do |
||||||
|
expect(page).to have_title("Accessibility statement") |
||||||
|
end |
||||||
|
end |
||||||
|
end |
Loading…
Reference in new issue