summaryrefslogtreecommitdiff
path: root/spec/javascripts/fixtures/static_fixtures.rb
blob: 4569f16f0cab9782a87812a28a2259d3c0ee739d (plain)
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
require 'spec_helper'

describe ApplicationController, '(Static JavaScript fixtures)', type: :controller do
  include JavaScriptFixturesHelpers

  before(:all) do
    clean_frontend_fixtures('static/')
  end

  fixtures_path = File.expand_path(JavaScriptFixturesHelpers::FIXTURE_PATH, Rails.root)
  haml_fixtures = Dir.glob(File.expand_path('**/*.haml', fixtures_path)).map do |file_path|
    file_path.sub(/\A#{fixtures_path}#{File::SEPARATOR}/, '')
  end

  haml_fixtures.each do |template_file_name|
    it "static/#{template_file_name.sub(/\.haml\z/, '.raw')}" do |example|
      fixture_file_name = example.description
      rendered = render_template(template_file_name)
      store_frontend_fixture(rendered, fixture_file_name)
    end
  end

  private

  def render_template(template_file_name)
    fixture_path = JavaScriptFixturesHelpers::FIXTURE_PATH
    controller = ApplicationController.new
    controller.prepend_view_path(fixture_path)
    controller.render_to_string(template: template_file_name, layout: false)
  end
end