mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 16:51:25 +08:00
Support for transpiling .js
files (#9160)
* Remove some `.es6` from comments where it does not matter * Use a post processor for transpilation This will allow us to eventually use the directory structure to transpile rather than the extension. * FIX: Some errors and clean up in confirm-new-email It would throw an error if the webauthn element wasn't present. Also I changed things so that no-module is not explicitly referenced. * Remove `no-module` Instead we allow a magic comment: `// discourse-skip-module` to prevent the asset pipeline from creating a module. * DEV: Enable babel transpilation based on directory If it's in `app/assets/javascripts/dicourse` it will be transpiled even without the `.es6` extension. * REFACTOR: Remove Tilt/ES6ModuleTranspiler
This commit is contained in:
39
spec/lib/discourse_js_processor_spec.rb
Normal file
39
spec/lib/discourse_js_processor_spec.rb
Normal file
@ -0,0 +1,39 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
require 'discourse_js_processor'
|
||||
|
||||
describe DiscourseJsProcessor do
|
||||
|
||||
describe 'should_transpile?' do
|
||||
it "returns false for empty strings" do
|
||||
expect(DiscourseJsProcessor.should_transpile?(nil)).to eq(false)
|
||||
expect(DiscourseJsProcessor.should_transpile?('')).to eq(false)
|
||||
end
|
||||
|
||||
it "returns false for a regular js file" do
|
||||
expect(DiscourseJsProcessor.should_transpile?("file.js")).to eq(false)
|
||||
end
|
||||
|
||||
it "returns true for deprecated .es6 files" do
|
||||
expect(DiscourseJsProcessor.should_transpile?("file.es6")).to eq(true)
|
||||
expect(DiscourseJsProcessor.should_transpile?("file.js.es6")).to eq(true)
|
||||
expect(DiscourseJsProcessor.should_transpile?("file.js.es6.erb")).to eq(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe "skip_module?" do
|
||||
it "returns false for empty strings" do
|
||||
expect(DiscourseJsProcessor.skip_module?(nil)).to eq(false)
|
||||
expect(DiscourseJsProcessor.skip_module?('')).to eq(false)
|
||||
end
|
||||
|
||||
it "returns true if the header is present" do
|
||||
expect(DiscourseJsProcessor.skip_module?("// cool comment\n// discourse-skip-module")).to eq(true)
|
||||
end
|
||||
|
||||
it "returns false if the header is not present" do
|
||||
expect(DiscourseJsProcessor.skip_module?("// just some JS\nconsole.log()")).to eq(false)
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user