diff --git a/spec/qiita/markdown/filters/code_block_spec.rb b/spec/qiita/markdown/filters/code_block_spec.rb new file mode 100644 index 0000000..3356a6f --- /dev/null +++ b/spec/qiita/markdown/filters/code_block_spec.rb @@ -0,0 +1,126 @@ +# frozen_string_literal: true + +describe Qiita::Markdown::Filters::CodeBlock do + subject(:filter) { described_class.new(input_html) } + + let(:context) { nil } + + context "without code" do + let(:input_html) do + <<~HTML +
+        
+ HTML + end + + it "does not change" do + expect(filter.call.to_s).to eq(input_html) + end + end + + context "with code" do + let(:input_html) do + <<~HTML +

+        
+ HTML + end + + it "does not change" do + expect(filter.call.to_s).to eq(input_html) + end + + context "with data-metadata" do + let(:input_html) do + <<~HTML +

+          
+ HTML + end + + it "does not change" do + expect(filter.call.to_s).to eq(input_html) + end + + context "with data-metadata value" do + let(:input_html) do + <<~HTML +

+            
+ HTML + end + + let(:output_html) do + <<~HTML +

+            
+ HTML + end + + it "adds lang on pre" do + expect(filter.call.to_s).to eq(output_html) + end + + context "with value include filename" do + let(:input_html) do + <<~HTML +

+              
+ HTML + end + + let(:output_html) do + <<~HTML +

+              
+ HTML + end + + it "adds lang and filename on pre" do + expect(filter.call.to_s).to eq(output_html) + end + end + end + + context "with data-metadata value like filename" do + let(:input_html) do + <<~HTML +

+            
+ HTML + end + + let(:output_html) do + <<~HTML +

+            
+ HTML + end + + it "adds lang and filename on pre" do + expect(filter.call.to_s).to eq(output_html) + end + end + + context "with data-metadata value like filename without extension" do + let(:input_html) do + <<~HTML +

+            
+ HTML + end + + let(:output_html) do + <<~HTML +

+            
+ HTML + end + + it "adds lang and filename on pre" do + expect(filter.call.to_s).to eq(output_html) + end + end + end + end +end