test/requirejs-rails_test.rb in requirejs-rails-0.9.4 vs test/requirejs-rails_test.rb in requirejs-rails-0.9.5
- old
+ new
@@ -7,11 +7,11 @@
test "truth" do
assert_kind_of Module, Requirejs
assert_kind_of Module, Requirejs::Rails
assert_kind_of Class, Requirejs::Rails::Engine
end
-
+
test "require.js version" do
require_js = Pathname.new(__FILE__+'/../../vendor/assets/javascripts/require.js').cleanpath.read
context = ExecJS.compile(require_js)
assert_equal Requirejs::Rails::LibVersion, context.eval("require.version")
end
@@ -49,17 +49,17 @@
assert_kind_of Hash, @cfg.user_config
end
test "user_config should reject baseUrl" do
exc = assert_raises Requirejs::ConfigError do
- @cfg.user_config = { 'baseUrl' => '/frobnitz' }
+ @cfg.user_config = {'baseUrl' => '/frobnitz'}
end
assert_match /baseUrl is not needed/, exc.message
end
test "run_config should inherit user_config settings" do
- @cfg.user_config = { 'paths' => { 'jquery' => 'lib/jquery-1.7.2.min' } }
+ @cfg.user_config = {'paths' => {'jquery' => 'lib/jquery-1.7.2.min'}}
refute_nil @cfg.run_config['paths']
assert_kind_of Hash, @cfg.run_config['paths']
assert_equal 'lib/jquery-1.7.2.min', @cfg.run_config['paths']['jquery']
end
@@ -67,113 +67,131 @@
@cfg.run_config['baseUrl'] = 'http://cdn.example.com/assets'
assert_equal 'http://cdn.example.com/assets', @cfg.run_config['baseUrl']
end
test "build_config should inherit user_config settings" do
- @cfg.user_config = { 'paths' => { 'jquery' => 'lib/jquery-1.7.2.min' } }
+ @cfg.user_config = {'paths' => {'jquery' => 'lib/jquery-1.7.2.min'}}
refute_nil @cfg.build_config['paths']
assert_kind_of Hash, @cfg.build_config['paths']
assert_equal 'lib/jquery-1.7.2.min', @cfg.build_config['paths']['jquery']
end
test "run_config should reject irrelevant settings" do
- @cfg.user_config = { 'optimize' => 'none' }
- assert_nil @cfg.run_config['optimize']
+ @cfg.user_config = {'optimize' => 'none'}
+ assert_nil @cfg.run_config['optimize']
end
test "build_config should reject irrelevant settings" do
- @cfg.user_config = { 'priority' => %w{ foo bar baz } }
- assert_nil @cfg.build_config['priority']
+ @cfg.user_config = {'priority' => %w{ foo bar baz }}
+ assert_nil @cfg.build_config['priority']
end
## Almond tests
test "build_config with almond should accept one module" do
@cfg.loader = :almond
- @cfg.user_config = { 'modules' => [ { 'name' => 'foo' } ] }
+ @cfg.user_config = {'modules' => [{'name' => 'foo'}]}
assert_match 'almond', @cfg.build_config['modules'][0]['name']
end
test "build_config with almond must reject more than one module" do
@cfg.loader = :almond
- @cfg.user_config = { 'modules' => [ { 'name' => 'foo' }, { 'name' => 'bar' } ] }
+ @cfg.user_config = {'modules' => [{'name' => 'foo'}, {'name' => 'bar'}]}
exc = assert_raises Requirejs::ConfigError do
@cfg.build_config
end
assert_match /requires exactly one module/, exc.message
end
end
class RequirejsHelperTest < ActionView::TestCase
-
def setup
controller.requirejs_included = false
Rails.application.config.requirejs.user_config = {}
Rails.application.config.requirejs.delete(:run_config)
Rails.application.config.requirejs.delete(:build_config)
end
def with_cdn
- Rails.application.config.requirejs.user_config = { 'paths' =>
- { 'jquery' => 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' }
+ Rails.application.config.requirejs.user_config = {
+ "paths" => {
+ "jquery" => "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
+ }
}
end
-
+
def wrap(tag)
"<html><head>#{tag}</head></html>"
end
-
+
test "requirejs_include_tag" do
- render :text => wrap(requirejs_include_tag)
- assert_select "script:first-of-type", :text => /var require =/
- assert_select "script:last-of-type[src^=/javascripts/require.js]", :count => 1
+ render text: wrap(requirejs_include_tag)
+
+ assert_select "script:first-of-type[src=\"/javascripts/require.js\"]", count: 1
+ assert_select "script:last-of-type", text: "require.config({\"baseUrl\":\"/assets\"});"
end
-
+
test "requirejs_include_tag_with_param" do
- render :text => wrap(requirejs_include_tag("application"))
- assert_select "script:last-of-type[src^=/javascripts/require.js][data-main^=javascripts/application]", :count => 1
+ render text: wrap(requirejs_include_tag("application"))
+
+ assert_select "script:first-of-type[src=\"/javascripts/require.js\"]", count: 1
end
-
+
test "requirejs_include_tag_with_block" do
- test_block = Proc.new do |controller|
- { 'class' => controller.class.to_s.demodulize }
- end
+ render text: wrap(requirejs_include_tag("application") do
+ {"class" => controller.class.name.demodulize}
+ end)
- render :text => wrap(requirejs_include_tag("application", &test_block))
- assert_select "script:last-of-type[src^=/javascripts/require.js][data-main^=javascripts/application]", :count => 1
- assert_select "script:last-of-type[src^=/javascripts/require.js][data-class^=TestController]", :count => 1
+ assert_select "script:first-of-type[src=\"/javascripts/require.js\"]" \
+ "[data-class=\"TestController\"]", count: 1
end
test "requirejs_include_tag can appear only once" do
assert_raises Requirejs::MultipleIncludeError do
- render :text => "#{requirejs_include_tag}\n#{requirejs_include_tag}"
+ requirejs_include_tag
+ requirejs_include_tag
end
end
- test "requirejs_include_tag with digested asset paths" do
+ test "requirejs_include_tag with digestified asset paths" do
begin
+ Rails.application.config.requirejs.user_config = {
+ "modules" => [
+ {"name" => "foo"}
+ ]
+ }
+
saved_digest = Rails.application.config.assets.digest
Rails.application.config.assets.digest = true
- Rails.application.config.requirejs.user_config = { 'modules' => [{'name' => 'foo'}] }
- render :text => wrap(requirejs_include_tag)
- assert_select "script:first-of-type", :text => %r[var require =.*"paths":{"foo":"/javascripts/foo"}]
+
+ render text: wrap(requirejs_include_tag)
+
+ assert_select "script:last-of-type",
+ text: Regexp.new("\\Arequire\\.config\\({.*\"paths\":{.*\"foo\":\"/javascripts/foo\".*}.*}\\);\\z")
ensure
Rails.application.config.assets.digest = saved_digest
end
end
test "requirejs_include_tag with CDN asset in paths" do
with_cdn
- render :text => wrap(requirejs_include_tag)
- assert_select "script:first-of-type", :text => %r{var require =.*paths.*http://ajax}
+
+ render text: wrap(requirejs_include_tag)
+
+ assert_select "script:last-of-type",
+ text: Regexp.new("\\Arequire\\.config\\({.*\"paths\":{.*\"http://ajax\\..*\".*}.*}\\);\\z")
end
- test "requirejs_include_tag with CDN asset and digested asset paths" do
+ test "requirejs_include_tag with CDN asset and digestified asset paths" do
begin
with_cdn
+
saved_digest = Rails.application.config.assets.digest
Rails.application.config.assets.digest = true
- render :text => wrap(requirejs_include_tag)
- assert_select "script:first-of-type", :text => %r{var require =.*paths.*http://ajax}
+
+ render text: wrap(requirejs_include_tag)
+
+ assert_select "script:last-of-type",
+ text: Regexp.new("\\Arequire\\.config\\({.*\"paths\":{.*\"http://ajax\\..*\".*}.*}\\);\\z")
ensure
Rails.application.config.assets.digest = saved_digest
end
end
end