Sha256: b20c99cbbe9b04bc407f63a03b24be0a4b5a600154f0a350d2bc0e21ebb0bec6

Contents?: true

Size: 1.17 KB

Versions: 16

Compression:

Stored size: 1.17 KB

Contents

require "active_support/core_ext/string/strip"
require "spec_helper"

describe JsRoutes, "compatibility with ESM"  do

  let(:generated_js) {
    JsRoutes.generate(module_type: 'ESM')
  }

  before(:each) do
    # export keyword is not supported by a simulated js environment
    evaljs(generated_js.gsub("export const ", "const "))
  end

  it "defines route helpers" do
    expect(evaljs("inboxes_path()")).to eq(test_routes.inboxes_path())
  end

  it "exports route helpers" do
    expect(generated_js).to include(<<-DOC.rstrip)
/**
 * Generates rails route to
 * /inboxes(.:format)
 * @param {object | undefined} options
 * @returns {string} route path
 */
export const inboxes_path = __jsr.r
DOC
  end

  it "exports utility methods" do
    expect(generated_js).to include("export const serialize = ")
  end

  it "defines utility methods" do
    expect(evaljs("serialize({a: 1, b: 2})")).to eq({a: 1, b: 2}.to_param)
  end

  describe "compiled javascript asset" do
    subject { ERB.new(File.read("app/assets/javascripts/js-routes.js.erb")).result(binding) }
    it "should have js routes code" do
      is_expected.to include("export const inbox_message_path = __jsr.r(")
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
js-routes-2.2.3 spec/js_routes/module_types/esm_spec.rb
js-routes-2.2.2 spec/js_routes/module_types/esm_spec.rb
js-routes-2.2.1 spec/js_routes/module_types/esm_spec.rb
js-routes-2.2.0 spec/js_routes/module_types/esm_spec.rb
js-routes-2.1.2 spec/js_routes/module_types/esm_spec.rb
js-routes-2.1.1 spec/js_routes/module_types/esm_spec.rb
js-routes-2.1.0 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.8 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.7 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.6 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.5 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.4 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.3 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.2 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.1 spec/js_routes/module_types/esm_spec.rb
js-routes-2.0.0 spec/js_routes/module_types/esm_spec.rb