FEATURE: Load translation overrides without JS eval

This commit is contained in:
Gerhard Schlager
2019-11-05 02:15:44 +01:00
parent ca6adfbdd6
commit 61b1f9c36b
14 changed files with 181 additions and 87 deletions

View File

@ -6,13 +6,20 @@ require 'rails_helper'
describe ApplicationHelper do
describe "preload_script" do
def preload_link(url)
<<~HTML
<link rel="preload" href="#{url}" as="script">
<script src="#{url}"></script>
HTML
end
it "provides brotli links to brotli cdn" do
set_cdn_url "https://awesome.com"
helper.request.env["HTTP_ACCEPT_ENCODING"] = 'br'
link = helper.preload_script('application')
expect(link).to eq("<link rel='preload' href='https://awesome.com/brotli_asset/application.js' as='script'/>\n<script src='https://awesome.com/brotli_asset/application.js'></script>")
expect(link).to eq(preload_link("https://awesome.com/brotli_asset/application.js"))
end
context "with s3 CDN" do
@ -45,26 +52,26 @@ describe ApplicationHelper do
helper.request.env["HTTP_ACCEPT_ENCODING"] = 'br'
link = helper.preload_script('application')
expect(link).to eq("<link rel='preload' href='https://s3cdn.com/assets/application.br.js' as='script'/>\n<script src='https://s3cdn.com/assets/application.br.js'></script>")
expect(link).to eq(preload_link("https://s3cdn.com/assets/application.br.js"))
end
it "gives s3 cdn if asset host is not set" do
link = helper.preload_script('application')
expect(link).to eq("<link rel='preload' href='https://s3cdn.com/assets/application.js' as='script'/>\n<script src='https://s3cdn.com/assets/application.js'></script>")
expect(link).to eq(preload_link("https://s3cdn.com/assets/application.js"))
end
it "can fall back to gzip compression" do
helper.request.env["HTTP_ACCEPT_ENCODING"] = 'gzip'
link = helper.preload_script('application')
expect(link).to eq("<link rel='preload' href='https://s3cdn.com/assets/application.gz.js' as='script'/>\n<script src='https://s3cdn.com/assets/application.gz.js'></script>")
expect(link).to eq(preload_link("https://s3cdn.com/assets/application.gz.js"))
end
it "gives s3 cdn even if asset host is set" do
set_cdn_url "https://awesome.com"
link = helper.preload_script('application')
expect(link).to eq("<link rel='preload' href='https://s3cdn.com/assets/application.js' as='script'/>\n<script src='https://s3cdn.com/assets/application.js'></script>")
expect(link).to eq(preload_link("https://s3cdn.com/assets/application.js"))
end
end
end